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)
:noindex:
:mod:`pyotrs.lib.AttachmentList`
--------------------------------
.. autoclass:: pyotrs.lib.AttachmentList
:members:
:undoc-members:
:show-inheritance:
:noindex:
:mod:`pyotrs.lib.Client`
------------------------
......@@ -60,15 +50,6 @@ PyOTRS Lib (public)
:noindex:
:mod:`pyotrs.lib.DynamicFieldList`
----------------------------------
.. autoclass:: pyotrs.lib.DynamicFieldList
:members:
:undoc-members:
:show-inheritance:
:noindex:
:mod:`pyotrs.lib.Ticket`
------------------------
......
......@@ -11,9 +11,9 @@
"""
from .lib import Article # noqa
from .lib import Attachment, AttachmentList # noqa
from .lib import Attachment # noqa
from .lib import Client # noqa
from .lib import DynamicField, DynamicFieldList # noqa
from .lib import DynamicField # noqa
from .lib import Ticket # noqa
# Set default logging handler to avoid "No handler found" warnings.
......
......@@ -188,56 +188,56 @@ class Attachment(object):
"""
return Attachment("YmFyCg==", "text/plain", "dümmy.txt")
class AttachmentList(object):
"""PyOTRS Attachment class """
def __init__(self, attachments=None):
attachment_list = []
if isinstance(attachments, Attachment):
attachment_list.append(attachments)
elif isinstance(attachments, list):
for item in attachments:
attachment_list.append(item)
self.attachment_list = attachment_list
def __iter__(self):
for item in self.attachment_list:
yield item
def __repr__(self):
return "<{0}: {1} item(s)>".format(self.__class__.__name__, len(self.attachment_list))
def add(self, attachment):
"""add Attachment to AttachmentList
Args:
attachment:
Returns:
"""
self.attachment_list.append(attachment)
def to_dct(self):
"""represent AttachmentList and related Attachment objects as dict
Returns:
"""
_lst = []
for attachments in self:
_lst.append(attachments.__dict__)
return {"Attachment": _lst}
@classmethod
def dummy(cls):
"""dummy data (for testing)
Returns:
"""
return AttachmentList(Attachment.dummy())
#
# class AttachmentList(object):
# """PyOTRS Attachment class """
# def __init__(self, attachments=None):
# attachment_list = []
# if isinstance(attachments, Attachment):
# attachment_list.append(attachments)
# elif isinstance(attachments, list):
# for item in attachments:
# attachment_list.append(item)
#
# self.attachment_list = attachment_list
#
# def __iter__(self):
# for item in self.attachment_list:
# yield item
#
# def __repr__(self):
# return "<{0}: {1} item(s)>".format(self.__class__.__name__, len(self.attachment_list))
#
# def add(self, attachment):
# """add Attachment to AttachmentList
#
# Args:
# attachment:
#
# Returns:
#
# """
# self.attachment_list.append(attachment)
#
# def to_dct(self):
# """represent AttachmentList and related Attachment objects as dict
#
# Returns:
#
# """
# _lst = []
# for attachments in self:
# _lst.append(attachments.__dict__)
# return {"Attachment": _lst}
#
# @classmethod
# def dummy(cls):
# """dummy data (for testing)
#
# Returns:
#
# """
# return AttachmentList(Attachment.dummy())
class DynamicField(object):
......@@ -285,56 +285,56 @@ class DynamicField(object):
"""
return DynamicField(dct={'Name': 'lastname', 'Value': 'Doe'})
class DynamicFieldList(object):
"""PyOTRS DynamicFieldList class """
def __init__(self, dynamic_field_dicts=None):
dynamic_field_list = []
if isinstance(dynamic_field_dicts, DynamicField):
dynamic_field_list.append(dynamic_field_dicts)
elif isinstance(dynamic_field_dicts, list):
for item in dynamic_field_dicts:
dynamic_field_list.append(item)
self.dynamic_field_list = dynamic_field_list
def __iter__(self):
for item in self.dynamic_field_list:
yield item
def __repr__(self):
return "<{0}: {1} item(s)>".format(self.__class__.__name__, len(self.dynamic_field_list))
def add(self, dynamic_field):
"""add DynamicField object to DynamicFieldList
Args:
dynamic_field (DynamicField):
Returns:
"""
self.dynamic_field_list.append(dynamic_field)
def to_dct(self):
"""represent DynamicFieldList and related DynamicField objects as dict
Returns:
"""
_lst = []
for dynamic_field in self:
_lst.append(dynamic_field.to_dct())
return {"DynamicField": _lst}
@classmethod
def dummy(cls):
"""dummy data (for testing)
Returns:
"""
return DynamicFieldList([DynamicField(name="firstname", value="Jane"),
DynamicField(dct={'Name': 'lastname', 'Value': 'Doe'})])
#
# class DynamicFieldList(object):
# """PyOTRS DynamicFieldList class """
# def __init__(self, dynamic_field_dicts=None):
# dynamic_field_list = []
# if isinstance(dynamic_field_dicts, DynamicField):
# dynamic_field_list.append(dynamic_field_dicts)
# elif isinstance(dynamic_field_dicts, list):
# for item in dynamic_field_dicts:
# dynamic_field_list.append(item)
#
# self.dynamic_field_list = dynamic_field_list
#
# def __iter__(self):
# for item in self.dynamic_field_list:
# yield item
#
# def __repr__(self):
# return "<{0}: {1} item(s)>".format(self.__class__.__name__, len(self.dynamic_field_list))
#
# def add(self, dynamic_field):
# """add DynamicField object to DynamicFieldList
#
# Args:
# dynamic_field (DynamicField):
#
# Returns:
#
# """
# self.dynamic_field_list.append(dynamic_field)
#
# def to_dct(self):
# """represent DynamicFieldList and related DynamicField objects as dict
#
# Returns:
# """
# _lst = []
# for dynamic_field in self:
# _lst.append(dynamic_field.to_dct())
# return {"DynamicField": _lst}
#
# @classmethod
# def dummy(cls):
# """dummy data (for testing)
#
# Returns:
#
# """
# return DynamicFieldList([DynamicField(name="firstname", value="Jane"),
# DynamicField(dct={'Name': 'lastname', 'Value': 'Doe'})])
class Ticket(object):
......@@ -342,6 +342,9 @@ class Ticket(object):
def __init__(self, dct):
self.attachment_list = []
self.dynamic_field_list = []
for key, value in dct.items():
if isinstance(value, dict):
dct[key] = Ticket(value)
......@@ -506,6 +509,10 @@ class Client(object):
self.response_type = None
self.ticket_search_result = None
self.ticket_list = []
self.attachment_list = []
self.dynamic_field_list = []
# credentials
self.username = username
self.password = password
......@@ -700,8 +707,8 @@ class Client(object):
Args:
ticket (Ticket):
article (Article): optional article
attachment_list (AttachmentList):
dynamic_field_list (DynamicFieldList):
attachment_list (List[Attachment]):
dynamic_field_list (List[DynamicField]):
**kwargs: any regular OTRS Fields (not for Dynamic Fields!)
.. todo::
......@@ -966,8 +973,8 @@ class Client(object):
ticket_id (int):
article (Article):
attachment_list (AttachmentList):
dynamic_field_list (DynamicFieldList):
attachment_list (List[Attachment]):
dynamic_field_list (List[DynamicField]):
**kwargs: any regular OTRS Fields (not for Dynamic Fields!)
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