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

fix tests after refactoring

parent 406d3505
No related branches found
No related tags found
No related merge requests found
......@@ -92,12 +92,12 @@ def get(baseurl=None, webservicename=None, username=None, password=None, ticket_
click.secho("Connecting to %s as %s.." % (baseurl, username))
client = Client(baseurl, webservicename, username, password)
client.session_create()
ticket = client.ticket_get_by_id(ticket_id)
click.secho("Ticket: \t%s" % ticket['Title'])
click.secho("Queue: \t\t%s" % ticket['Queue'])
click.secho("State: \t\t%s" % ticket['State'])
click.secho("Priority: \t%s" % ticket['Priority'])
click.secho("\nRaw Ticket:")
print(ticket)
if client.ticket_get_by_id(ticket_id):
for ticket in client.ticket_get_result_list:
click.secho("Ticket: \t%s" % ticket['Title'])
click.secho("Queue: \t\t%s" % ticket['Queue'])
click.secho("State: \t\t%s" % ticket['State'])
click.secho("Priority: \t%s" % ticket['Priority'])
click.secho("\nRaw Ticket:")
print(ticket)
......@@ -247,7 +247,6 @@ class Ticket(object):
"""PyOTRS Ticket class """
def __init__(self, dct):
self.attachment_list = []
self.dynamic_field_list = []
......@@ -257,7 +256,10 @@ class Ticket(object):
self.__dict__ = dct
def __repr__(self):
return "<{0}>".format(self.__class__.__name__)
if hasattr(self, 'TicketID'):
return "<{0}: {1}>".format(self.__class__.__name__, self.TicketID)
else:
return "<{0}>".format(self.__class__.__name__)
@classmethod
def create_basic(cls,
......@@ -525,8 +527,9 @@ class Client(object):
webservicename,
username=None,
password=None,
session_id_file=None,
session_timeout=None,
session_id_file=None,
session_validation_ticket_id=1,
proxies=None,
https_verify=True,
ca_cert_bundle=None):
......@@ -551,6 +554,8 @@ class Client(object):
self.session_id_store = SessionIDStore(file_path=session_id_file,
session_timeout=self.session_timeout)
self.session_validation_ticket_id = session_validation_ticket_id
if not proxies:
self.proxies = {"http": "", "https": "", "no": ""}
else:
......@@ -580,8 +585,9 @@ class Client(object):
self.ticket_search_result_list = []
self.ticket_get_result_list = []
# self.response_json = None
# self.response_type = None
self.response_json = None
self.response_status_code = None
self.response_content = None
"""
GenericInterface::Operation::Session::SessionCreate
......@@ -614,9 +620,10 @@ class Client(object):
# TODO 2016-04-13 (RH): Is there a nicer way to check whether session is valid?!
url = ("{0.baseurl}/otrs/nph-genericinterface.pl/Webservice/"
"{0.webservicename}/Ticket/1".format(self))
"{0.webservicename}/Ticket".format(self))
payload = {"SessionID": self.session_id_store.value}
payload = {"SessionID": self.session_id_store.value,
"TicketID": self.session_validation_ticket_id}
return self._ticket_get_json(url, payload)
......@@ -791,7 +798,7 @@ class Client(object):
return self._ticket_get_json(url, payload)
def ticket_get_by_list_of_ids(self, ticket_id_list, dynamic_fields=True, all_articles=False):
def ticket_get_by_ids(self, ticket_id_list, dynamic_fields=True, all_articles=False):
"""ticket_get_by_list
Args:
......@@ -1034,7 +1041,6 @@ class Client(object):
datetime_now = datetime.datetime.utcnow()
pending_till = datetime_now + datetime.timedelta(days=pending_days, hours=pending_hours)
pending_till_str = pending_till.strftime("%Y-%m-%d %H:%M:%S UTC")
pt = Ticket.datetime_to_pending_time_text(datetime_obj=pending_till)
......@@ -1142,8 +1148,8 @@ class Client(object):
"""
# if not isinstance(response, requests.Response):
# raise ValueError("requests.Response object expected!")
if not isinstance(response, requests.models.Response):
raise ValueError("requests.Response object expected!")
# clear data from Client
self.ticket_get_result_list = []
......@@ -1193,6 +1199,12 @@ class Client(object):
"OTRS Error Code: {0}\nOTRS Error Message: {1}"
"".format(self.response_json["Error"]["ErrorCode"],
self.response_json["Error"]["ErrorMessage"]))
# for operation TicketGet: parse result list into Ticket object list
if self.operation == "TicketGet":
for item in self.response_json['Ticket']:
self.ticket_get_result_list.append(Ticket(item))
return True
# EOF
This diff is collapsed.
......@@ -22,17 +22,13 @@ from pyotrs import DynamicField # noqa
class DynamicFieldTests(unittest.TestCase):
def test_init_blank(self):
self.assertRaisesRegex(TypeError, ".*takes exactly 3 arguments.*", DynamicField)
self.assertRaises(TypeError, DynamicField)
def test_init_name_only(self):
self.assertRaisesRegex(TypeError,
".*takes exactly 3 arguments.*",
DynamicField, name="foo")
self.assertRaises(TypeError, DynamicField, name="foo")
def test_init_value_only(self):
self.assertRaisesRegex(TypeError,
".*takes exactly 3 arguments.*",
DynamicField, value="bar")
self.assertRaises(TypeError, DynamicField, value="bar")
def test_dummy1_static(self):
dyn1 = DynamicField(name="firstname", value="Jane")
......
This diff is collapsed.
......@@ -128,6 +128,16 @@ class TicketTests(unittest.TestCase):
self.assertIsInstance(tic, Ticket)
self.assertEqual(tic.__repr__(), '<Ticket>')
def test_create_basic_title_queue_state_prio_customer_five(self):
tic = Ticket.create_basic(Title='foobar',
Queue='raw',
StateID='4',
Priority='average',
CustomerUser='root@localhost')
self.assertIsInstance(tic, Ticket)
tic.TicketID = '5'
self.assertEqual(tic.__repr__(), '<Ticket: 5>')
def test_create_basic_title_queue_state_prio_customer_to_dct(self):
tic = Ticket.create_basic(Title='foobar',
QueueID='1',
......
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