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,435 @@
1
+ from otrs_somconnexio.otrs_models.ticket_types.change_tariff_ticket import (
2
+ ChangeTariffTicket,
3
+ ChangeTariffExceptionalTicket,
4
+ ChangeTariffMobilePackTicket,
5
+ ChangeTariffSharedBondTicket,
6
+ )
7
+ from otrs_somconnexio.otrs_models.configurations.changes.change_tariff import (
8
+ ChangeTariffTicketConfiguration,
9
+ ChangeTariffExceptionalTicketConfiguration,
10
+ ChangeTariffSharedBondTicketConfiguration,
11
+ )
12
+
13
+
14
+ class TestCaseChangeTariffTicket:
15
+ def test_create(self, mocker):
16
+ username = "7456787G"
17
+ customer_code = "1234"
18
+
19
+ OTRSClientMock = mocker.patch(
20
+ "otrs_somconnexio.otrs_models.ticket_types.base_ticket.OTRSClient",
21
+ return_value=mocker.Mock(),
22
+ )
23
+ OTRSClientMock.return_value.create_otrs_process_ticket.return_value = (
24
+ mocker.Mock(spec=["id"])
25
+ )
26
+ OTRSClientMock.return_value.create_otrs_process_ticket.return_value.id = "1"
27
+
28
+ TicketMock = mocker.patch(
29
+ "otrs_somconnexio.otrs_models.ticket_types.base_ticket.Ticket",
30
+ return_value=mocker.Mock(),
31
+ )
32
+ ArticleMock = mocker.patch(
33
+ "otrs_somconnexio.otrs_models.ticket_types.base_ticket.Article",
34
+ return_value=mocker.Mock(),
35
+ )
36
+ DynamicFieldMock = mocker.patch(
37
+ "otrs_somconnexio.otrs_models.ticket_types.base_ticket.DynamicField",
38
+ return_value=mocker.Mock(),
39
+ )
40
+
41
+ expected_ticket_data = {
42
+ "Title": "Sol·licitud Canvi de tarifa oficina virtual",
43
+ "QueueID": ChangeTariffTicketConfiguration.queue_id,
44
+ "State": ChangeTariffTicketConfiguration.state,
45
+ "Type": ChangeTariffTicketConfiguration.type,
46
+ "Priority": ChangeTariffTicketConfiguration.priority,
47
+ "CustomerUser": customer_code,
48
+ "CustomerID": customer_code,
49
+ "Service": False,
50
+ }
51
+ expected_article_data = {
52
+ "Subject": "Sol·licitud Canvi de tarifa oficina virtual",
53
+ "Body": "-",
54
+ }
55
+
56
+ fields_dict = {
57
+ "phone_number": "666666666",
58
+ "new_product_code": "NEW_PRODUCT_CODE",
59
+ "current_product_code": "CURRENT_PRODUCT_CODE",
60
+ "effective_date": "tomorrow",
61
+ "fiber_linked": "",
62
+ "subscription_email": "fakeemail@email.coop",
63
+ "language": "ca_ES",
64
+ "send_notification": False,
65
+ }
66
+
67
+ ticket = ChangeTariffTicket(username, customer_code, fields_dict).create()
68
+
69
+ TicketMock.assert_called_once_with(expected_ticket_data)
70
+ ArticleMock.assert_called_once_with(expected_article_data)
71
+ calls = [
72
+ mocker.call(
73
+ "ProcessManagementProcessID", ChangeTariffTicketConfiguration.process_id
74
+ ),
75
+ mocker.call(
76
+ "ProcessManagementActivityID",
77
+ ChangeTariffTicketConfiguration.activity_id,
78
+ ),
79
+ mocker.call("renovaCanviTarifa", "0"),
80
+ mocker.call("liniaMobil", "666666666"),
81
+ mocker.call("productMobil", "NEW_PRODUCT_CODE"),
82
+ mocker.call("tarifaAntiga", "CURRENT_PRODUCT_CODE"),
83
+ mocker.call("dataExecucioCanviTarifa", "tomorrow"),
84
+ mocker.call("correuElectronic", "fakeemail@email.coop"),
85
+ mocker.call("idioma", "ca_ES"),
86
+ mocker.call("enviarNotificacio", "0"),
87
+ mocker.call("TecDelServei", "Mobil"),
88
+ ]
89
+ DynamicFieldMock.assert_has_calls(calls)
90
+ OTRSClientMock.return_value.create_otrs_process_ticket.assert_called_once_with( # noqa
91
+ TicketMock.return_value,
92
+ article=ArticleMock.return_value,
93
+ dynamic_fields=[mocker.ANY for call in calls],
94
+ attachments=None,
95
+ )
96
+ assert ticket.id == "1"
97
+
98
+ def test_create_with_override_tickets(self, mocker):
99
+ username = "7456787G"
100
+ customer_code = "1234"
101
+
102
+ OTRSClientMock = mocker.patch(
103
+ "otrs_somconnexio.otrs_models.ticket_types.base_ticket.OTRSClient",
104
+ return_value=mocker.Mock(),
105
+ )
106
+ TicketMock = mocker.patch(
107
+ "otrs_somconnexio.otrs_models.ticket_types.base_ticket.Ticket",
108
+ return_value=mocker.Mock(),
109
+ )
110
+ ArticleMock = mocker.patch(
111
+ "otrs_somconnexio.otrs_models.ticket_types.base_ticket.Article",
112
+ return_value=mocker.Mock(),
113
+ )
114
+ DynamicFieldMock = mocker.patch(
115
+ "otrs_somconnexio.otrs_models.ticket_types.base_ticket.DynamicField",
116
+ return_value=mocker.Mock(),
117
+ )
118
+
119
+ expected_ticket_data = {
120
+ "Title": "Sol·licitud Canvi de tarifa oficina virtual",
121
+ "QueueID": ChangeTariffTicketConfiguration.queue_id,
122
+ "State": ChangeTariffTicketConfiguration.state,
123
+ "Type": ChangeTariffTicketConfiguration.type,
124
+ "Priority": ChangeTariffTicketConfiguration.priority,
125
+ "CustomerUser": customer_code,
126
+ "CustomerID": customer_code,
127
+ "Service": False,
128
+ }
129
+ expected_article_data = {
130
+ "Subject": "Sol·licitud Canvi de tarifa oficina virtual",
131
+ "Body": "-",
132
+ }
133
+
134
+ fields_dict = {
135
+ "phone_number": "666666666",
136
+ "new_product_code": "NEW_PRODUCT_CODE",
137
+ "current_product_code": "CURRENT_PRODUCT_CODE",
138
+ "effective_date": "tomorrow",
139
+ "fiber_linked": "",
140
+ "subscription_email": "fakeemail@email.coop",
141
+ "language": "es_ES",
142
+ }
143
+
144
+ ChangeTariffTicket(
145
+ username, customer_code, fields_dict, override_ticket_ids=[1, 2]
146
+ ).create()
147
+
148
+ TicketMock.assert_called_once_with(expected_ticket_data)
149
+ ArticleMock.assert_called_once_with(expected_article_data)
150
+ calls = [
151
+ mocker.call(
152
+ "ProcessManagementProcessID", ChangeTariffTicketConfiguration.process_id
153
+ ),
154
+ mocker.call(
155
+ "ProcessManagementActivityID",
156
+ ChangeTariffTicketConfiguration.activity_id,
157
+ ),
158
+ mocker.call("renovaCanviTarifa", "1"),
159
+ mocker.call("liniaMobil", "666666666"),
160
+ mocker.call("productMobil", "NEW_PRODUCT_CODE"),
161
+ mocker.call("tarifaAntiga", "CURRENT_PRODUCT_CODE"),
162
+ mocker.call("dataExecucioCanviTarifa", "tomorrow"),
163
+ mocker.call("correuElectronic", "fakeemail@email.coop"),
164
+ mocker.call("idioma", "es_ES"),
165
+ mocker.call("enviarNotificacio", "1"),
166
+ mocker.call("TecDelServei", "Mobil"),
167
+ ]
168
+ DynamicFieldMock.assert_has_calls(calls)
169
+ OTRSClientMock.return_value.create_otrs_process_ticket.assert_called_once_with( # noqa
170
+ TicketMock.return_value,
171
+ article=ArticleMock.return_value,
172
+ dynamic_fields=[mocker.ANY for call in calls],
173
+ attachments=None,
174
+ )
175
+
176
+
177
+ class TestCaseChangeTariffExceptionalTicket:
178
+ def test_create(self, mocker):
179
+ username = "7456787G"
180
+ customer_code = "1234"
181
+
182
+ OTRSClientMock = mocker.patch(
183
+ "otrs_somconnexio.otrs_models.ticket_types.base_ticket.OTRSClient",
184
+ return_value=mocker.Mock(),
185
+ )
186
+ TicketMock = mocker.patch(
187
+ "otrs_somconnexio.otrs_models.ticket_types.base_ticket.Ticket",
188
+ return_value=mocker.Mock(),
189
+ )
190
+ ArticleMock = mocker.patch(
191
+ "otrs_somconnexio.otrs_models.ticket_types.base_ticket.Article",
192
+ return_value=mocker.Mock(),
193
+ )
194
+ DynamicFieldMock = mocker.patch(
195
+ "otrs_somconnexio.otrs_models.ticket_types.base_ticket.DynamicField",
196
+ return_value=mocker.Mock(),
197
+ )
198
+
199
+ expected_ticket_data = {
200
+ "Title": "Sol·licitud Canvi de tarifa excepcional",
201
+ "QueueID": ChangeTariffExceptionalTicketConfiguration.queue_id,
202
+ "State": ChangeTariffExceptionalTicketConfiguration.state,
203
+ "Type": ChangeTariffExceptionalTicketConfiguration.type,
204
+ "Priority": ChangeTariffExceptionalTicketConfiguration.priority,
205
+ "CustomerUser": customer_code,
206
+ "CustomerID": customer_code,
207
+ "Service": False,
208
+ }
209
+ expected_article_data = {
210
+ "Subject": "Sol·licitud Canvi de tarifa excepcional",
211
+ "Body": "-",
212
+ }
213
+
214
+ fields_dict = {
215
+ "phone_number": "666666666",
216
+ "new_product_code": "NEW_PRODUCT_CODE",
217
+ "current_product_code": "CURRENT_PRODUCT_CODE",
218
+ "effective_date": "tomorrow",
219
+ "fiber_linked": "28",
220
+ "subscription_email": "fakeemail@email.coop",
221
+ "language": "ca_ES",
222
+ "send_notification": True,
223
+ }
224
+
225
+ ChangeTariffExceptionalTicket(username, customer_code, fields_dict).create()
226
+
227
+ TicketMock.assert_called_once_with(expected_ticket_data)
228
+ ArticleMock.assert_called_once_with(expected_article_data)
229
+ calls = [
230
+ mocker.call(
231
+ "ProcessManagementProcessID",
232
+ ChangeTariffExceptionalTicketConfiguration.process_id,
233
+ ),
234
+ mocker.call(
235
+ "ProcessManagementActivityID",
236
+ ChangeTariffExceptionalTicketConfiguration.activity_id,
237
+ ),
238
+ mocker.call("renovaCanviTarifa", "0"),
239
+ mocker.call("liniaMobil", "666666666"),
240
+ mocker.call("productMobil", "NEW_PRODUCT_CODE"),
241
+ mocker.call("tarifaAntiga", "CURRENT_PRODUCT_CODE"),
242
+ mocker.call("dataExecucioCanviTarifa", "tomorrow"),
243
+ mocker.call("OdooContractRefRelacionat", "28"),
244
+ mocker.call("correuElectronic", "fakeemail@email.coop"),
245
+ mocker.call("idioma", "ca_ES"),
246
+ mocker.call("enviarNotificacio", "1"),
247
+ mocker.call("TecDelServei", "Mobil"),
248
+ ]
249
+ DynamicFieldMock.assert_has_calls(calls)
250
+ OTRSClientMock.return_value.create_otrs_process_ticket.assert_called_once_with( # noqa
251
+ TicketMock.return_value,
252
+ article=ArticleMock.return_value,
253
+ dynamic_fields=[mocker.ANY for call in calls],
254
+ attachments=None,
255
+ )
256
+
257
+
258
+ class TestCaseChangeTariffMobilePackTicket:
259
+ def test_create(self, mocker):
260
+ username = "7456787G"
261
+ customer_code = "1234"
262
+
263
+ OTRSClientMock = mocker.patch(
264
+ "otrs_somconnexio.otrs_models.ticket_types.base_ticket.OTRSClient",
265
+ return_value=mocker.Mock(),
266
+ )
267
+ OTRSClientMock.return_value.create_otrs_process_ticket.return_value = (
268
+ mocker.Mock(spec=["id"])
269
+ )
270
+ OTRSClientMock.return_value.create_otrs_process_ticket.return_value.id = "1"
271
+
272
+ TicketMock = mocker.patch(
273
+ "otrs_somconnexio.otrs_models.ticket_types.base_ticket.Ticket",
274
+ return_value=mocker.Mock(),
275
+ )
276
+ ArticleMock = mocker.patch(
277
+ "otrs_somconnexio.otrs_models.ticket_types.base_ticket.Article",
278
+ return_value=mocker.Mock(),
279
+ )
280
+ DynamicFieldMock = mocker.patch(
281
+ "otrs_somconnexio.otrs_models.ticket_types.base_ticket.DynamicField",
282
+ return_value=mocker.Mock(),
283
+ )
284
+
285
+ expected_ticket_data = {
286
+ "Title": "Sol·licitud canvi de tarifa pack apinyades",
287
+ "QueueID": ChangeTariffTicketConfiguration.queue_id,
288
+ "State": ChangeTariffTicketConfiguration.state,
289
+ "Type": ChangeTariffTicketConfiguration.type,
290
+ "Priority": ChangeTariffTicketConfiguration.priority,
291
+ "CustomerUser": customer_code,
292
+ "CustomerID": customer_code,
293
+ "Service": False,
294
+ }
295
+ expected_article_data = {
296
+ "Subject": "Sol·licitud canvi de tarifa pack apinyades",
297
+ "Body": "-",
298
+ }
299
+
300
+ fields_dict = {
301
+ "phone_number": "666666666",
302
+ "new_product_code": "NEW_PRODUCT_CODE",
303
+ "current_product_code": "CURRENT_PRODUCT_CODE",
304
+ "effective_date": "tomorrow",
305
+ "fiber_linked": "",
306
+ "subscription_email": "fakeemail@email.coop",
307
+ "language": "ca_ES",
308
+ "send_notification": False,
309
+ }
310
+
311
+ ticket = ChangeTariffMobilePackTicket(
312
+ username, customer_code, fields_dict
313
+ ).create()
314
+
315
+ TicketMock.assert_called_once_with(expected_ticket_data)
316
+ ArticleMock.assert_called_once_with(expected_article_data)
317
+ calls = [
318
+ mocker.call(
319
+ "ProcessManagementProcessID",
320
+ ChangeTariffTicketConfiguration.process_id,
321
+ ),
322
+ mocker.call(
323
+ "ProcessManagementActivityID",
324
+ ChangeTariffTicketConfiguration.activity_id,
325
+ ),
326
+ mocker.call("renovaCanviTarifa", "0"),
327
+ mocker.call("liniaMobil", "666666666"),
328
+ mocker.call("productMobil", "NEW_PRODUCT_CODE"),
329
+ mocker.call("tarifaAntiga", "CURRENT_PRODUCT_CODE"),
330
+ mocker.call("dataExecucioCanviTarifa", "tomorrow"),
331
+ mocker.call("correuElectronic", "fakeemail@email.coop"),
332
+ mocker.call("idioma", "ca_ES"),
333
+ mocker.call("enviarNotificacio", "0"),
334
+ mocker.call("TecDelServei", "Mobil"),
335
+ ]
336
+
337
+ DynamicFieldMock.assert_has_calls(calls)
338
+ OTRSClientMock.return_value.create_otrs_process_ticket.assert_called_once_with( # noqa
339
+ TicketMock.return_value,
340
+ article=ArticleMock.return_value,
341
+ dynamic_fields=[mocker.ANY for call in calls],
342
+ attachments=None,
343
+ )
344
+ assert ticket.id == "1"
345
+
346
+
347
+ class TestCaseChangeTariffSharedBondTicket:
348
+ def test_create_with_shared_bond_id(self, mocker):
349
+ username = "7456787G"
350
+ customer_code = "1234"
351
+
352
+ OTRSClientMock = mocker.patch(
353
+ "otrs_somconnexio.otrs_models.ticket_types.base_ticket.OTRSClient",
354
+ return_value=mocker.Mock(),
355
+ )
356
+ OTRSClientMock.return_value.create_otrs_process_ticket.return_value = (
357
+ mocker.Mock(spec=["id"])
358
+ )
359
+ OTRSClientMock.return_value.create_otrs_process_ticket.return_value.id = "1"
360
+
361
+ TicketMock = mocker.patch(
362
+ "otrs_somconnexio.otrs_models.ticket_types.base_ticket.Ticket",
363
+ return_value=mocker.Mock(),
364
+ )
365
+ ArticleMock = mocker.patch(
366
+ "otrs_somconnexio.otrs_models.ticket_types.base_ticket.Article",
367
+ return_value=mocker.Mock(),
368
+ )
369
+ DynamicFieldMock = mocker.patch(
370
+ "otrs_somconnexio.otrs_models.ticket_types.base_ticket.DynamicField",
371
+ return_value=mocker.Mock(),
372
+ )
373
+
374
+ expected_ticket_data = {
375
+ "Title": "Sol·licitud canvi de tarifa pack amb dades compartides",
376
+ "QueueID": ChangeTariffSharedBondTicketConfiguration.queue_id,
377
+ "State": ChangeTariffSharedBondTicketConfiguration.state,
378
+ "Type": ChangeTariffSharedBondTicketConfiguration.type,
379
+ "Priority": ChangeTariffSharedBondTicketConfiguration.priority,
380
+ "CustomerUser": customer_code,
381
+ "CustomerID": customer_code,
382
+ "Service": False,
383
+ }
384
+ expected_article_data = {
385
+ "Subject": "Sol·licitud canvi de tarifa pack amb dades compartides",
386
+ "Body": "-",
387
+ }
388
+
389
+ fields_dict = {
390
+ "phone_number": "666666666",
391
+ "new_product_code": "NEW_PRODUCT_CODE",
392
+ "current_product_code": "CURRENT_PRODUCT_CODE",
393
+ "effective_date": "tomorrow",
394
+ "fiber_linked": "",
395
+ "subscription_email": "fakeemail@email.coop",
396
+ "language": "ca_ES",
397
+ "send_notification": False,
398
+ "shared_bond_id": "C03457456M",
399
+ }
400
+
401
+ ticket = ChangeTariffSharedBondTicket(
402
+ username, customer_code, fields_dict
403
+ ).create()
404
+
405
+ TicketMock.assert_called_once_with(expected_ticket_data)
406
+ ArticleMock.assert_called_once_with(expected_article_data)
407
+ calls = [
408
+ mocker.call(
409
+ "ProcessManagementProcessID",
410
+ ChangeTariffSharedBondTicketConfiguration.process_id,
411
+ ),
412
+ mocker.call(
413
+ "ProcessManagementActivityID",
414
+ ChangeTariffSharedBondTicketConfiguration.activity_id,
415
+ ),
416
+ mocker.call("renovaCanviTarifa", "0"),
417
+ mocker.call("liniaMobil", "666666666"),
418
+ mocker.call("productMobil", "NEW_PRODUCT_CODE"),
419
+ mocker.call("tarifaAntiga", "CURRENT_PRODUCT_CODE"),
420
+ mocker.call("dataExecucioCanviTarifa", "tomorrow"),
421
+ mocker.call("correuElectronic", "fakeemail@email.coop"),
422
+ mocker.call("idioma", "ca_ES"),
423
+ mocker.call("enviarNotificacio", "0"),
424
+ mocker.call("TecDelServei", "Mobil"),
425
+ mocker.call("IDAbonamentCompartit", "C03457456M"),
426
+ ]
427
+
428
+ DynamicFieldMock.assert_has_calls(calls)
429
+ OTRSClientMock.return_value.create_otrs_process_ticket.assert_called_once_with( # noqa
430
+ TicketMock.return_value,
431
+ article=ArticleMock.return_value,
432
+ dynamic_fields=[mocker.ANY for call in calls],
433
+ attachments=None,
434
+ )
435
+ assert ticket.id == "1"
@@ -0,0 +1,115 @@
1
+ from otrs_somconnexio.otrs_models.configurations.changes.change_tariff_adsl import (
2
+ ChangeTariffTicketAdslLandlineConfig,
3
+ )
4
+ from otrs_somconnexio.otrs_models.ticket_types.change_tariff_adsl_landline_ticket import (
5
+ ChangeTariffLandLineADSL,
6
+ )
7
+
8
+
9
+ username = "7456787G"
10
+ customer_code = "1234"
11
+
12
+
13
+ class TestCaseChangeTariffAdslLandlineTicket:
14
+ def test_create(self, mocker):
15
+ OTRSClientMock = mocker.patch(
16
+ "otrs_somconnexio.otrs_models.ticket_types.base_ticket.OTRSClient",
17
+ return_value=mocker.Mock(),
18
+ )
19
+ TicketMock = mocker.patch(
20
+ "otrs_somconnexio.otrs_models.ticket_types.base_ticket.Ticket",
21
+ return_value=mocker.Mock(),
22
+ )
23
+ ArticleMock = mocker.patch(
24
+ "otrs_somconnexio.otrs_models.ticket_types.base_ticket.Article",
25
+ return_value=mocker.Mock(),
26
+ )
27
+ DynamicFieldMock = mocker.patch(
28
+ "otrs_somconnexio.otrs_models.ticket_types.base_ticket.DynamicField",
29
+ return_value=mocker.Mock(),
30
+ )
31
+
32
+ expected_ticket_data = {
33
+ "Title": ChangeTariffTicketAdslLandlineConfig.subject,
34
+ "QueueID": ChangeTariffTicketAdslLandlineConfig.queue_id,
35
+ "State": ChangeTariffLandLineADSL._get_state(self),
36
+ "Type": ChangeTariffLandLineADSL._get_type(self),
37
+ "Priority": ChangeTariffLandLineADSL._get_priority(self),
38
+ "CustomerUser": customer_code,
39
+ "CustomerID": customer_code,
40
+ "Service": False,
41
+ }
42
+ expected_article_data = {
43
+ "Subject": ChangeTariffTicketAdslLandlineConfig.subject,
44
+ "Body": "-",
45
+ }
46
+
47
+ fields_dict = {
48
+ "ref_contract": "1256",
49
+ "landline_number": "969999999",
50
+ "service_address": "Carrer",
51
+ "service_city": "Ciutat",
52
+ "service_zip": "ZIPCODE",
53
+ "service_state": "State",
54
+ "name": "Name",
55
+ "sur_name": "Surname",
56
+ "last_name": "Lastname",
57
+ "complete_name": "CompleteName",
58
+ "vat_number": "VAT",
59
+ "iban": "IBAN",
60
+ "customer_email": "customerEmail",
61
+ "service_state_code": "stateCode",
62
+ "customer_phone": "969999992",
63
+ "is_fiber_landline": True,
64
+ "previous_technology": "ADSL",
65
+ }
66
+
67
+ ChangeTariffLandLineADSL(
68
+ username,
69
+ customer_code,
70
+ fields_dict,
71
+ ).create()
72
+
73
+ TicketMock.assert_called_once_with(expected_ticket_data)
74
+ ArticleMock.assert_called_once_with(expected_article_data)
75
+ calls = [
76
+ mocker.call(
77
+ "ProcessManagementProcessID",
78
+ ChangeTariffTicketAdslLandlineConfig.process_id,
79
+ ),
80
+ mocker.call(
81
+ "ProcessManagementActivityID",
82
+ ChangeTariffTicketAdslLandlineConfig.activity_id,
83
+ ),
84
+ mocker.call("refOdooContract", "1256"),
85
+ mocker.call("telefonFixVell", "969999999"),
86
+ mocker.call("direccioServei", "Carrer"),
87
+ mocker.call("poblacioServei", "Ciutat"),
88
+ mocker.call("CPservei", "ZIPCODE"),
89
+ mocker.call("provinciaServei", "State"),
90
+ mocker.call("serveiPrevi", "ADSL"),
91
+ mocker.call("productBA", ChangeTariffTicketAdslLandlineConfig.code_fiber),
92
+ mocker.call("nomSoci", "Name"),
93
+ mocker.call("titular", "Name"),
94
+ mocker.call("cognom1", "Surname Lastname"),
95
+ mocker.call("cognom1Titular", "Surname Lastname"),
96
+ mocker.call("nomCognomSociAntic", "CompleteName"),
97
+ mocker.call("NIFNIESoci", "VAT"),
98
+ mocker.call("NIFNIEtitular", "VAT"),
99
+ mocker.call("IBAN", "IBAN"),
100
+ mocker.call("telefonFixAntic", "969999999"),
101
+ mocker.call("IDContracte", "-"),
102
+ mocker.call("correuElectronic", "customerEmail"),
103
+ mocker.call("direccioServeiAntic", "Carrer - ZIPCODE Ciutat State"),
104
+ mocker.call("codiProvinciaServei", "stateCode"),
105
+ mocker.call("telefonContacte", "969999992"),
106
+ mocker.call("canviUbicacioMateixTitular", "yes"),
107
+ mocker.call("TecDelServei", "ADSL"),
108
+ ]
109
+ DynamicFieldMock.assert_has_calls(calls)
110
+ OTRSClientMock.return_value.create_otrs_process_ticket.assert_called_once_with( # noqa
111
+ TicketMock.return_value,
112
+ article=ArticleMock.return_value,
113
+ dynamic_fields=[mocker.ANY for call in calls],
114
+ attachments=None,
115
+ )
@@ -0,0 +1,115 @@
1
+ from otrs_somconnexio.otrs_models.configurations.changes.change_tariff_adsl import (
2
+ ChangeTariffTicketAdslOutLandlineConfig,
3
+ )
4
+ from otrs_somconnexio.otrs_models.ticket_types.change_tariff_adsl_out_landline_ticket import (
5
+ ChangeTariffOutLandLineADSL,
6
+ )
7
+
8
+
9
+ username = "7456787G"
10
+ customer_code = "1234"
11
+
12
+
13
+ class TestCaseChangeTariffAdslOutLandlineTicket:
14
+ def test_create(self, mocker):
15
+ OTRSClientMock = mocker.patch(
16
+ "otrs_somconnexio.otrs_models.ticket_types.base_ticket.OTRSClient",
17
+ return_value=mocker.Mock(),
18
+ )
19
+ TicketMock = mocker.patch(
20
+ "otrs_somconnexio.otrs_models.ticket_types.base_ticket.Ticket",
21
+ return_value=mocker.Mock(),
22
+ )
23
+ ArticleMock = mocker.patch(
24
+ "otrs_somconnexio.otrs_models.ticket_types.base_ticket.Article",
25
+ return_value=mocker.Mock(),
26
+ )
27
+ DynamicFieldMock = mocker.patch(
28
+ "otrs_somconnexio.otrs_models.ticket_types.base_ticket.DynamicField",
29
+ return_value=mocker.Mock(),
30
+ )
31
+
32
+ expected_ticket_data = {
33
+ "Title": ChangeTariffTicketAdslOutLandlineConfig.subject,
34
+ "QueueID": ChangeTariffTicketAdslOutLandlineConfig.queue_id,
35
+ "State": ChangeTariffOutLandLineADSL._get_state(self),
36
+ "Type": ChangeTariffOutLandLineADSL._get_type(self),
37
+ "Priority": ChangeTariffOutLandLineADSL._get_priority(self),
38
+ "CustomerUser": customer_code,
39
+ "CustomerID": customer_code,
40
+ "Service": False,
41
+ }
42
+ expected_article_data = {
43
+ "Subject": ChangeTariffTicketAdslOutLandlineConfig.subject,
44
+ "Body": "-",
45
+ }
46
+
47
+ fields_dict = {
48
+ "ref_contract": "1256",
49
+ "landline_number": "969999999",
50
+ "service_address": "Carrer",
51
+ "service_city": "Ciutat",
52
+ "service_zip": "ZIPCODE",
53
+ "service_state": "State",
54
+ "name": "Name",
55
+ "sur_name": "Surname",
56
+ "last_name": "Lastname",
57
+ "complete_name": "CompleteName",
58
+ "vat_number": "VAT",
59
+ "iban": "IBAN",
60
+ "customer_email": "customerEmail",
61
+ "service_state_code": "stateCode",
62
+ "customer_phone": "969999992",
63
+ "is_fiber_landline": False,
64
+ "previous_technology": "ADSL",
65
+ }
66
+
67
+ ChangeTariffOutLandLineADSL(
68
+ username,
69
+ customer_code,
70
+ fields_dict,
71
+ ).create()
72
+
73
+ TicketMock.assert_called_once_with(expected_ticket_data)
74
+ ArticleMock.assert_called_once_with(expected_article_data)
75
+ calls = [
76
+ mocker.call(
77
+ "ProcessManagementProcessID",
78
+ ChangeTariffTicketAdslOutLandlineConfig.process_id,
79
+ ),
80
+ mocker.call(
81
+ "ProcessManagementActivityID",
82
+ ChangeTariffTicketAdslOutLandlineConfig.activity_id,
83
+ ),
84
+ mocker.call("refOdooContract", "1256"),
85
+ mocker.call("telefonFixVell", "969999999"),
86
+ mocker.call("direccioServei", "Carrer"),
87
+ mocker.call("poblacioServei", "Ciutat"),
88
+ mocker.call("CPservei", "ZIPCODE"),
89
+ mocker.call("provinciaServei", "State"),
90
+ mocker.call("serveiPrevi", "ADSL"),
91
+ mocker.call("productBA", "SE_SC_REC_BA_F_300_SF"),
92
+ mocker.call("nomSoci", "Name"),
93
+ mocker.call("titular", "Name"),
94
+ mocker.call("cognom1", "Surname Lastname"),
95
+ mocker.call("cognom1Titular", "Surname Lastname"),
96
+ mocker.call("nomCognomSociAntic", "CompleteName"),
97
+ mocker.call("NIFNIESoci", "VAT"),
98
+ mocker.call("NIFNIEtitular", "VAT"),
99
+ mocker.call("IBAN", "IBAN"),
100
+ mocker.call("telefonFixAntic", "969999999"),
101
+ mocker.call("IDContracte", "-"),
102
+ mocker.call("correuElectronic", "customerEmail"),
103
+ mocker.call("direccioServeiAntic", "Carrer - ZIPCODE Ciutat State"),
104
+ mocker.call("codiProvinciaServei", "stateCode"),
105
+ mocker.call("telefonContacte", "969999992"),
106
+ mocker.call("canviUbicacioMateixTitular", "yes"),
107
+ mocker.call("TecDelServei", "ADSL"),
108
+ ]
109
+ DynamicFieldMock.assert_has_calls(calls)
110
+ OTRSClientMock.return_value.create_otrs_process_ticket.assert_called_once_with( # noqa
111
+ TicketMock.return_value,
112
+ article=ArticleMock.return_value,
113
+ dynamic_fields=[mocker.ANY for call in calls],
114
+ attachments=None,
115
+ )