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,175 @@
1
+ from otrs_somconnexio.otrs_models.configurations.changes.change_tariff_fiber import (
2
+ ChangeTariffTicketFiberConfiguration,
3
+ )
4
+ from otrs_somconnexio.otrs_models.ticket_types.change_tariff_fiber_ticket import (
5
+ ChangeTariffTicketFiber,
6
+ )
7
+
8
+ username = "7456787G"
9
+ customer_code = "1234"
10
+
11
+
12
+ class TestCaseChangeTariffFiberTicket:
13
+ def test_create(self, mocker):
14
+ OTRSClientMock = mocker.patch(
15
+ "otrs_somconnexio.otrs_models.ticket_types.base_ticket.OTRSClient",
16
+ return_value=mocker.Mock(),
17
+ )
18
+ TicketMock = mocker.patch(
19
+ "otrs_somconnexio.otrs_models.ticket_types.base_ticket.Ticket",
20
+ return_value=mocker.Mock(),
21
+ )
22
+ ArticleMock = mocker.patch(
23
+ "otrs_somconnexio.otrs_models.ticket_types.base_ticket.Article",
24
+ return_value=mocker.Mock(),
25
+ )
26
+ DynamicFieldMock = mocker.patch(
27
+ "otrs_somconnexio.otrs_models.ticket_types.base_ticket.DynamicField",
28
+ return_value=mocker.Mock(),
29
+ )
30
+
31
+ expected_ticket_data = {
32
+ "Title": ChangeTariffTicketFiberConfiguration.subject,
33
+ "QueueID": ChangeTariffTicketFiberConfiguration.queue_id,
34
+ "State": ChangeTariffTicketFiber._get_state(self),
35
+ "Type": ChangeTariffTicketFiber._get_type(self),
36
+ "Priority": ChangeTariffTicketFiber._get_priority(self),
37
+ "CustomerUser": customer_code,
38
+ "CustomerID": customer_code,
39
+ "Service": False,
40
+ }
41
+ expected_article_data = {
42
+ "Subject": ChangeTariffTicketFiberConfiguration.subject,
43
+ "Body": "-",
44
+ }
45
+
46
+ fields_dict = {
47
+ "ref_contract": "1256",
48
+ "landline_number": "969999999",
49
+ "service_address": "Carrer",
50
+ "service_city": "Ciutat",
51
+ "service_zip": "ZIPCODE",
52
+ "service_state": "State",
53
+ "effective_date": "1931-04-14",
54
+ "previous_service": ChangeTariffTicketFiberConfiguration.code_fiber_100_landline,
55
+ }
56
+
57
+ ChangeTariffTicketFiber(
58
+ username,
59
+ customer_code,
60
+ fields_dict,
61
+ ).create()
62
+
63
+ TicketMock.assert_called_once_with(expected_ticket_data)
64
+ ArticleMock.assert_called_once_with(expected_article_data)
65
+ calls = [
66
+ mocker.call(
67
+ "ProcessManagementProcessID",
68
+ ChangeTariffTicketFiberConfiguration.process_id,
69
+ ),
70
+ mocker.call(
71
+ "ProcessManagementActivityID",
72
+ ChangeTariffTicketFiberConfiguration.activity_id,
73
+ ),
74
+ mocker.call("refOdooContract", "1256"),
75
+ mocker.call("telefonFixVell", "969999999"),
76
+ mocker.call("direccioServei", "Carrer"),
77
+ mocker.call("poblacioServei", "Ciutat"),
78
+ mocker.call("CPservei", "ZIPCODE"),
79
+ mocker.call("provinciaServei", "State"),
80
+ mocker.call("serveiPrevi", "Fibra"),
81
+ mocker.call(
82
+ "productBA", ChangeTariffTicketFiberConfiguration.code_fiber_100
83
+ ),
84
+ mocker.call("dataExecucioCanviTarifa", "1931-04-14"),
85
+ mocker.call("TecDelServei", "Fibra"),
86
+ ]
87
+ DynamicFieldMock.assert_has_calls(calls)
88
+ OTRSClientMock.return_value.create_otrs_process_ticket.assert_called_once_with( # noqa
89
+ TicketMock.return_value,
90
+ article=ArticleMock.return_value,
91
+ dynamic_fields=[mocker.ANY for call in calls],
92
+ attachments=None,
93
+ )
94
+
95
+ def test_create_300(self, mocker):
96
+ OTRSClientMock = mocker.patch(
97
+ "otrs_somconnexio.otrs_models.ticket_types.base_ticket.OTRSClient",
98
+ return_value=mocker.Mock(),
99
+ )
100
+ TicketMock = mocker.patch(
101
+ "otrs_somconnexio.otrs_models.ticket_types.base_ticket.Ticket",
102
+ return_value=mocker.Mock(),
103
+ )
104
+ ArticleMock = mocker.patch(
105
+ "otrs_somconnexio.otrs_models.ticket_types.base_ticket.Article",
106
+ return_value=mocker.Mock(),
107
+ )
108
+ DynamicFieldMock = mocker.patch(
109
+ "otrs_somconnexio.otrs_models.ticket_types.base_ticket.DynamicField",
110
+ return_value=mocker.Mock(),
111
+ )
112
+
113
+ expected_ticket_data = {
114
+ "Title": ChangeTariffTicketFiberConfiguration.subject,
115
+ "QueueID": ChangeTariffTicketFiberConfiguration.queue_id,
116
+ "State": ChangeTariffTicketFiber._get_state(self),
117
+ "Type": ChangeTariffTicketFiber._get_type(self),
118
+ "Priority": ChangeTariffTicketFiber._get_priority(self),
119
+ "CustomerUser": customer_code,
120
+ "CustomerID": customer_code,
121
+ "Service": False,
122
+ }
123
+ expected_article_data = {
124
+ "Subject": ChangeTariffTicketFiberConfiguration.subject,
125
+ "Body": "-",
126
+ }
127
+
128
+ fields_dict = {
129
+ "ref_contract": "1256",
130
+ "landline_number": "969999999",
131
+ "service_address": "Carrer",
132
+ "service_city": "Ciutat",
133
+ "service_zip": "ZIPCODE",
134
+ "service_state": "State",
135
+ "effective_date": "1931-04-14",
136
+ "previous_service": "other_service",
137
+ }
138
+
139
+ ChangeTariffTicketFiber(
140
+ username,
141
+ customer_code,
142
+ fields_dict,
143
+ ).create()
144
+
145
+ TicketMock.assert_called_once_with(expected_ticket_data)
146
+ ArticleMock.assert_called_once_with(expected_article_data)
147
+ calls = [
148
+ mocker.call(
149
+ "ProcessManagementProcessID",
150
+ ChangeTariffTicketFiberConfiguration.process_id,
151
+ ),
152
+ mocker.call(
153
+ "ProcessManagementActivityID",
154
+ ChangeTariffTicketFiberConfiguration.activity_id,
155
+ ),
156
+ mocker.call("refOdooContract", "1256"),
157
+ mocker.call("telefonFixVell", "969999999"),
158
+ mocker.call("direccioServei", "Carrer"),
159
+ mocker.call("poblacioServei", "Ciutat"),
160
+ mocker.call("CPservei", "ZIPCODE"),
161
+ mocker.call("provinciaServei", "State"),
162
+ mocker.call("serveiPrevi", "Fibra"),
163
+ mocker.call(
164
+ "productBA", ChangeTariffTicketFiberConfiguration.code_fiber_300
165
+ ),
166
+ mocker.call("dataExecucioCanviTarifa", "1931-04-14"),
167
+ mocker.call("TecDelServei", "Fibra"),
168
+ ]
169
+ DynamicFieldMock.assert_has_calls(calls)
170
+ OTRSClientMock.return_value.create_otrs_process_ticket.assert_called_once_with( # noqa
171
+ TicketMock.return_value,
172
+ article=ArticleMock.return_value,
173
+ dynamic_fields=[mocker.ANY for call in calls],
174
+ attachments=None,
175
+ )
@@ -0,0 +1,151 @@
1
+ from otrs_somconnexio.otrs_models.ticket_types.change_tariff_ticket import (
2
+ ChangeTariffMobilePackTicket,
3
+ )
4
+ from otrs_somconnexio.otrs_models.ticket_types.change_tariff_ticket_mobile_pack import (
5
+ ChangeTariffTicketMobilePack,
6
+ )
7
+
8
+
9
+ class TestCaseChangeTariffTicketMobilePack:
10
+ def test_create(self, mocker):
11
+ username = "7456787G"
12
+ customer_code = "1234"
13
+ ticket_creator_id = "1"
14
+ ticket_id = "2"
15
+
16
+ OTRSClientMock = mocker.patch(
17
+ "otrs_somconnexio.otrs_models.ticket_types.change_tariff_ticket_mobile_pack.OTRSClient",
18
+ return_value=mocker.Mock(),
19
+ )
20
+
21
+ ticket_mock = mocker.Mock(spec=["create"])
22
+ ticket_mock.create.return_value = mocker.Mock(spec=["id"])
23
+ ticket_mock.create.return_value.id = ticket_id
24
+ ticket_creator_mock = mocker.Mock(spec=["create"])
25
+ ticket_creator_mock.create.return_value = mocker.Mock(spec=["id"])
26
+ ticket_creator_mock.create.return_value.id = ticket_creator_id
27
+
28
+ def side_effect(uname, customer_c, fields, override):
29
+ if fields.get("pack_creator"):
30
+ return ticket_creator_mock
31
+ else:
32
+ return ticket_mock
33
+
34
+ ChangeTariffMobilePackTicketMock = mocker.patch(
35
+ "otrs_somconnexio.otrs_models.ticket_types.change_tariff_ticket_mobile_pack.ChangeTariffMobilePackTicket",
36
+ side_effect=side_effect,
37
+ )
38
+
39
+ fields_dict = {
40
+ "contracts": [
41
+ {
42
+ "phone_number": "666666666",
43
+ "current_product_code": "CURRENT_PRODUCT_CODE",
44
+ "subscription_email": "fakeemail@email.coop",
45
+ },
46
+ {
47
+ "phone_number": "777777777",
48
+ "current_product_code": "CURRENT_PRODUCT_CODE",
49
+ "subscription_email": "fakeemail@email.coop",
50
+ },
51
+ ],
52
+ "phone_number": "666666666",
53
+ "new_product_code": "NEW_PRODUCT_CODE",
54
+ "effective_date": "tomorrow",
55
+ "fiber_linked": "28",
56
+ "language": "ca_ES",
57
+ "send_notification": True,
58
+ }
59
+
60
+ ChangeTariffTicketMobilePack(username, customer_code, fields_dict).create()
61
+
62
+ assert ChangeTariffMobilePackTicketMock.call_count == 2
63
+ ticket_mock.create.assert_called_once_with()
64
+ ticket_creator_mock.create.assert_called_once_with()
65
+ OTRSClientMock.return_value.link_tickets.assert_called_once_with(
66
+ ticket_creator_id,
67
+ ticket_id,
68
+ link_type="ParentChild",
69
+ )
70
+
71
+ def test_update(self, mocker):
72
+ username = "7456787G"
73
+ customer_code = "1234"
74
+ ticket_id = "2"
75
+ article = "article"
76
+ dynamic_fields = "dynamic_fields"
77
+ state = "state"
78
+ ChangeTariffMobilePackTicketMock = mocker.patch(
79
+ "otrs_somconnexio.otrs_models.ticket_types.change_tariff_ticket_mobile_pack.ChangeTariffMobilePackTicket",
80
+ return_value=mocker.Mock(spec=["update"]),
81
+ )
82
+ ChangeTariffTicketMobilePack(username, customer_code, {}).update(
83
+ ticket_id, article, dynamic_fields, state
84
+ )
85
+
86
+ ChangeTariffMobilePackTicketMock.assert_called_once_with(
87
+ username, customer_code, {}
88
+ )
89
+ ChangeTariffMobilePackTicketMock.return_value.update.assert_called_once_with(
90
+ ticket_id, article, dynamic_fields, state
91
+ )
92
+
93
+
94
+ class TestCaseChangeTariffMobilePackTicket:
95
+ def test_create(self, mocker):
96
+ username = "7456787G"
97
+ customer_code = "1234"
98
+ fields_dict = {
99
+ "phone_number": "777777777",
100
+ "current_product_code": "CURRENT_PRODUCT_CODE",
101
+ "subscription_email": "fakeemail@email.coop",
102
+ "new_product_code": "NEW_PRODUCT_CODE",
103
+ "effective_date": "tomorrow",
104
+ "fiber_linked": "28",
105
+ "language": "ca_ES",
106
+ "send_notification": True,
107
+ "pack_creator": True,
108
+ }
109
+
110
+ ticket_mock = mocker.Mock(spec=["id"])
111
+ ticket_mock.id = "11223344"
112
+ OTRSClientMock = mocker.patch(
113
+ "otrs_somconnexio.otrs_models.ticket_types.base_ticket.OTRSClient",
114
+ return_value=mocker.Mock(),
115
+ )
116
+ OTRSClientMock.return_value.create_otrs_process_ticket.return_value = (
117
+ ticket_mock
118
+ )
119
+ DynamicFieldMock = mocker.patch(
120
+ "otrs_somconnexio.otrs_models.ticket_types.base_ticket.DynamicField",
121
+ )
122
+
123
+ ticket = ChangeTariffMobilePackTicket(
124
+ username, customer_code, fields_dict
125
+ ).create()
126
+
127
+ assert ticket.id == ticket_mock.id
128
+ OTRSClientMock.return_value.create_otrs_process_ticket.assert_called_once_with(
129
+ mocker.ANY,
130
+ article=mocker.ANY,
131
+ dynamic_fields=[
132
+ mocker.ANY,
133
+ mocker.ANY,
134
+ mocker.ANY,
135
+ mocker.ANY,
136
+ mocker.ANY,
137
+ mocker.ANY,
138
+ mocker.ANY,
139
+ mocker.ANY,
140
+ mocker.ANY,
141
+ mocker.ANY,
142
+ mocker.ANY,
143
+ mocker.ANY,
144
+ mocker.ANY,
145
+ ],
146
+ attachments=None,
147
+ )
148
+ DynamicFieldMock.assert_called_with(
149
+ "creadorAbonament",
150
+ True,
151
+ )
@@ -0,0 +1,65 @@
1
+ from otrs_somconnexio.otrs_models.ticket_types.change_tariff_ticket import (
2
+ ChangeTariffSharedBondTicket,
3
+ )
4
+
5
+
6
+ class TestCaseChangeTariffSharedBondTicket:
7
+ def test_create(self, mocker):
8
+ username = "7456787G"
9
+ customer_code = "1234"
10
+ fields_dict = {
11
+ "phone_number": "777777777",
12
+ "current_product_code": "CURRENT_PRODUCT_CODE",
13
+ "subscription_email": "fakeemail@email.coop",
14
+ "new_product_code": "NEW_PRODUCT_CODE",
15
+ "effective_date": "tomorrow",
16
+ "fiber_linked": "28",
17
+ "language": "ca_ES",
18
+ "send_notification": True,
19
+ "pack_creator": True,
20
+ "shared_bond_id": "123456",
21
+ }
22
+
23
+ ticket_mock = mocker.Mock(spec=["id"])
24
+ ticket_mock.id = "11223344"
25
+ OTRSClientMock = mocker.patch(
26
+ "otrs_somconnexio.otrs_models.ticket_types.base_ticket.OTRSClient",
27
+ return_value=mocker.Mock(),
28
+ )
29
+ OTRSClientMock.return_value.create_otrs_process_ticket.return_value = (
30
+ ticket_mock
31
+ )
32
+ DynamicFieldMock = mocker.patch(
33
+ "otrs_somconnexio.otrs_models.ticket_types.base_ticket.DynamicField",
34
+ )
35
+
36
+ ticket = ChangeTariffSharedBondTicket(
37
+ username, customer_code, fields_dict
38
+ ).create()
39
+
40
+ assert ticket.id == ticket_mock.id
41
+ OTRSClientMock.return_value.create_otrs_process_ticket.assert_called_once_with(
42
+ mocker.ANY,
43
+ article=mocker.ANY,
44
+ dynamic_fields=[
45
+ mocker.ANY,
46
+ mocker.ANY,
47
+ mocker.ANY,
48
+ mocker.ANY,
49
+ mocker.ANY,
50
+ mocker.ANY,
51
+ mocker.ANY,
52
+ mocker.ANY,
53
+ mocker.ANY,
54
+ mocker.ANY,
55
+ mocker.ANY,
56
+ mocker.ANY,
57
+ mocker.ANY,
58
+ mocker.ANY,
59
+ ],
60
+ attachments=None,
61
+ )
62
+ DynamicFieldMock.assert_called_with(
63
+ "IDAbonamentCompartit",
64
+ fields_dict["shared_bond_id"],
65
+ )
@@ -0,0 +1,106 @@
1
+ from otrs_somconnexio.otrs_models.configurations.querys.check_coverage import (
2
+ CheckCoverageCATConfiguration,
3
+ CheckCoverageESConfiguration,
4
+ )
5
+ from otrs_somconnexio.otrs_models.ticket_types.check_coverage_ticket import (
6
+ CheckCoverageTicket,
7
+ )
8
+
9
+
10
+ class TestCaseCheckCoverage:
11
+ fields_dict = {
12
+ "name": "name",
13
+ "surnames": "sunames",
14
+ "email": "som@com.com",
15
+ "phone": "642525377",
16
+ "contact_lang": "ca_ES",
17
+ "road_type": "carrer",
18
+ "road_name": "melancolia",
19
+ "road_number": "6",
20
+ "block": "A",
21
+ "doorway": "B",
22
+ "floor": "3",
23
+ "scale": "A",
24
+ "door": "10",
25
+ "other_information": "Altra info",
26
+ "locality": "Alcobendas",
27
+ "state": "Wisconsin",
28
+ "zip_code": "46870",
29
+ "language": "ca_ES",
30
+ }
31
+
32
+ def test_create_CAT(self, mocker):
33
+ self._execute_and_assert_create(mocker, CheckCoverageCATConfiguration)
34
+
35
+ def test_create_ES(self, mocker):
36
+ self.fields_dict["language"] = "es_ES"
37
+ self._execute_and_assert_create(mocker, CheckCoverageESConfiguration)
38
+
39
+ def _execute_and_assert_create(self, mocker, config):
40
+ OTRSClientMock = mocker.patch(
41
+ "otrs_somconnexio.otrs_models.ticket_types.base_ticket.OTRSClient",
42
+ return_value=mocker.Mock(),
43
+ )
44
+ TicketMock = mocker.patch(
45
+ "otrs_somconnexio.otrs_models.ticket_types.base_ticket.Ticket",
46
+ return_value=mocker.Mock(),
47
+ )
48
+ DynamicFieldMock = mocker.patch(
49
+ "otrs_somconnexio.otrs_models.ticket_types.base_ticket.DynamicField",
50
+ return_value=mocker.Mock(),
51
+ )
52
+ ArticleMock = mocker.patch(
53
+ "otrs_somconnexio.otrs_models.ticket_types.base_ticket.Article",
54
+ return_value=mocker.Mock(),
55
+ )
56
+
57
+ expected_ticket_data = {
58
+ "Title": config.subject,
59
+ "QueueID": config.queue_id,
60
+ "State": config.state,
61
+ "Type": config.type,
62
+ "Priority": config.priority,
63
+ "CustomerUser": "customer",
64
+ "CustomerID": "customer",
65
+ "Service": False,
66
+ }
67
+ expected_article_data = {
68
+ "Subject": config.subject,
69
+ "Body": "-",
70
+ }
71
+ calls = [
72
+ mocker.call("ProcessManagementProcessID", config.process_id),
73
+ mocker.call(
74
+ "ProcessManagementActivityID",
75
+ config.activity_id,
76
+ ),
77
+ mocker.call("nomSoci", self.fields_dict["name"]),
78
+ mocker.call("cognom1", self.fields_dict["surnames"]),
79
+ mocker.call("correuElectronic", self.fields_dict["email"]),
80
+ mocker.call("telefonContacte", self.fields_dict["phone"]),
81
+ mocker.call("idioma", self.fields_dict["contact_lang"]),
82
+ mocker.call("tipusVia", self.fields_dict["road_type"]),
83
+ mocker.call("nomVia", self.fields_dict["road_name"]),
84
+ mocker.call("numero", self.fields_dict["road_number"]),
85
+ mocker.call("bloc", self.fields_dict["block"]),
86
+ mocker.call("portal", self.fields_dict["doorway"]),
87
+ mocker.call("pis", self.fields_dict["floor"]),
88
+ mocker.call("escala", self.fields_dict["scale"]),
89
+ mocker.call("porta", self.fields_dict["door"]),
90
+ mocker.call("altresCobertura", self.fields_dict["other_information"]),
91
+ mocker.call("poblacioServei", self.fields_dict["locality"]),
92
+ mocker.call("provinciaServei", self.fields_dict["state"]),
93
+ mocker.call("CPservei", self.fields_dict["zip_code"]),
94
+ ]
95
+
96
+ CheckCoverageTicket(None, "customer", self.fields_dict, [], "").create()
97
+
98
+ TicketMock.assert_called_once_with(expected_ticket_data)
99
+ ArticleMock.assert_called_once_with(expected_article_data)
100
+ DynamicFieldMock.assert_has_calls(calls)
101
+ OTRSClientMock.return_value.create_otrs_process_ticket.assert_called_once_with(
102
+ TicketMock.return_value,
103
+ article=ArticleMock.return_value,
104
+ dynamic_fields=[mocker.ANY for call in calls],
105
+ attachments=None,
106
+ )
@@ -0,0 +1,80 @@
1
+ from otrs_somconnexio.otrs_models.ticket_types.change_shared_bond_ticket import (
2
+ ChangeSharedBondTicket,
3
+ )
4
+ from otrs_somconnexio.otrs_models.configurations.changes.change_shared_bond import (
5
+ ChangeSharedBondTicketConfiguration,
6
+ )
7
+
8
+
9
+ class TestCaseChangeSharedBondTicket:
10
+ def test_create(self, mocker):
11
+ username = "7456787G"
12
+ customer_code = "1234"
13
+ configuration = ChangeSharedBondTicketConfiguration
14
+
15
+ expected_ticket_data = {
16
+ "Title": "Sol·licitud Canvi d'abonament compartit oficina virtual",
17
+ "QueueID": configuration.queue_id,
18
+ "State": configuration.state,
19
+ "Type": configuration.type,
20
+ "Priority": configuration.priority,
21
+ "CustomerUser": customer_code,
22
+ "CustomerID": customer_code,
23
+ "Service": False,
24
+ }
25
+ expected_article_data = {
26
+ "Subject": "Sol·licitud Canvi d'abonament compartit oficina virtual",
27
+ "Body": "-",
28
+ }
29
+
30
+ fields_dict = {
31
+ "phone_number": "666666666",
32
+ "new_product_code": "BBBBBB",
33
+ "new_shared_bond": "AAAA",
34
+ "fiber_linked": "27722",
35
+ }
36
+
37
+ OTRSClientMock = mocker.patch(
38
+ "otrs_somconnexio.otrs_models.ticket_types.base_ticket.OTRSClient",
39
+ return_value=mocker.Mock(),
40
+ )
41
+ OTRSClientMock.return_value.create_otrs_process_ticket.return_value = (
42
+ mocker.Mock(spec=["id"])
43
+ )
44
+ OTRSClientMock.return_value.create_otrs_process_ticket.return_value.id = "1"
45
+
46
+ TicketMock = mocker.patch(
47
+ "otrs_somconnexio.otrs_models.ticket_types.base_ticket.Ticket",
48
+ return_value=mocker.Mock(),
49
+ )
50
+ ArticleMock = mocker.patch(
51
+ "otrs_somconnexio.otrs_models.ticket_types.base_ticket.Article",
52
+ return_value=mocker.Mock(),
53
+ )
54
+ DynamicFieldMock = mocker.patch(
55
+ "otrs_somconnexio.otrs_models.ticket_types.base_ticket.DynamicField",
56
+ return_value=mocker.Mock(),
57
+ )
58
+
59
+ ticket = ChangeSharedBondTicket(username, customer_code, fields_dict).create()
60
+
61
+ TicketMock.assert_called_once_with(expected_ticket_data)
62
+ ArticleMock.assert_called_once_with(expected_article_data)
63
+ calls = [
64
+ mocker.call("ProcessManagementProcessID", configuration.process_id),
65
+ mocker.call("ProcessManagementActivityID", configuration.activity_id),
66
+ mocker.call("liniaMobil", fields_dict["phone_number"]),
67
+ mocker.call("productMobil", fields_dict["new_product_code"]),
68
+ mocker.call("IDAbonamentCompartit", fields_dict["new_shared_bond"]),
69
+ mocker.call("OdooContractRefRelacionat", fields_dict["fiber_linked"]),
70
+ mocker.call("TecDelServei", "Mobil"),
71
+ ]
72
+
73
+ DynamicFieldMock.assert_has_calls(calls)
74
+ OTRSClientMock.return_value.create_otrs_process_ticket.assert_called_once_with( # noqa
75
+ TicketMock.return_value,
76
+ article=ArticleMock.return_value,
77
+ dynamic_fields=[mocker.ANY for call in calls],
78
+ attachments=None,
79
+ )
80
+ assert ticket.id == "1"
@@ -0,0 +1,108 @@
1
+ from otrs_somconnexio.otrs_models.configurations.querys.we_call_you import (
2
+ WeCallYouCATConfiguration,
3
+ WeCallYouCompanyCATConfiguration,
4
+ WeCallYouCompanyESConfiguration,
5
+ WeCallYouESConfiguration,
6
+ )
7
+ from otrs_somconnexio.otrs_models.ticket_types.we_call_you_ticket import WeCallYouTicket
8
+
9
+
10
+ class TestCaseWeCallYou:
11
+ fields_dict = {
12
+ "name": "name surname",
13
+ "schedule": "12h-14h",
14
+ "phone": "642 525 377",
15
+ "reason": "call me baby",
16
+ "language": "ca_ES",
17
+ "is_company": False,
18
+ "referral": "referral",
19
+ "email": "email.coop",
20
+ }
21
+
22
+ def test_create_CAT(self, mocker):
23
+ self._execute_and_assert_create(
24
+ mocker, WeCallYouCATConfiguration, self.fields_dict
25
+ )
26
+
27
+ def test_create_ES(self, mocker):
28
+ dict = {**self.fields_dict}
29
+ dict["language"] = "es_ES"
30
+ self._execute_and_assert_create(mocker, WeCallYouESConfiguration, dict)
31
+
32
+ def test_create_company_CAT(self, mocker):
33
+ dict = {**self.fields_dict}
34
+ dict["is_company"] = True
35
+ dict["company_size"] = "1"
36
+ self._execute_and_assert_create(
37
+ mocker, WeCallYouCompanyCATConfiguration, dict, True
38
+ )
39
+
40
+ def test_create_company_ES(self, mocker):
41
+ dict = {**self.fields_dict}
42
+ dict["language"] = "es_ES"
43
+ dict["is_company"] = True
44
+ dict["company_size"] = "1"
45
+ self._execute_and_assert_create(
46
+ mocker, WeCallYouCompanyESConfiguration, dict, True
47
+ )
48
+
49
+ def _execute_and_assert_create(self, mocker, config, dict, is_company=False):
50
+ OTRSClientMock = mocker.patch(
51
+ "otrs_somconnexio.otrs_models.ticket_types.base_ticket.OTRSClient",
52
+ return_value=mocker.Mock(),
53
+ )
54
+ TicketMock = mocker.patch(
55
+ "otrs_somconnexio.otrs_models.ticket_types.base_ticket.Ticket",
56
+ return_value=mocker.Mock(),
57
+ )
58
+ DynamicFieldMock = mocker.patch(
59
+ "otrs_somconnexio.otrs_models.ticket_types.base_ticket.DynamicField",
60
+ return_value=mocker.Mock(),
61
+ )
62
+ ArticleMock = mocker.patch(
63
+ "otrs_somconnexio.otrs_models.ticket_types.base_ticket.Article",
64
+ return_value=mocker.Mock(),
65
+ )
66
+
67
+ expected_ticket_data = {
68
+ "Title": config.subject,
69
+ "QueueID": config.queue_id,
70
+ "State": config.state,
71
+ "Type": config.type,
72
+ "Priority": config.priority,
73
+ "CustomerUser": "customer",
74
+ "CustomerID": "customer",
75
+ "Service": False,
76
+ }
77
+ expected_article_data = {
78
+ "Subject": config.subject,
79
+ "Body": "-",
80
+ }
81
+ calls = [
82
+ mocker.call("ProcessManagementProcessID", config.process_id),
83
+ mocker.call(
84
+ "ProcessManagementActivityID",
85
+ config.activity_id,
86
+ ),
87
+ mocker.call("personaContacte", dict["name"]),
88
+ mocker.call("horariTrucada", dict["schedule"]),
89
+ mocker.call("telefonContacte", "642525377"),
90
+ mocker.call("motiuTrucada", dict["reason"]),
91
+ mocker.call("referral", dict["referral"]),
92
+ mocker.call("rgpd", "1"),
93
+ mocker.call("nouEmail", dict["email"]),
94
+ ]
95
+ if is_company:
96
+ calls.append(mocker.call("midaEmpresa", dict["company_size"]))
97
+
98
+ WeCallYouTicket(None, "customer", dict, [], "").create()
99
+
100
+ TicketMock.assert_called_once_with(expected_ticket_data)
101
+ ArticleMock.assert_called_once_with(expected_article_data)
102
+ DynamicFieldMock.assert_has_calls(calls)
103
+ OTRSClientMock.return_value.create_otrs_process_ticket.assert_called_once_with(
104
+ TicketMock.return_value,
105
+ article=ArticleMock.return_value,
106
+ dynamic_fields=[mocker.ANY for call in calls],
107
+ attachments=None,
108
+ )