Skip to content
Snippets Groups Projects
Commit e84b5f42 authored by Robert Habermann's avatar Robert Habermann
Browse files

removed list classes

parent 603bcb51
No related branches found
No related tags found
No related merge requests found
...@@ -30,16 +30,6 @@ PyOTRS Lib (public) ...@@ -30,16 +30,6 @@ PyOTRS Lib (public)
:noindex: :noindex:
:mod:`pyotrs.lib.AttachmentList`
--------------------------------
.. autoclass:: pyotrs.lib.AttachmentList
:members:
:undoc-members:
:show-inheritance:
:noindex:
:mod:`pyotrs.lib.Client` :mod:`pyotrs.lib.Client`
------------------------ ------------------------
...@@ -60,15 +50,6 @@ PyOTRS Lib (public) ...@@ -60,15 +50,6 @@ PyOTRS Lib (public)
:noindex: :noindex:
:mod:`pyotrs.lib.DynamicFieldList`
----------------------------------
.. autoclass:: pyotrs.lib.DynamicFieldList
:members:
:undoc-members:
:show-inheritance:
:noindex:
:mod:`pyotrs.lib.Ticket` :mod:`pyotrs.lib.Ticket`
------------------------ ------------------------
......
...@@ -11,9 +11,9 @@ ...@@ -11,9 +11,9 @@
""" """
from .lib import Article # noqa from .lib import Article # noqa
from .lib import Attachment, AttachmentList # noqa from .lib import Attachment # noqa
from .lib import Client # noqa from .lib import Client # noqa
from .lib import DynamicField, DynamicFieldList # noqa from .lib import DynamicField # noqa
from .lib import Ticket # noqa from .lib import Ticket # noqa
# Set default logging handler to avoid "No handler found" warnings. # Set default logging handler to avoid "No handler found" warnings.
......
...@@ -188,56 +188,56 @@ class Attachment(object): ...@@ -188,56 +188,56 @@ class Attachment(object):
""" """
return Attachment("YmFyCg==", "text/plain", "dümmy.txt") return Attachment("YmFyCg==", "text/plain", "dümmy.txt")
#
class AttachmentList(object): # class AttachmentList(object):
"""PyOTRS Attachment class """ # """PyOTRS Attachment class """
def __init__(self, attachments=None): # def __init__(self, attachments=None):
attachment_list = [] # attachment_list = []
if isinstance(attachments, Attachment): # if isinstance(attachments, Attachment):
attachment_list.append(attachments) # attachment_list.append(attachments)
elif isinstance(attachments, list): # elif isinstance(attachments, list):
for item in attachments: # for item in attachments:
attachment_list.append(item) # attachment_list.append(item)
#
self.attachment_list = attachment_list # self.attachment_list = attachment_list
#
def __iter__(self): # def __iter__(self):
for item in self.attachment_list: # for item in self.attachment_list:
yield item # yield item
#
def __repr__(self): # def __repr__(self):
return "<{0}: {1} item(s)>".format(self.__class__.__name__, len(self.attachment_list)) # return "<{0}: {1} item(s)>".format(self.__class__.__name__, len(self.attachment_list))
#
def add(self, attachment): # def add(self, attachment):
"""add Attachment to AttachmentList # """add Attachment to AttachmentList
#
Args: # Args:
attachment: # attachment:
#
Returns: # Returns:
#
""" # """
self.attachment_list.append(attachment) # self.attachment_list.append(attachment)
#
def to_dct(self): # def to_dct(self):
"""represent AttachmentList and related Attachment objects as dict # """represent AttachmentList and related Attachment objects as dict
#
Returns: # Returns:
#
""" # """
_lst = [] # _lst = []
for attachments in self: # for attachments in self:
_lst.append(attachments.__dict__) # _lst.append(attachments.__dict__)
return {"Attachment": _lst} # return {"Attachment": _lst}
#
@classmethod # @classmethod
def dummy(cls): # def dummy(cls):
"""dummy data (for testing) # """dummy data (for testing)
#
Returns: # Returns:
#
""" # """
return AttachmentList(Attachment.dummy()) # return AttachmentList(Attachment.dummy())
class DynamicField(object): class DynamicField(object):
...@@ -285,56 +285,56 @@ class DynamicField(object): ...@@ -285,56 +285,56 @@ class DynamicField(object):
""" """
return DynamicField(dct={'Name': 'lastname', 'Value': 'Doe'}) return DynamicField(dct={'Name': 'lastname', 'Value': 'Doe'})
#
class DynamicFieldList(object): # class DynamicFieldList(object):
"""PyOTRS DynamicFieldList class """ # """PyOTRS DynamicFieldList class """
def __init__(self, dynamic_field_dicts=None): # def __init__(self, dynamic_field_dicts=None):
dynamic_field_list = [] # dynamic_field_list = []
if isinstance(dynamic_field_dicts, DynamicField): # if isinstance(dynamic_field_dicts, DynamicField):
dynamic_field_list.append(dynamic_field_dicts) # dynamic_field_list.append(dynamic_field_dicts)
elif isinstance(dynamic_field_dicts, list): # elif isinstance(dynamic_field_dicts, list):
for item in dynamic_field_dicts: # for item in dynamic_field_dicts:
dynamic_field_list.append(item) # dynamic_field_list.append(item)
#
self.dynamic_field_list = dynamic_field_list # self.dynamic_field_list = dynamic_field_list
#
def __iter__(self): # def __iter__(self):
for item in self.dynamic_field_list: # for item in self.dynamic_field_list:
yield item # yield item
#
def __repr__(self): # def __repr__(self):
return "<{0}: {1} item(s)>".format(self.__class__.__name__, len(self.dynamic_field_list)) # return "<{0}: {1} item(s)>".format(self.__class__.__name__, len(self.dynamic_field_list))
#
def add(self, dynamic_field): # def add(self, dynamic_field):
"""add DynamicField object to DynamicFieldList # """add DynamicField object to DynamicFieldList
#
Args: # Args:
dynamic_field (DynamicField): # dynamic_field (DynamicField):
#
Returns: # Returns:
#
""" # """
self.dynamic_field_list.append(dynamic_field) # self.dynamic_field_list.append(dynamic_field)
#
def to_dct(self): # def to_dct(self):
"""represent DynamicFieldList and related DynamicField objects as dict # """represent DynamicFieldList and related DynamicField objects as dict
#
Returns: # Returns:
""" # """
_lst = [] # _lst = []
for dynamic_field in self: # for dynamic_field in self:
_lst.append(dynamic_field.to_dct()) # _lst.append(dynamic_field.to_dct())
return {"DynamicField": _lst} # return {"DynamicField": _lst}
#
@classmethod # @classmethod
def dummy(cls): # def dummy(cls):
"""dummy data (for testing) # """dummy data (for testing)
#
Returns: # Returns:
#
""" # """
return DynamicFieldList([DynamicField(name="firstname", value="Jane"), # return DynamicFieldList([DynamicField(name="firstname", value="Jane"),
DynamicField(dct={'Name': 'lastname', 'Value': 'Doe'})]) # DynamicField(dct={'Name': 'lastname', 'Value': 'Doe'})])
class Ticket(object): class Ticket(object):
...@@ -342,6 +342,9 @@ class Ticket(object): ...@@ -342,6 +342,9 @@ class Ticket(object):
def __init__(self, dct): def __init__(self, dct):
self.attachment_list = []
self.dynamic_field_list = []
for key, value in dct.items(): for key, value in dct.items():
if isinstance(value, dict): if isinstance(value, dict):
dct[key] = Ticket(value) dct[key] = Ticket(value)
...@@ -506,6 +509,10 @@ class Client(object): ...@@ -506,6 +509,10 @@ class Client(object):
self.response_type = None self.response_type = None
self.ticket_search_result = None self.ticket_search_result = None
self.ticket_list = []
self.attachment_list = []
self.dynamic_field_list = []
# credentials # credentials
self.username = username self.username = username
self.password = password self.password = password
...@@ -700,8 +707,8 @@ class Client(object): ...@@ -700,8 +707,8 @@ class Client(object):
Args: Args:
ticket (Ticket): ticket (Ticket):
article (Article): optional article article (Article): optional article
attachment_list (AttachmentList): attachment_list (List[Attachment]):
dynamic_field_list (DynamicFieldList): dynamic_field_list (List[DynamicField]):
**kwargs: any regular OTRS Fields (not for Dynamic Fields!) **kwargs: any regular OTRS Fields (not for Dynamic Fields!)
.. todo:: .. todo::
...@@ -966,8 +973,8 @@ class Client(object): ...@@ -966,8 +973,8 @@ class Client(object):
ticket_id (int): ticket_id (int):
article (Article): article (Article):
attachment_list (AttachmentList): attachment_list (List[Attachment]):
dynamic_field_list (DynamicFieldList): dynamic_field_list (List[DynamicField]):
**kwargs: any regular OTRS Fields (not for Dynamic Fields!) **kwargs: any regular OTRS Fields (not for Dynamic Fields!)
Returns: Returns:
......
# -*- coding: utf-8 -*-
from __future__ import unicode_literals # support both Python2 and 3
#
# Name: test_attachment_list.py
# Description: Test for PyOTRS AttachmentList class
#
# Author: robert.habermann@dlh.de
# Date: 2016-04-18
# make sure (early) that parent dir (main app) is in path
import os.path
import sys
import unittest2 as unittest
# from mock import MagicMock, patch
current_path = os.path.dirname(os.path.realpath(__file__))
sys.path.append(os.path.join(current_path, os.pardir))
from pyotrs import Attachment, AttachmentList # noqa
class AttachmentListTests(unittest.TestCase):
def test_init(self):
att_list = AttachmentList()
self.assertIsInstance(att_list, AttachmentList)
def test_dummy_static(self):
att = Attachment("YmFyCg==", "text/plain", "dümmy.txt")
att_list = AttachmentList(att)
self.assertIsInstance(att_list, AttachmentList)
self.assertEqual(att_list.__repr__(), '<AttachmentList: 1 item(s)>')
def test_two_dummy_static(self):
att1 = Attachment("YmFyCg==", "text/plain", "dümmy.txt")
att2 = Attachment("Zm9vYmFyCg==", "text/plain", "foobar.txt")
att_list = AttachmentList([att1, att2])
self.assertIsInstance(att_list, AttachmentList)
self.assertEqual(att_list.__repr__(), '<AttachmentList: 2 item(s)>')
def test_add_dummy_static(self):
att1 = Attachment("YmFyCg==", "text/plain", "dümmy.txt")
att2 = Attachment("Zm9vYmFyCg==", "text/plain", "foobar.txt")
att_list = AttachmentList(att1)
att_list.add(att2)
self.assertIsInstance(att_list, AttachmentList)
self.assertEqual(att_list.__repr__(), '<AttachmentList: 2 item(s)>')
def test_dummy_static_dct(self):
att = Attachment("YmFyCg==", "text/plain", "dümmy.txt")
att_list = AttachmentList(att)
self.assertDictEqual(att_list.to_dct(),
{'Attachment': [{'Content': 'YmFyCg==',
'ContentType': 'text/plain',
'Filename': 'dümmy.txt'}]})
def test_dummy(self):
att = Attachment.dummy()
att_list = AttachmentList(att)
self.assertIsInstance(att_list, AttachmentList)
self.assertEqual(att_list.__repr__(), '<AttachmentList: 1 item(s)>')
def test_list_dummy(self):
att_list = AttachmentList.dummy()
self.assertIsInstance(att_list, AttachmentList)
self.assertEqual(att_list.__repr__(), '<AttachmentList: 1 item(s)>')
def main():
unittest.main()
if __name__ == '__main__':
main()
# EOF
# -*- coding: utf-8 -*-
from __future__ import unicode_literals # support both Python2 and 3
#
# Name: test_dynamic_field_list.py
# Description: Test for PyOTRS DynamicFieldList class
#
# Author: robert.habermann@dlh.de
# Date: 2016-04-18
# make sure (early) that parent dir (main app) is in path
import os.path
import sys
import unittest2 as unittest
# from mock import MagicMock, patch
current_path = os.path.dirname(os.path.realpath(__file__))
sys.path.append(os.path.join(current_path, os.pardir))
from pyotrs import DynamicField, DynamicFieldList # noqa
class DynamicFieldListTests(unittest.TestCase):
def test_init(self):
dyn_list = DynamicFieldList()
self.assertIsInstance(dyn_list, DynamicFieldList)
def test_dummy_static_one(self):
dyn = DynamicField(dct={'Name': 'firstname', 'Value': 'Jane'})
dyn_list = DynamicFieldList(dyn)
self.assertIsInstance(dyn_list, DynamicFieldList)
self.assertEqual(dyn_list.__repr__(), '<DynamicFieldList: 1 item(s)>')
def test_dummy_static_two(self):
dyn1 = DynamicField(dct={'Name': 'firstname', 'Value': 'Jane'})
dyn2 = DynamicField(dct={'Name': 'lastname', 'Value': 'Doe'})
dyn_list = DynamicFieldList([dyn1, dyn2])
self.assertIsInstance(dyn_list, DynamicFieldList)
self.assertEqual(dyn_list.__repr__(), '<DynamicFieldList: 2 item(s)>')
def test_dummy(self):
dyn_list = DynamicFieldList.dummy()
self.assertIsInstance(dyn_list, DynamicFieldList)
self.assertEqual(dyn_list.__repr__(), '<DynamicFieldList: 2 item(s)>')
def test_dummy_to_dct(self):
dyn_list = DynamicFieldList.dummy()
self.assertDictEqual(dyn_list.to_dct(),
{'DynamicField': [{'Name': 'firstname', 'Value': 'Jane'},
{'Name': 'lastname', 'Value': 'Doe'}]})
def test_add(self):
dyn1 = DynamicField(dct={'Name': 'firstname', 'Value': 'Jane'})
dyn2 = DynamicField(dct={'Name': 'lastname', 'Value': 'Doe'})
dyn_list = DynamicFieldList(dyn1)
self.assertIsInstance(dyn_list, DynamicFieldList)
dyn_list.add(dyn2)
self.assertEqual(dyn_list.__repr__(), '<DynamicFieldList: 2 item(s)>')
def main():
unittest.main()
if __name__ == '__main__':
main()
# EOF
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment