PageRenderTime 44ms CodeModel.GetById 19ms RepoModel.GetById 1ms app.codeStats 0ms

/tests/test_pyotrs_responses.py

https://gitlab.com/rhab/PyOTRS
Python | 189 lines | 12 code | 11 blank | 166 comment | 1 complexity | 47775d8ca3710bf23a7012c7f7cd5062 MD5 | raw file
  1. # -*- coding: utf-8 -*-
  2. from __future__ import unicode_literals # support both Python2 and 3
  3. """ test_pyotrs_responses.py
  4. Test for PyOTRS using **responses**
  5. """
  6. # make sure (early) that parent dir (main app) is in path
  7. import unittest2 as unittest
  8. import responses # noqa
  9. import mock # noqa
  10. import requests # noqa
  11. from pyotrs.lib import Client # noqa
  12. from pyotrs.lib import APIError # noqa
  13. class FullResponsesTests(unittest.TestCase):
  14. """Tests using the responses module"""
  15. # def test_session_create_req_mocked_valid(self):
  16. # """Test session_create and _parse_and_validate_response; _send_request mocked; valid"""
  17. # obj = Client(baseurl="http://fqdn",
  18. # webservicename="GenericTicketConnectorREST")
  19. #
  20. # self.assertIsNone(obj.result_json)
  21. # self.assertIsNone(obj.session_id_store.value)
  22. #
  23. # with responses.RequestsMock(assert_all_requests_are_fired=True) as rsps:
  24. # rsps.add(responses.POST,
  25. # 'http://fqdn/otrs/nph-genericinterface.pl/Webservice/'
  26. # 'GenericTicketConnectorREST/Session',
  27. # json={u'AccessToken': u'tMtTFDg1PxCX51dWnjue4W5oQtNsFd0k'},
  28. # status=200,
  29. # content_type='application/json')
  30. #
  31. # result = obj.session_create()
  32. #
  33. # self.assertEqual(result, True)
  34. # self.assertFalse(obj._result_error)
  35. # self.assertEqual(obj.operation, 'SessionCreate')
  36. # self.assertEqual(obj._result_status_code, 200)
  37. # self.assertDictEqual(obj.result_json,
  38. # {u'AccessToken': u'tMtTFDg1PxCX51dWnjue4W5oQtNsFd0k'})
  39. # self.assertEqual(obj.session_id_store.value, 'tMtTFDg1PxCX51dWnjue4W5oQtNsFd0k')
  40. #
  41. # def test_session_create_req_mocked_invalid(self):
  42. # """Test session_create and _parse_and_validate_response; _send_request mocked; invalid"""
  43. # obj = Client(baseurl="http://fqdn",
  44. # webservicename="GenericTicketConnectorREST")
  45. #
  46. # self.assertIsNone(obj.result_json)
  47. # self.assertIsNone(obj.session_id_store.value)
  48. #
  49. # with responses.RequestsMock(assert_all_requests_are_fired=True) as rsps:
  50. # rsps.add(responses.POST,
  51. # 'http://fqdn/otrs/nph-genericinterface.pl/Webservice/'
  52. # 'GenericTicketConnectorREST/Session',
  53. # json={"Error": {"ErrorCode": "SessionCreate.AuthFail",
  54. # "ErrorMessage": "SessionCreate: Authorization failing!"}},
  55. # status=200,
  56. # content_type='application/json')
  57. #
  58. # self.assertRaisesRegex(APIError,
  59. # 'Failed to access OTRS API. Check Username and Password.*',
  60. # obj.session_create)
  61. #
  62. # self.assertTrue(obj._result_error)
  63. # self.assertEqual(obj.operation, 'SessionCreate')
  64. # self.assertEqual(obj._result_status_code, 200)
  65. # expected_dct = {"Error": {"ErrorCode": "SessionCreate.AuthFail",
  66. # "ErrorMessage": "SessionCreate: Authorization failing!"}}
  67. # self.assertDictEqual(obj.result_json, expected_dct)
  68. # self.assertIsNone(obj.session_id_store.value)
  69. #
  70. # @mock.patch('pyotrs.lib.Client._parse_and_validate_response', autospec=True)
  71. # def test_session_create_req_mocked_failed_validation(self, mock_validate_resp):
  72. # """Test session_create; _parse_and_val_response and _send_request mocked; fail vali"""
  73. # obj = Client(baseurl="http://fqdn",
  74. # webservicename="GenericTicketConnectorREST")
  75. #
  76. # self.assertIsNone(obj.result_json)
  77. # self.assertIsNone(obj.session_id_store.value)
  78. #
  79. # mock_validate_resp.return_value = False
  80. #
  81. # with responses.RequestsMock(assert_all_requests_are_fired=True) as rsps:
  82. # rsps.add(responses.POST,
  83. # 'http://fqdn/otrs/nph-genericinterface.pl/Webservice/'
  84. # 'GenericTicketConnectorREST/Session',
  85. # json={u'AccessToken': u'tMtTFDg1PxCX51dWnjue4W5oQtNsFd0k'},
  86. # status=200,
  87. # content_type='application/json')
  88. #
  89. # result = obj.session_create()
  90. #
  91. # self.assertFalse(result)
  92. # def test_ticket_update_w_art_nok_unknown_exception(self):
  93. # """Test ticket_update with article - nok - exception (unknown) - mocked"""
  94. # obj = Client(baseurl="http://fqdn",
  95. # webservicename="GenericTicketConnectorREST")
  96. # obj.operation = "TicketUpdate"
  97. # obj._result_type = obj.operation_map[obj.operation]["ResultType"]
  98. #
  99. # art = {'Article': {'Subject': 'Dümmy Subject',
  100. # 'Body': 'Hallo Bjørn,\n[kt]\n\n -- The End',
  101. # 'TimeUnit': 0,
  102. # 'MimeType': 'text/plain',
  103. # 'Charset': 'UTF8'}}
  104. #
  105. # with responses.RequestsMock(assert_all_requests_are_fired=True) as rsps:
  106. # rsps.add(responses.PATCH,
  107. # 'http://fqdn/otrs/nph-genericinterface.pl/Webservice/'
  108. # 'GenericTicketConnectorREST/Ticket/3',
  109. # json={u'TicketID': u'3', u'TicketNumber': u'000003'},
  110. # status=200,
  111. # content_type='application/json')
  112. #
  113. # self.assertRaisesRegex(ValueError,
  114. # 'Unknown Exception',
  115. # obj.ticket_update,
  116. # payload=art,
  117. # ticket_id=3)
  118. #
  119. # def test_ticket_update_w_article_nok_exception(self):
  120. # """Test ticket_update with article - nok - reraised exception - mocked"""
  121. # obj = Client(baseurl="http://fqdn",
  122. # webservicename="GenericTicketConnectorREST")
  123. # obj.operation = "TicketUpdate"
  124. # obj._result_type = obj.operation_map[obj.operation]["ResultType"]
  125. #
  126. # art = {'Article': {'Subject': 'Dümmy Subject',
  127. # 'Body': 'Hallo Bjørn,\n[kt]\n\n -- The End',
  128. # 'TimeUnit': 0,
  129. # 'MimeType': 'text/plain',
  130. # 'Charset': 'UTF8'}}
  131. #
  132. # with responses.RequestsMock(assert_all_requests_are_fired=True) as rsps:
  133. # rsps.add(responses.PATCH,
  134. # 'http://fqdn/otrs/nph-genericinterface.pl/Webservice/'
  135. # 'GenericTicketConnectorREST/Ticket/4',
  136. # json={u'ArticleID': u'', u'TicketID': u'4', u'TicketNumber': u'000004'},
  137. # status=200,
  138. # content_type='application/json')
  139. #
  140. # self.assertRaisesRegex(ValueError,
  141. # 'Unknown Ex.*',
  142. # obj.ticket_update,
  143. # payload=art,
  144. # ticket_id=4)
  145. #
  146. # def test_ticket_update_w_article_nok_exception_mocked_no_art(self):
  147. # """Test ticket_update with article - nok - reraised excep mocked - no art"""
  148. # obj = Client(baseurl="http://fqdn",
  149. # webservicename="GenericTicketConnectorREST")
  150. # obj.operation = "TicketUpdate"
  151. # obj._result_type = obj.operation_map[obj.operation]["ResultType"]
  152. #
  153. # art = {'Article': {'Subject': 'Dümmy Subject',
  154. # 'Body': 'Hallo Bjørn,\n[kt]\n\n -- The End',
  155. # 'TimeUnit': 0,
  156. # 'MimeType': 'text/plain',
  157. # 'Charset': 'UTF8'}}
  158. #
  159. # with responses.RequestsMock(assert_all_requests_are_fired=True) as rsps:
  160. # rsps.add(responses.PATCH,
  161. # 'http://fqdn/otrs/nph-genericinterface.pl/Webservice/'
  162. # 'GenericTicketConnectorREST/Ticket/5',
  163. # json={u'TicketID': u'4', u'TicketNumber': u'000004'},
  164. # status=200,
  165. # content_type='application/json')
  166. #
  167. # self.assertRaisesRegex(ValueError,
  168. # 'Unknown Ex.*',
  169. # obj.ticket_update,
  170. # payload=art,
  171. # ticket_id=5)
  172. # Main
  173. def main():
  174. unittest.main()
  175. if __name__ == '__main__':
  176. main()
  177. # EOF