otrs-somconnexio 0.4.4__py2.py3-none-any.whl → 0.7.3__py2.py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (192) hide show
  1. otrs_somconnexio/client.py +110 -42
  2. otrs_somconnexio/exceptions.py +44 -11
  3. otrs_somconnexio/otrs_models/abstract_article.py +3 -0
  4. otrs_somconnexio/otrs_models/adsl_data.py +7 -37
  5. otrs_somconnexio/otrs_models/adsl_dynamic_fields.py +5 -4
  6. otrs_somconnexio/otrs_models/adsl_ticket.py +9 -5
  7. otrs_somconnexio/otrs_models/configurations/changes/__init__.py +0 -0
  8. otrs_somconnexio/otrs_models/configurations/changes/add_data.py +13 -0
  9. otrs_somconnexio/otrs_models/configurations/changes/change_email.py +16 -0
  10. otrs_somconnexio/otrs_models/configurations/changes/change_iban.py +8 -0
  11. otrs_somconnexio/otrs_models/configurations/changes/change_owner.py +19 -0
  12. otrs_somconnexio/otrs_models/configurations/changes/change_pack.py +6 -0
  13. otrs_somconnexio/otrs_models/configurations/changes/change_shared_bond.py +7 -0
  14. otrs_somconnexio/otrs_models/configurations/changes/change_tariff.py +29 -0
  15. otrs_somconnexio/otrs_models/configurations/changes/change_tariff_adsl.py +20 -0
  16. otrs_somconnexio/otrs_models/configurations/changes/change_tariff_fiber.py +11 -0
  17. otrs_somconnexio/otrs_models/configurations/provision/__init__.py +0 -0
  18. otrs_somconnexio/otrs_models/configurations/{adsl_ticket.py → provision/adsl_ticket.py} +2 -2
  19. otrs_somconnexio/otrs_models/configurations/{fiber_ticket.py → provision/fiber_ticket.py} +6 -3
  20. otrs_somconnexio/otrs_models/configurations/provision/mobile_ticket.py +44 -0
  21. otrs_somconnexio/otrs_models/configurations/provision/router_4G_ticket.py +8 -0
  22. otrs_somconnexio/otrs_models/configurations/provision/switchboard_ticket.py +10 -0
  23. otrs_somconnexio/otrs_models/configurations/querys/__init__.py +0 -0
  24. otrs_somconnexio/otrs_models/configurations/querys/check_coverage.py +16 -0
  25. otrs_somconnexio/otrs_models/configurations/querys/we_call_you.py +26 -0
  26. otrs_somconnexio/otrs_models/coverage/adsl.py +1 -1
  27. otrs_somconnexio/otrs_models/coverage/asociatel_fiber.py +6 -0
  28. otrs_somconnexio/otrs_models/coverage/mm_fiber.py +7 -0
  29. otrs_somconnexio/otrs_models/coverage/orange_fiber.py +5 -0
  30. otrs_somconnexio/otrs_models/coverage/vdf_fiber.py +8 -0
  31. otrs_somconnexio/otrs_models/coverage_article.py +20 -4
  32. otrs_somconnexio/otrs_models/coverage_ticket.py +1 -0
  33. otrs_somconnexio/otrs_models/customer_data.py +15 -3
  34. otrs_somconnexio/otrs_models/customer_user.py +3 -9
  35. otrs_somconnexio/otrs_models/fiber_data.py +17 -33
  36. otrs_somconnexio/otrs_models/fiber_dynamic_fields.py +58 -4
  37. otrs_somconnexio/otrs_models/fiber_ticket.py +9 -5
  38. otrs_somconnexio/otrs_models/internet_data.py +79 -0
  39. otrs_somconnexio/otrs_models/internet_dynamic_fields.py +65 -26
  40. otrs_somconnexio/otrs_models/mobile_data.py +49 -5
  41. otrs_somconnexio/otrs_models/mobile_dynamic_fields.py +50 -8
  42. otrs_somconnexio/otrs_models/mobile_ticket.py +20 -4
  43. otrs_somconnexio/otrs_models/process_ticket/internet.py +40 -97
  44. otrs_somconnexio/otrs_models/process_ticket/mobile.py +63 -43
  45. otrs_somconnexio/otrs_models/process_ticket/process_ticket.py +74 -0
  46. otrs_somconnexio/otrs_models/providers.py +4 -3
  47. otrs_somconnexio/otrs_models/provision_article.py +7 -5
  48. otrs_somconnexio/otrs_models/provision_dynamic_fields.py +76 -11
  49. otrs_somconnexio/otrs_models/provision_ticket.py +52 -28
  50. otrs_somconnexio/otrs_models/responsible_data.py +6 -0
  51. otrs_somconnexio/otrs_models/router_4G_data.py +8 -0
  52. otrs_somconnexio/otrs_models/router_4G_dynamic_fields.py +9 -0
  53. otrs_somconnexio/otrs_models/router_4G_ticket.py +26 -0
  54. otrs_somconnexio/otrs_models/service.py +41 -12
  55. otrs_somconnexio/otrs_models/switchboard_data.py +58 -0
  56. otrs_somconnexio/otrs_models/switchboard_dynamic_fields.py +94 -0
  57. otrs_somconnexio/otrs_models/switchboard_header_data.py +18 -0
  58. otrs_somconnexio/otrs_models/switchboard_header_dynamic_fields.py +80 -0
  59. otrs_somconnexio/otrs_models/switchboard_header_ticket.py +30 -0
  60. otrs_somconnexio/otrs_models/switchboard_ticket.py +35 -0
  61. otrs_somconnexio/otrs_models/telecom_company.py +69 -69
  62. otrs_somconnexio/otrs_models/ticket_factory.py +34 -11
  63. otrs_somconnexio/otrs_models/ticket_types/__init__.py +0 -0
  64. otrs_somconnexio/otrs_models/ticket_types/add_data_ticket.py +36 -0
  65. otrs_somconnexio/otrs_models/ticket_types/base_change_tariff_ba_ticket.py +23 -0
  66. otrs_somconnexio/otrs_models/ticket_types/base_change_ticket.py +33 -0
  67. otrs_somconnexio/otrs_models/ticket_types/base_customer_ticket.py +24 -0
  68. otrs_somconnexio/otrs_models/ticket_types/base_ticket.py +147 -0
  69. otrs_somconnexio/otrs_models/ticket_types/change_email_ticket.py +40 -0
  70. otrs_somconnexio/otrs_models/ticket_types/change_iban_ticket.py +39 -0
  71. otrs_somconnexio/otrs_models/ticket_types/change_owner_ticket.py +132 -0
  72. otrs_somconnexio/otrs_models/ticket_types/change_pack_not_shared_data.py +36 -0
  73. otrs_somconnexio/otrs_models/ticket_types/change_personal_email_ticket.py +31 -0
  74. otrs_somconnexio/otrs_models/ticket_types/change_shared_bond_ticket.py +35 -0
  75. otrs_somconnexio/otrs_models/ticket_types/change_tariff_adsl_landline_ticket.py +30 -0
  76. otrs_somconnexio/otrs_models/ticket_types/change_tariff_adsl_out_landline_ticket.py +30 -0
  77. otrs_somconnexio/otrs_models/ticket_types/change_tariff_adsl_ticket.py +42 -0
  78. otrs_somconnexio/otrs_models/ticket_types/change_tariff_fiber_ticket.py +43 -0
  79. otrs_somconnexio/otrs_models/ticket_types/change_tariff_ticket.py +87 -0
  80. otrs_somconnexio/otrs_models/ticket_types/change_tariff_ticket_mobile_pack.py +51 -0
  81. otrs_somconnexio/otrs_models/ticket_types/change_tariff_ticket_shared_bonds.py +22 -0
  82. otrs_somconnexio/otrs_models/ticket_types/check_coverage_ticket.py +52 -0
  83. otrs_somconnexio/otrs_models/ticket_types/we_call_you_ticket.py +53 -0
  84. otrs_somconnexio/otrs_models/vf_provisioning_article.py +4 -2
  85. otrs_somconnexio/responses/ticket_creation.py +5 -4
  86. otrs_somconnexio/services/activate_change_tarriff_mobile_tickets.py +13 -0
  87. otrs_somconnexio/services/base_get_ticket_by_number.py +22 -0
  88. otrs_somconnexio/services/change_to_confirm_ticket.py +45 -0
  89. otrs_somconnexio/services/get_mobile_related_tickets.py +11 -0
  90. otrs_somconnexio/services/get_sharing_data_mobile_tickets.py +65 -0
  91. otrs_somconnexio/services/get_ticket_title.py +26 -0
  92. otrs_somconnexio/services/mapping_mobile_minutes.py +5 -5
  93. otrs_somconnexio/services/mapping_services.py +8 -6
  94. otrs_somconnexio/services/move_sharing_data_mobile_tickets.py +13 -0
  95. otrs_somconnexio/services/search_tickets_mobile_change_tariff.py +25 -0
  96. otrs_somconnexio/services/search_tickets_service.py +57 -0
  97. otrs_somconnexio/services/set_SIM_recieved_mobile_ticket.py +107 -0
  98. otrs_somconnexio/services/set_SIM_returned_mobile_ticket.py +37 -0
  99. otrs_somconnexio/services/set_fiber_contract_code_mobile_ticket.py +21 -0
  100. otrs_somconnexio/services/unblock_mobile_pack_ticket.py +48 -0
  101. otrs_somconnexio/services/update_process_ticket_with_coverage_tickets_info_service.py +10 -10
  102. otrs_somconnexio/services/update_ticket_DF.py +18 -0
  103. otrs_somconnexio/services/update_ticket_with_provider_info.py +2 -3
  104. otrs_somconnexio/user_management_client/client.py +15 -27
  105. otrs_somconnexio/user_management_client/user_management_response.py +2 -3
  106. {otrs_somconnexio-0.4.4.dist-info → otrs_somconnexio-0.7.3.dist-info}/METADATA +19 -4
  107. otrs_somconnexio-0.7.3.dist-info/RECORD +202 -0
  108. {otrs_somconnexio-0.4.4.dist-info → otrs_somconnexio-0.7.3.dist-info}/WHEEL +1 -1
  109. tests/data/otrs_raw_responses.py +12 -6
  110. tests/integration/test_change_customer_language.py +14 -19
  111. tests/integration/test_ticket_factory.py +383 -106
  112. tests/integration/test_update_ticket_with_coverage_data.py +53 -27
  113. tests/otrs_models/common_helper.py +9 -0
  114. tests/otrs_models/configuration/changes/__init__.py +0 -0
  115. tests/otrs_models/configuration/changes/test_change_tariff_ticket.py +91 -0
  116. tests/otrs_models/configuration/provision/__init__.py +0 -0
  117. tests/otrs_models/configuration/provision/test_adsl_ticket.py +30 -0
  118. tests/otrs_models/configuration/provision/test_fiber_ticket.py +32 -0
  119. tests/otrs_models/configuration/provision/test_mobile_ticket.py +62 -0
  120. tests/otrs_models/process_ticket/test_internet_process_ticket.py +54 -60
  121. tests/otrs_models/process_ticket/test_mobile_process_ticket.py +56 -33
  122. tests/otrs_models/test_abstract_article.py +3 -2
  123. tests/otrs_models/test_adsl_data.py +11 -4
  124. tests/otrs_models/test_adsl_dynamic_fields.py +217 -100
  125. tests/otrs_models/test_adsl_ticket.py +78 -83
  126. tests/otrs_models/test_coverage_article.py +9 -7
  127. tests/otrs_models/test_coverage_ticket.py +4 -2
  128. tests/otrs_models/test_customer_user.py +23 -20
  129. tests/otrs_models/test_fiber_data.py +20 -4
  130. tests/otrs_models/test_fiber_dynamic_fields.py +458 -134
  131. tests/otrs_models/test_fiber_ticket.py +113 -79
  132. tests/otrs_models/test_mobile_data.py +14 -3
  133. tests/otrs_models/test_mobile_dynamic_fields.py +335 -74
  134. tests/otrs_models/test_mobile_paused_ticket.py +35 -0
  135. tests/otrs_models/test_mobile_ticket.py +82 -96
  136. tests/otrs_models/test_provision_article.py +49 -0
  137. tests/otrs_models/test_router_4G_data.py +43 -0
  138. tests/otrs_models/test_router_4G_dynamic_fields.py +619 -0
  139. tests/otrs_models/test_router_4G_ticket.py +135 -0
  140. tests/otrs_models/test_service.py +58 -14
  141. tests/otrs_models/test_switchboard_data.py +37 -0
  142. tests/otrs_models/test_switchboard_dynamic_fields.py +197 -0
  143. tests/otrs_models/test_switchboard_header_data.py +18 -0
  144. tests/otrs_models/test_switchboard_header_dynamic_fields.py +119 -0
  145. tests/otrs_models/test_switchboard_header_ticket.py +127 -0
  146. tests/otrs_models/test_switchboard_ticket.py +147 -0
  147. tests/otrs_models/test_telecom_company.py +16 -16
  148. tests/otrs_models/test_ticket_factory.py +73 -16
  149. tests/otrs_models/test_vf_provisioning_article.py +6 -5
  150. tests/otrs_models/ticket_types/__init__.py +0 -0
  151. tests/otrs_models/ticket_types/test_add_data.py +79 -0
  152. tests/otrs_models/ticket_types/test_change_email.py +163 -0
  153. tests/otrs_models/ticket_types/test_change_iban.py +82 -0
  154. tests/otrs_models/ticket_types/test_change_owner.py +277 -0
  155. tests/otrs_models/ticket_types/test_change_pack_not_shared_data.py +77 -0
  156. tests/otrs_models/ticket_types/test_change_personal_email.py +81 -0
  157. tests/otrs_models/ticket_types/test_change_tariff.py +435 -0
  158. tests/otrs_models/ticket_types/test_change_tariff_adsl_landline.py +115 -0
  159. tests/otrs_models/ticket_types/test_change_tariff_adsl_out_landline.py +115 -0
  160. tests/otrs_models/ticket_types/test_change_tariff_fiber.py +175 -0
  161. tests/otrs_models/ticket_types/test_change_tariff_mobile_pack.py +151 -0
  162. tests/otrs_models/ticket_types/test_change_tariff_shared_bonds.py +65 -0
  163. tests/otrs_models/ticket_types/test_check_coverage.py +106 -0
  164. tests/otrs_models/ticket_types/test_shared_bond.py +80 -0
  165. tests/otrs_models/ticket_types/test_we_call_you.py +108 -0
  166. tests/responses/test_ticket_creation.py +4 -4
  167. tests/services/test_activate_change_tariff_mobile_tickets.py +45 -0
  168. tests/services/test_change_to_confirm_ticket.py +80 -0
  169. tests/services/test_get_mobile_related_tickets.py +39 -0
  170. tests/services/test_get_sharing_data_mobile_tickets.py +127 -0
  171. tests/services/test_mapping_mobile_minutes.py +8 -8
  172. tests/services/{test_mappint_services.py → test_mapping_services.py} +9 -9
  173. tests/services/test_move_sharing_data_mobile_tickets.py +43 -0
  174. tests/services/test_search_tickets_mobile_change_tariff.py +84 -0
  175. tests/services/test_search_tickets_service.py +166 -0
  176. tests/services/test_set_SIM_recieved_mobile_ticket_service.py +211 -0
  177. tests/services/test_set_SIM_returned_mobile_ticket_service.py +59 -0
  178. tests/services/test_set_fiber_contract_code_mobile_ticket_service.py +47 -0
  179. tests/services/test_unblock_mobile_pack_ticket.py +224 -0
  180. tests/services/test_update_process_ticket_with_VF_provisioning.py +15 -14
  181. tests/services/test_update_process_ticket_with_coverage_tickets_info_service.py +22 -10
  182. tests/services/test_update_ticket_with_provider_info.py +16 -15
  183. tests/user_management_client/test_client.py +41 -58
  184. tests/user_management_client/test_user_management_response.py +13 -26
  185. otrs_somconnexio/otrs_models/configurations/mobile_ticket.py +0 -17
  186. otrs_somconnexio/otrs_models/coverage/mm_fibre.py +0 -7
  187. otrs_somconnexio/otrs_models/coverage/vdf_fibre.py +0 -8
  188. otrs_somconnexio-0.4.4.dist-info/RECORD +0 -95
  189. tests/otrs_models/configuration/test_adsl_ticket.py +0 -45
  190. tests/otrs_models/configuration/test_fiber_ticket.py +0 -45
  191. tests/otrs_models/configuration/test_mobile_ticket.py +0 -45
  192. {otrs_somconnexio-0.4.4.dist-info → otrs_somconnexio-0.7.3.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,211 @@
1
+ import unittest
2
+ from datetime import date
3
+
4
+ from mock import ANY, Mock, call, patch
5
+
6
+ from otrs_somconnexio.exceptions import TicketNotReadyToBeUpdatedWithSIMReceivedData
7
+ from otrs_somconnexio.services.set_SIM_recieved_mobile_ticket import (
8
+ SetSIMRecievedMobileTicket,
9
+ )
10
+ from otrs_somconnexio.otrs_models.configurations.provision.mobile_ticket import (
11
+ MobileTicketConfiguration,
12
+ MobileTicketCompletedConfiguration,
13
+ )
14
+
15
+
16
+ @patch("otrs_somconnexio.services.set_SIM_recieved_mobile_ticket.DynamicField")
17
+ @patch("otrs_somconnexio.services.set_SIM_recieved_mobile_ticket.MobileProcessTicket")
18
+ @patch("otrs_somconnexio.services.base_get_ticket_by_number.OTRSClient")
19
+ class SetSIMRecievedMobileTicketTestCase(unittest.TestCase):
20
+ def setUp(self):
21
+ self.mock_otrs_client = Mock(
22
+ spec=[
23
+ "update_ticket",
24
+ "get_ticket_by_number",
25
+ ]
26
+ )
27
+ self.mock_mobile_process_ticket = Mock(
28
+ spec=[
29
+ "queue_id",
30
+ "service_technology",
31
+ "fiber_contract_code",
32
+ "mobile_service_type",
33
+ "confirmed_documentation",
34
+ ]
35
+ )
36
+
37
+ def test_run_only_mobile_confirm_doc_no_associated(
38
+ self, MockOTRSClient, MockMobileProcessTicket, MockDF
39
+ ):
40
+ ticket_number = "123"
41
+ MockOTRSClient.return_value = self.mock_otrs_client
42
+ MockMobileProcessTicket.return_value = self.mock_mobile_process_ticket
43
+ MockOTRSClient.return_value.get_ticket_by_number.return_value = Mock(
44
+ spec=["tid"]
45
+ )
46
+ MockMobileProcessTicket.return_value.confirmed_documentation = "si"
47
+ MockMobileProcessTicket.return_value.fiber_contract_code = False
48
+ MockMobileProcessTicket.return_value.queue_id = (
49
+ MobileTicketConfiguration.queue_id
50
+ )
51
+ MockMobileProcessTicket.return_value.service_technology = "mòbil"
52
+
53
+ SetSIMRecievedMobileTicket(
54
+ ticket_number, date(2023, 1, 20), date(2023, 1, 18)
55
+ ).run()
56
+
57
+ MockOTRSClient.return_value.get_ticket_by_number.assert_called_once_with(
58
+ ticket_number,
59
+ dynamic_fields=True,
60
+ )
61
+ MockOTRSClient.return_value.update_ticket.assert_called_once_with(
62
+ MockOTRSClient.return_value.get_ticket_by_number.return_value.tid,
63
+ article=None,
64
+ dynamic_fields=[ANY] * 4,
65
+ )
66
+ MockDF.assert_has_calls(
67
+ [
68
+ call(
69
+ name="SIMrebuda",
70
+ value=1,
71
+ ),
72
+ call(
73
+ name="permetActivacio",
74
+ value="si",
75
+ ),
76
+ call(name="dataActivacioLiniaMobil", value="2023-01-20"),
77
+ call(name="dataIntroPlataforma", value="2023-01-18"),
78
+ ]
79
+ )
80
+
81
+ def test_run_queue_ended_fiber(
82
+ self, MockOTRSClient, MockMobileProcessTicket, MockDF
83
+ ):
84
+ # TODO: Delete this test??
85
+ ticket_number = "123"
86
+ MockOTRSClient.return_value = self.mock_otrs_client
87
+ MockMobileProcessTicket.return_value = self.mock_mobile_process_ticket
88
+ MockDF.return_value = Mock(spec=[])
89
+ MockOTRSClient.return_value.get_ticket_by_number.return_value = Mock(
90
+ spec=["tid"]
91
+ )
92
+ MockMobileProcessTicket.return_value.queue_id = (
93
+ MobileTicketCompletedConfiguration.queue_id
94
+ )
95
+
96
+ SetSIMRecievedMobileTicket(
97
+ ticket_number, date(2023, 1, 20), date(2023, 1, 18)
98
+ ).run()
99
+ MockOTRSClient.return_value.get_ticket_by_number.assert_called_once_with(
100
+ ticket_number,
101
+ dynamic_fields=True,
102
+ )
103
+ MockOTRSClient.return_value.update_ticket.assert_called_once_with(
104
+ MockOTRSClient.return_value.get_ticket_by_number.return_value.tid,
105
+ article=None,
106
+ dynamic_fields=[ANY] * 4,
107
+ )
108
+ MockDF.assert_has_calls(
109
+ [
110
+ call(
111
+ name="SIMrebuda",
112
+ value=1,
113
+ ),
114
+ call(
115
+ name="permetActivacio",
116
+ value="si",
117
+ ),
118
+ call(name="dataActivacioLiniaMobil", value="2023-01-20"),
119
+ call(name="dataIntroPlataforma", value="2023-01-18"),
120
+ ]
121
+ )
122
+
123
+ def test_run_not_associated_not_portability(
124
+ self, MockOTRSClient, MockMobileProcessTicket, MockDF
125
+ ):
126
+ ticket_number = "123"
127
+ MockMobileProcessTicket.return_value.queue_id = (
128
+ MobileTicketConfiguration.queue_id
129
+ )
130
+ MockMobileProcessTicket.return_value.mobile_service_type = "altaNova"
131
+ MockMobileProcessTicket.return_value.confirmed_documentation = "si"
132
+
133
+ SetSIMRecievedMobileTicket(
134
+ ticket_number,
135
+ date(2023, 1, 20),
136
+ date(2023, 1, 18),
137
+ ).run()
138
+
139
+ MockOTRSClient.return_value.get_ticket_by_number.assert_called_once_with(
140
+ ticket_number,
141
+ dynamic_fields=True,
142
+ )
143
+ MockOTRSClient.return_value.update_ticket.assert_called_once_with(
144
+ MockOTRSClient.return_value.get_ticket_by_number.return_value.tid,
145
+ article=None,
146
+ dynamic_fields=[ANY] * 4,
147
+ )
148
+ MockDF.assert_has_calls(
149
+ [
150
+ call(
151
+ name="SIMrebuda",
152
+ value=1,
153
+ ),
154
+ call(
155
+ name="permetActivacio",
156
+ value="si",
157
+ ),
158
+ call(name="dataActivacioLiniaMobil", value="2023-01-20"),
159
+ call(name="dataIntroPlataforma", value="2023-01-18"),
160
+ ]
161
+ )
162
+
163
+ def test_run_only_mobile_no_confirm_doc(
164
+ self, MockOTRSClient, MockMobileProcessTicket, MockDF
165
+ ):
166
+ ticket_number = "123"
167
+ MockMobileProcessTicket.return_value.queue_id = (
168
+ MobileTicketConfiguration.queue_id
169
+ )
170
+ MockMobileProcessTicket.return_value.mobile_service_type = "altaNova"
171
+ MockMobileProcessTicket.return_value.confirmed_documentation = "no"
172
+ MockMobileProcessTicket.return_value.fiber_contract_code = False
173
+
174
+ SetSIMRecievedMobileTicket(
175
+ ticket_number,
176
+ date(2023, 1, 20),
177
+ date(2023, 1, 18),
178
+ ).run()
179
+
180
+ MockOTRSClient.return_value.get_ticket_by_number.assert_called_once_with(
181
+ ticket_number,
182
+ dynamic_fields=True,
183
+ )
184
+ MockOTRSClient.return_value.update_ticket.assert_called_once_with(
185
+ MockOTRSClient.return_value.get_ticket_by_number.return_value.tid,
186
+ article=None,
187
+ dynamic_fields=[ANY],
188
+ )
189
+ MockDF.assert_has_calls(
190
+ [
191
+ call(
192
+ name="SIMrebuda",
193
+ value=1,
194
+ )
195
+ ]
196
+ )
197
+
198
+ def test_run_ticket_not_ready(self, MockMobileProcessTicket, _, __):
199
+ ticket_number = "123"
200
+ MockMobileProcessTicket.return_value.queue_id = 9999
201
+
202
+ with self.assertRaises(TicketNotReadyToBeUpdatedWithSIMReceivedData) as error:
203
+ SetSIMRecievedMobileTicket(
204
+ ticket_number, date(2023, 1, 20), date(2023, 1, 18)
205
+ ).run()
206
+ self.assertEqual(
207
+ error.message,
208
+ "Ticket {} not ready to be updated with SIM received data".format(
209
+ ticket_number
210
+ ),
211
+ )
@@ -0,0 +1,59 @@
1
+ import unittest
2
+
3
+ from mock import ANY, Mock, call, patch
4
+
5
+ from otrs_somconnexio.services.set_SIM_returned_mobile_ticket import (
6
+ SetSIMReturnedMobileTicket,
7
+ )
8
+
9
+
10
+ @patch("otrs_somconnexio.services.set_SIM_returned_mobile_ticket.DynamicField")
11
+ @patch("otrs_somconnexio.services.set_SIM_returned_mobile_ticket.SIMReturnedArticle")
12
+ @patch("otrs_somconnexio.services.base_get_ticket_by_number.OTRSClient")
13
+ class SetSIMReturnedMobileTicketTestCase(unittest.TestCase):
14
+ def setUp(self):
15
+ self.mock_otrs_client = Mock(
16
+ spec=[
17
+ "update_ticket",
18
+ "get_ticket_by_number",
19
+ ]
20
+ )
21
+
22
+ def test_run(self, MockOTRSClient, MockSIMReturnedArticle, MockDF):
23
+ ticket_number = "123"
24
+ MockOTRSClient.return_value = self.mock_otrs_client
25
+ MockOTRSClient.return_value.get_ticket_by_number.return_value = Mock(
26
+ spec=["tid"]
27
+ )
28
+
29
+ SetSIMReturnedMobileTicket(ticket_number).run()
30
+
31
+ MockOTRSClient.return_value.get_ticket_by_number.assert_called_once_with(
32
+ ticket_number,
33
+ dynamic_fields=True,
34
+ )
35
+ MockDF.assert_has_calls(
36
+ [
37
+ call(
38
+ name="referenciaCorreus",
39
+ value="",
40
+ ),
41
+ call(
42
+ name="SIMrebuda",
43
+ value=0,
44
+ ),
45
+ ]
46
+ )
47
+ MockOTRSClient.return_value.update_ticket.assert_has_calls(
48
+ [
49
+ call(
50
+ MockOTRSClient.return_value.get_ticket_by_number.return_value.tid,
51
+ article=None,
52
+ dynamic_fields=[ANY, ANY],
53
+ ),
54
+ call(
55
+ MockOTRSClient.return_value.get_ticket_by_number.return_value.tid,
56
+ article=MockSIMReturnedArticle.return_value.call.return_value,
57
+ ),
58
+ ]
59
+ )
@@ -0,0 +1,47 @@
1
+ import unittest
2
+
3
+ from mock import Mock, patch
4
+
5
+ from otrs_somconnexio.services.set_fiber_contract_code_mobile_ticket import (
6
+ SetFiberContractCodeMobileTicket,
7
+ )
8
+
9
+
10
+ class SetFiberContractCodeMobileTicketTestCase(unittest.TestCase):
11
+ @patch(
12
+ "otrs_somconnexio.services.base_get_ticket_by_number.OTRSClient",
13
+ return_value=Mock(
14
+ spec=[
15
+ "update_ticket",
16
+ "get_ticket_by_number",
17
+ ]
18
+ ),
19
+ )
20
+ @patch(
21
+ "otrs_somconnexio.services.set_fiber_contract_code_mobile_ticket.DynamicField"
22
+ )
23
+ def test_run(self, MockDF, MockOTRSClient):
24
+ ticket_number = "123"
25
+ fiber_contract_code = "22"
26
+ expected_df = object()
27
+ MockDF.return_value = expected_df
28
+ MockOTRSClient.return_value.get_ticket_by_number.return_value = Mock(
29
+ spec=["tid"]
30
+ )
31
+ MockOTRSClient.return_value.get_ticket_by_number.return_value.tid = 321
32
+
33
+ SetFiberContractCodeMobileTicket(ticket_number, fiber_contract_code).run()
34
+
35
+ MockOTRSClient.return_value.get_ticket_by_number.assert_called_once_with(
36
+ ticket_number,
37
+ dynamic_fields=True,
38
+ )
39
+ MockOTRSClient.return_value.update_ticket.assert_called_once_with(
40
+ MockOTRSClient.return_value.get_ticket_by_number.return_value.tid,
41
+ article=None,
42
+ dynamic_fields=[expected_df],
43
+ )
44
+ MockDF.assert_called_once_with(
45
+ name="OdooContractRefRelacionat",
46
+ value=fiber_contract_code,
47
+ )
@@ -0,0 +1,224 @@
1
+ import unittest
2
+
3
+ from mock import ANY, Mock, call, patch
4
+
5
+ from otrs_somconnexio.services.unblock_mobile_pack_ticket import UnblockMobilePackTicket
6
+
7
+
8
+ class UnblockMobilePackTicketTestCase(unittest.TestCase):
9
+ @patch(
10
+ "otrs_somconnexio.services.base_get_ticket_by_number.OTRSClient",
11
+ return_value=Mock(
12
+ spec=[
13
+ "update_ticket",
14
+ "get_ticket_by_number",
15
+ ]
16
+ ),
17
+ )
18
+ @patch("otrs_somconnexio.services.unblock_mobile_pack_ticket.DynamicField")
19
+ def test_run(self, MockDF, MockOTRSClient):
20
+ ticket_number = "123"
21
+ MockOTRSClient.return_value.get_ticket_by_number.return_value = Mock(
22
+ spec=["tid", "dynamic_field_get"]
23
+ )
24
+ MockOTRSClient.return_value.get_ticket_by_number.return_value.tid = 321
25
+ MockOTRSClient.return_value.get_ticket_by_number.return_value.dynamic_field_get.return_value = Mock(
26
+ spec="value"
27
+ )
28
+ MockOTRSClient.return_value.get_ticket_by_number.return_value.dynamic_field_get.return_value.value = (
29
+ 0
30
+ )
31
+
32
+ UnblockMobilePackTicket(
33
+ ticket_number, activation_date="2022-11-11", introduced_date="2022-11-09"
34
+ ).run()
35
+
36
+ MockOTRSClient.return_value.get_ticket_by_number.assert_called_once_with(
37
+ ticket_number,
38
+ dynamic_fields=True,
39
+ )
40
+ MockOTRSClient.return_value.update_ticket.assert_called_once_with(
41
+ MockOTRSClient.return_value.get_ticket_by_number.return_value.tid,
42
+ article=None,
43
+ dynamic_fields=[ANY, ANY],
44
+ )
45
+ MockDF.assert_has_calls(
46
+ [
47
+ call(
48
+ name="recuperarProvisio",
49
+ value=1,
50
+ ),
51
+ call(
52
+ name="enviarNotificacio",
53
+ value=0,
54
+ ),
55
+ ],
56
+ any_order=True,
57
+ )
58
+
59
+ @patch(
60
+ "otrs_somconnexio.services.base_get_ticket_by_number.OTRSClient",
61
+ return_value=Mock(
62
+ spec=[
63
+ "update_ticket",
64
+ "get_ticket_by_number",
65
+ ]
66
+ ),
67
+ )
68
+ @patch("otrs_somconnexio.services.unblock_mobile_pack_ticket.DynamicField")
69
+ def test_SIMrebuda(self, MockDF, MockOTRSClient):
70
+ ticket_number = "123"
71
+ expected_df = object()
72
+ MockDF.return_value = expected_df
73
+ MockOTRSClient.return_value.get_ticket_by_number.return_value = Mock(
74
+ spec=["tid", "dynamic_field_get"]
75
+ )
76
+ MockOTRSClient.return_value.get_ticket_by_number.return_value.tid = 321
77
+
78
+ def dynamic_field_get_side_effect(key):
79
+ return_value = Mock(spec="value")
80
+ return_value.value = 0
81
+ if key == "SIMrebuda":
82
+ return_value.value = 1
83
+ return return_value
84
+
85
+ MockOTRSClient.return_value.get_ticket_by_number.return_value.dynamic_field_get.side_effect = (
86
+ dynamic_field_get_side_effect
87
+ )
88
+
89
+ UnblockMobilePackTicket(
90
+ ticket_number, activation_date="2022-11-11", introduced_date="2022-11-09"
91
+ ).run()
92
+
93
+ MockOTRSClient.return_value.get_ticket_by_number.assert_called_once_with(
94
+ ticket_number,
95
+ dynamic_fields=True,
96
+ )
97
+
98
+ MockOTRSClient.return_value.update_ticket.assert_called_once_with(
99
+ MockOTRSClient.return_value.get_ticket_by_number.return_value.tid,
100
+ article=None,
101
+ dynamic_fields=[ANY, ANY, ANY, ANY],
102
+ )
103
+ MockDF.assert_has_calls(
104
+ [
105
+ call(
106
+ name="recuperarProvisio",
107
+ value=1,
108
+ ),
109
+ call(
110
+ name="dataActivacioLiniaMobil",
111
+ value="2022-11-11",
112
+ ),
113
+ call(
114
+ name="dataIntroPlataforma",
115
+ value="2022-11-09",
116
+ ),
117
+ ANY,
118
+ ],
119
+ any_order=True,
120
+ )
121
+
122
+ @patch(
123
+ "otrs_somconnexio.services.base_get_ticket_by_number.OTRSClient",
124
+ return_value=Mock(
125
+ spec=[
126
+ "update_ticket",
127
+ "get_ticket_by_number",
128
+ ]
129
+ ),
130
+ )
131
+ @patch("otrs_somconnexio.services.unblock_mobile_pack_ticket.DynamicField")
132
+ def test_dates_already_set_not_overwrite(self, MockDF, MockOTRSClient):
133
+ ticket_number = "123"
134
+ expected_df = object()
135
+ MockDF.return_value = expected_df
136
+ MockOTRSClient.return_value.get_ticket_by_number.return_value = Mock(
137
+ spec=["tid", "dynamic_field_get"]
138
+ )
139
+ MockOTRSClient.return_value.get_ticket_by_number.return_value.tid = 321
140
+
141
+ def dynamic_field_get_side_effect(key):
142
+ return_value = Mock(spec="value")
143
+ return_value.value = 0
144
+ if key == "dataIntroPlataforma" or key == "dataActivacioLiniaMobil":
145
+ return_value.value = 1
146
+ return return_value
147
+
148
+ MockOTRSClient.return_value.get_ticket_by_number.return_value.dynamic_field_get.side_effect = (
149
+ dynamic_field_get_side_effect
150
+ )
151
+
152
+ UnblockMobilePackTicket(
153
+ ticket_number, activation_date="2022-11-11", introduced_date="2022-11-09"
154
+ ).run()
155
+
156
+ MockOTRSClient.return_value.get_ticket_by_number.assert_called_once_with(
157
+ ticket_number,
158
+ dynamic_fields=True,
159
+ )
160
+
161
+ MockOTRSClient.return_value.update_ticket.assert_not_called()
162
+
163
+ @patch(
164
+ "otrs_somconnexio.services.base_get_ticket_by_number.OTRSClient",
165
+ return_value=Mock(
166
+ spec=[
167
+ "update_ticket",
168
+ "get_ticket_by_number",
169
+ ]
170
+ ),
171
+ )
172
+ @patch("otrs_somconnexio.services.unblock_mobile_pack_ticket.DynamicField")
173
+ def test_only_one_date_already_set_overwrite(self, MockDF, MockOTRSClient):
174
+ ticket_number = "123"
175
+ expected_df = object()
176
+ MockDF.return_value = expected_df
177
+ MockOTRSClient.return_value.get_ticket_by_number.return_value = Mock(
178
+ spec=["tid", "dynamic_field_get"]
179
+ )
180
+ MockOTRSClient.return_value.get_ticket_by_number.return_value.tid = 321
181
+
182
+ def dynamic_field_get_side_effect(key):
183
+ return_value = Mock(spec="value")
184
+ return_value.value = 0
185
+ if key == "dataIntroPlataforma" or key == "SIMrebuda":
186
+ return_value.value = 1
187
+ return return_value
188
+
189
+ MockOTRSClient.return_value.get_ticket_by_number.return_value.dynamic_field_get.side_effect = (
190
+ dynamic_field_get_side_effect
191
+ )
192
+
193
+ UnblockMobilePackTicket(
194
+ ticket_number, activation_date="2022-11-11", introduced_date="2022-11-09"
195
+ ).run()
196
+
197
+ MockOTRSClient.return_value.get_ticket_by_number.assert_called_once_with(
198
+ ticket_number,
199
+ dynamic_fields=True,
200
+ )
201
+
202
+ MockOTRSClient.return_value.update_ticket.assert_called_once_with(
203
+ MockOTRSClient.return_value.get_ticket_by_number.return_value.tid,
204
+ article=None,
205
+ dynamic_fields=[ANY, ANY, ANY, ANY],
206
+ )
207
+ MockDF.assert_has_calls(
208
+ [
209
+ call(
210
+ name="recuperarProvisio",
211
+ value=1,
212
+ ),
213
+ call(
214
+ name="dataActivacioLiniaMobil",
215
+ value="2022-11-11",
216
+ ),
217
+ call(
218
+ name="dataIntroPlataforma",
219
+ value="2022-11-09",
220
+ ),
221
+ ANY,
222
+ ],
223
+ any_order=True,
224
+ )
@@ -2,25 +2,27 @@ import unittest
2
2
 
3
3
  from mock import Mock, patch
4
4
 
5
- from otrs_somconnexio.services.update_process_ticket_with_VF_provisioning import UpdateProcessTicketWithVfProvisioning
5
+ from otrs_somconnexio.services.update_process_ticket_with_VF_provisioning import (
6
+ UpdateProcessTicketWithVfProvisioning,
7
+ )
6
8
 
7
9
 
8
10
  class UpdateProcessTicketWithVfProvisioningTestCase(unittest.TestCase):
9
-
10
- @patch('otrs_somconnexio.services.update_process_ticket_with_VF_provisioning.OTRSClient', return_value=Mock(spec=['update_ticket']),
11
- )
12
- @patch('otrs_somconnexio.services.update_process_ticket_with_VF_provisioning.VfProvisioningArticle')
11
+ @patch(
12
+ "otrs_somconnexio.services.update_process_ticket_with_VF_provisioning.OTRSClient",
13
+ return_value=Mock(spec=["update_ticket"]),
14
+ )
15
+ @patch(
16
+ "otrs_somconnexio.services.update_process_ticket_with_VF_provisioning.VfProvisioningArticle"
17
+ )
13
18
  def test_run(self, MockVfProvisioningArticle, MockOTRSClient):
14
19
 
15
- ticket_id = '2019070900000151'
20
+ ticket_id = "2019070900000151"
16
21
  provisioning = {
17
- ticket_id: {
18
- 'opportunity_id': '1-2HNXG6I',
19
- 'offer': '961447541'
20
- }
22
+ ticket_id: {"opportunity_id": "1-2HNXG6I", "offer": "961447541"}
21
23
  }
22
-
23
- mock_provisioning_article = Mock(spec=['call'])
24
+
25
+ mock_provisioning_article = Mock(spec=["call"])
24
26
  provisioning_article = object()
25
27
 
26
28
  def mock_provisioning_article_side_effect(provisioning_ticket):
@@ -33,6 +35,5 @@ class UpdateProcessTicketWithVfProvisioningTestCase(unittest.TestCase):
33
35
  UpdateProcessTicketWithVfProvisioning(ticket_id, provisioning[ticket_id]).run()
34
36
 
35
37
  MockOTRSClient.return_value.update_ticket.assert_called_once_with(
36
- ticket_id,
37
- provisioning_article
38
+ ticket_id, provisioning_article
38
39
  )
@@ -2,31 +2,43 @@
2
2
  import unittest
3
3
  from mock import Mock, patch
4
4
 
5
- from otrs_somconnexio.services.update_process_ticket_with_coverage_tickets_info_service import \
6
- UpdateProcessTicketWithCoverageTicketsInfoService
5
+ from otrs_somconnexio.services.update_process_ticket_with_coverage_tickets_info_service import (
6
+ UpdateProcessTicketWithCoverageTicketsInfoService,
7
+ )
7
8
 
8
9
 
9
10
  class UpdateProcessTicketWithCoverageTicketsInfoServiceTestCase(unittest.TestCase):
10
- @patch('otrs_somconnexio.services.update_process_ticket_with_coverage_tickets_info_service.OTRSClient',
11
- return_value=Mock(spec=['update_ticket']),
12
- )
13
- @patch('otrs_somconnexio.services.update_process_ticket_with_coverage_tickets_info_service.CoverageArticle')
11
+ @patch(
12
+ "otrs_somconnexio.services.update_process_ticket_with_coverage_tickets_info_service.OTRSClient",
13
+ return_value=Mock(spec=["update_ticket", "search_coverage_tickets_by_email"]),
14
+ )
15
+ @patch(
16
+ "otrs_somconnexio.services.update_process_ticket_with_coverage_tickets_info_service.CoverageArticle"
17
+ )
14
18
  def test_run(self, MockCoverageArticle, MockOTRSClient):
15
19
  coverage_article = object()
16
20
  expected_coverage_ticket = object()
17
21
  coverage_tickets = [expected_coverage_ticket]
22
+ email = "email@email.com"
18
23
 
19
24
  def mock_coverage_article_side_effect(ticket):
20
25
  if ticket == expected_coverage_ticket:
21
- mock_coverage_article = Mock(spec=['call'])
26
+ mock_coverage_article = Mock(spec=["call"])
22
27
  mock_coverage_article.call.return_value = coverage_article
23
28
  return mock_coverage_article
24
29
 
25
30
  MockCoverageArticle.side_effect = mock_coverage_article_side_effect
26
31
 
27
- UpdateProcessTicketWithCoverageTicketsInfoService(123, coverage_tickets).run()
32
+ def search_coverage_tickets_by_email_side_effect(_email):
33
+ if _email == email:
34
+ return coverage_tickets
35
+
36
+ MockOTRSClient.return_value.search_coverage_tickets_by_email.side_effect = (
37
+ search_coverage_tickets_by_email_side_effect # noqa
38
+ )
39
+
40
+ UpdateProcessTicketWithCoverageTicketsInfoService(123).run(email)
28
41
 
29
42
  MockOTRSClient.return_value.update_ticket.assert_called_once_with(
30
- 123,
31
- coverage_article
43
+ 123, coverage_article
32
44
  )