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
@@ -4,150 +4,427 @@ from mock import Mock, patch
4
4
  from otrs_somconnexio.otrs_models.ticket_factory import TicketFactory
5
5
  from otrs_somconnexio.otrs_models.adsl_ticket import ADSLTicket
6
6
  from otrs_somconnexio.otrs_models.fiber_ticket import FiberTicket
7
- from otrs_somconnexio.otrs_models.mobile_ticket import MobileTicket
7
+ from otrs_somconnexio.otrs_models.mobile_ticket import MobileTicket, MobilePausedTicket
8
+ from otrs_somconnexio.otrs_models.router_4G_ticket import Router4GTicket
9
+ from otrs_somconnexio.otrs_models.switchboard_ticket import SwitchboardTicket
8
10
 
9
11
 
10
12
  class TicketFactoryIntegrationTestCase(unittest.TestCase):
13
+ def setUp(self):
14
+ self.customer_data = Mock(
15
+ spec=[
16
+ "id",
17
+ "first_name",
18
+ "name",
19
+ "vat_number",
20
+ "street",
21
+ "city",
22
+ "zip",
23
+ "subdivision",
24
+ "has_active_contracts",
25
+ "language",
26
+ ]
27
+ )
28
+ self.responsible_data = Mock(spec=["email"])
11
29
 
12
- @patch('otrs_somconnexio.otrs_models.provision_ticket.OTRSClient')
30
+ @patch("otrs_somconnexio.otrs_models.provision_ticket.OTRSClient")
13
31
  def test_create_mobile_ticket_factory(self, MockOTRSClient):
14
- mobile_data = Mock(spec=[
15
- 'order_id',
16
- 'type',
17
- 'iban',
18
- 'phone_number',
19
- 'sc_icc',
20
- 'icc',
21
- 'portability',
22
- 'previous_provider',
23
- 'previous_owner_name',
24
- 'previous_owner_surname',
25
- 'previous_owner_vat',
26
- 'product',
27
- ])
28
- customer_data = Mock(spec=[
29
- 'first_name',
30
- 'name',
31
- 'vat_number',
32
- 'email',
33
- 'phone',
34
- 'street',
35
- 'city',
36
- 'zip',
37
- 'subdivision'])
38
-
39
- mobile_data.type = 'mobile'
40
-
41
- otrs_process_ticket = Mock(spec=['id'])
32
+ mobile_data = Mock(
33
+ spec=[
34
+ "order_id",
35
+ "type",
36
+ "iban",
37
+ "email",
38
+ "contact_phone",
39
+ "phone_number",
40
+ "sc_icc",
41
+ "icc",
42
+ "type",
43
+ "previous_provider",
44
+ "previous_owner_name",
45
+ "previous_owner_surname",
46
+ "previous_owner_vat",
47
+ "product",
48
+ "notes",
49
+ "has_sim",
50
+ "sim_delivery_tracking_code",
51
+ "is_grouped_with_fiber",
52
+ "delivery_street",
53
+ "delivery_city",
54
+ "delivery_zip_code",
55
+ "delivery_state",
56
+ "activation_notes",
57
+ "technology",
58
+ "sales_team",
59
+ "is_from_pack",
60
+ "fiber_linked",
61
+ "shared_bond_id",
62
+ "confirmed_documentation",
63
+ ]
64
+ )
65
+
66
+ mobile_data.service_type = "mobile"
67
+
68
+ otrs_process_ticket = Mock(spec=["id"])
42
69
  otrs_process_ticket.id = 234
43
70
 
44
- mock_otrs_client = Mock(spec=['create_otrs_process_ticket'])
71
+ mock_otrs_client = Mock(spec=["create_otrs_process_ticket"])
45
72
  mock_otrs_client.create_otrs_process_ticket.return_value = otrs_process_ticket
46
73
  MockOTRSClient.return_value = mock_otrs_client
47
74
 
48
75
  ticket = TicketFactory(
49
76
  service_data=mobile_data,
50
- customer_data=customer_data
77
+ customer_data=self.customer_data,
78
+ responsible_data=self.responsible_data,
51
79
  ).build()
52
80
  ticket.create()
53
81
 
54
- self.assertEquals(ticket.id, 234)
82
+ self.assertEqual(ticket.id, 234)
55
83
  self.assertIsInstance(ticket, MobileTicket)
56
84
 
57
- @patch('otrs_somconnexio.otrs_models.provision_ticket.OTRSClient')
85
+ @patch("otrs_somconnexio.otrs_models.provision_ticket.OTRSClient")
86
+ def test_create_mobile_portability_paused_ticket_factory(self, MockOTRSClient):
87
+ mobile_data = Mock(
88
+ spec=[
89
+ "order_id",
90
+ "iban",
91
+ "email",
92
+ "contact_phone",
93
+ "phone_number",
94
+ "sc_icc",
95
+ "icc",
96
+ "type",
97
+ "previous_provider",
98
+ "previous_owner_name",
99
+ "previous_owner_surname",
100
+ "previous_owner_vat",
101
+ "product",
102
+ "notes",
103
+ "has_sim",
104
+ "sim_delivery_tracking_code",
105
+ "is_grouped_with_fiber",
106
+ "delivery_street",
107
+ "delivery_city",
108
+ "delivery_zip_code",
109
+ "delivery_state",
110
+ "activation_notes",
111
+ "technology",
112
+ "sales_team",
113
+ "is_from_pack",
114
+ "fiber_linked",
115
+ "shared_bond_id",
116
+ "confirmed_documentation",
117
+ ]
118
+ )
119
+
120
+ mobile_data.service_type = "mobile"
121
+ mobile_data.type = "portability"
122
+ mobile_data.is_grouped_with_fiber = True
123
+
124
+ otrs_process_ticket = Mock(spec=["id"])
125
+ otrs_process_ticket.id = 234
126
+
127
+ mock_otrs_client = Mock(spec=["create_otrs_process_ticket"])
128
+ mock_otrs_client.create_otrs_process_ticket.return_value = otrs_process_ticket
129
+ MockOTRSClient.return_value = mock_otrs_client
130
+
131
+ ticket = TicketFactory(
132
+ service_data=mobile_data,
133
+ customer_data=self.customer_data,
134
+ responsible_data=self.responsible_data,
135
+ ).build()
136
+ ticket.create()
137
+
138
+ self.assertEqual(ticket.id, 234)
139
+ self.assertIsInstance(ticket, MobilePausedTicket)
140
+
141
+ @patch("otrs_somconnexio.otrs_models.provision_ticket.OTRSClient")
142
+ def test_create_mobile_is_from_pack_paused_ticket_factory(self, MockOTRSClient):
143
+ mobile_data = Mock(
144
+ spec=[
145
+ "order_id",
146
+ "iban",
147
+ "email",
148
+ "contact_phone",
149
+ "phone_number",
150
+ "sc_icc",
151
+ "icc",
152
+ "type",
153
+ "previous_provider",
154
+ "previous_owner_name",
155
+ "previous_owner_surname",
156
+ "previous_owner_vat",
157
+ "product",
158
+ "notes",
159
+ "has_sim",
160
+ "sim_delivery_tracking_code",
161
+ "is_grouped_with_fiber",
162
+ "delivery_street",
163
+ "delivery_city",
164
+ "delivery_zip_code",
165
+ "delivery_state",
166
+ "activation_notes",
167
+ "technology",
168
+ "sales_team",
169
+ "is_from_pack",
170
+ "fiber_linked",
171
+ "shared_bond_id",
172
+ "confirmed_documentation",
173
+ ]
174
+ )
175
+
176
+ mobile_data.service_type = "mobile"
177
+ mobile_data.is_grouped_with_fiber = True
178
+ mobile_data.is_from_pack = True
179
+
180
+ otrs_process_ticket = Mock(spec=["id"])
181
+ otrs_process_ticket.id = 234
182
+
183
+ mock_otrs_client = Mock(spec=["create_otrs_process_ticket"])
184
+ mock_otrs_client.create_otrs_process_ticket.return_value = otrs_process_ticket
185
+ MockOTRSClient.return_value = mock_otrs_client
186
+
187
+ ticket = TicketFactory(
188
+ service_data=mobile_data,
189
+ customer_data=self.customer_data,
190
+ responsible_data=self.responsible_data,
191
+ ).build()
192
+ ticket.create()
193
+
194
+ self.assertEqual(ticket.id, 234)
195
+ self.assertIsInstance(ticket, MobilePausedTicket)
196
+
197
+ @patch("otrs_somconnexio.otrs_models.provision_ticket.OTRSClient")
58
198
  def test_create_adsl_ticket_factory(self, MockOTRSClient):
59
- service_data = Mock(spec=[
60
- 'order_id',
61
- 'type',
62
- 'iban',
63
- 'phone_number',
64
- 'previous_provider',
65
- 'previous_owner_name',
66
- 'previous_owner_surname',
67
- 'previous_owner_vat',
68
- 'previous_service',
69
- 'service_address',
70
- 'service_city',
71
- 'service_zip',
72
- 'service_subdivision',
73
- 'shipment_address',
74
- 'shipment_city',
75
- 'shipment_zip',
76
- 'shipment_subdivision',
77
- 'notes',
78
- 'adsl_coverage',
79
- 'mm_fiber_coverage',
80
- 'vdf_fiber_coverage',
81
- 'change_address',
82
- 'landline_phone_number',
83
- 'product',
84
- 'previous_internal_provider',
85
- ])
86
- customer_data = Mock(spec=['first_name', 'name', 'vat_number', 'email', 'phone'])
87
-
88
- service_data.type = 'adsl'
89
-
90
- otrs_process_ticket = Mock(spec=['id'])
199
+ service_data = Mock(
200
+ spec=[
201
+ "order_id",
202
+ "type",
203
+ "iban",
204
+ "email",
205
+ "contact_phone",
206
+ "phone_number",
207
+ "keep_landline",
208
+ "previous_provider",
209
+ "previous_owner_name",
210
+ "previous_owner_surname",
211
+ "previous_owner_vat",
212
+ "previous_service",
213
+ "previous_contract_address",
214
+ "previous_contract_phone",
215
+ "service_address",
216
+ "service_city",
217
+ "service_zip",
218
+ "service_subdivision",
219
+ "service_subdivision_code",
220
+ "shipment_address",
221
+ "shipment_city",
222
+ "shipment_zip",
223
+ "shipment_subdivision",
224
+ "notes",
225
+ "activation_notes",
226
+ "adsl_coverage",
227
+ "mm_fiber_coverage",
228
+ "asociatel_fiber_coverage",
229
+ "orange_fiber_coverage",
230
+ "vdf_fiber_coverage",
231
+ "type",
232
+ "landline_phone_number",
233
+ "product",
234
+ "previous_internal_provider",
235
+ "technology",
236
+ "sales_team",
237
+ "confirmed_documentation",
238
+ ]
239
+ )
240
+
241
+ service_data.service_type = "adsl"
242
+
243
+ otrs_process_ticket = Mock(spec=["id"])
91
244
  otrs_process_ticket.id = 234
92
245
 
93
- mock_otrs_client = Mock(spec=['create_otrs_process_ticket'])
246
+ mock_otrs_client = Mock(spec=["create_otrs_process_ticket"])
94
247
  mock_otrs_client.create_otrs_process_ticket.return_value = otrs_process_ticket
95
248
  MockOTRSClient.return_value = mock_otrs_client
96
249
 
97
250
  ticket = TicketFactory(
98
- service_data,
99
- customer_data
251
+ service_data, self.customer_data, self.responsible_data
100
252
  ).build()
101
253
  ticket.create()
102
254
  ticket.create()
103
255
 
104
256
  self.assertIsInstance(ticket, ADSLTicket)
105
- self.assertEquals(ticket.id, 234)
257
+ self.assertEqual(ticket.id, 234)
106
258
 
107
- @patch('otrs_somconnexio.otrs_models.provision_ticket.OTRSClient')
259
+ @patch("otrs_somconnexio.otrs_models.provision_ticket.OTRSClient")
108
260
  def test_create_fiber_ticket_factory(self, MockOTRSClient):
109
- service_data = Mock(spec=[
110
- 'order_id',
111
- 'type',
112
- 'iban',
113
- 'phone_number',
114
- 'previous_provider',
115
- 'previous_owner_name',
116
- 'previous_owner_surname',
117
- 'previous_owner_vat',
118
- 'previous_service',
119
- 'service_address',
120
- 'service_city',
121
- 'service_zip',
122
- 'service_subdivision',
123
- 'shipment_address',
124
- 'shipment_city',
125
- 'shipment_zip',
126
- 'shipment_subdivision',
127
- 'notes',
128
- 'adsl_coverage',
129
- 'mm_fiber_coverage',
130
- 'vdf_fiber_coverage',
131
- 'change_address',
132
- 'product',
133
- 'previous_internal_provider',
134
- ])
135
- customer_data = Mock(spec=['first_name', 'name', 'vat_number', 'email', 'phone'])
136
-
137
- service_data.type = 'fiber'
138
-
139
- otrs_process_ticket = Mock(spec=['id'])
261
+ service_data = Mock(
262
+ spec=[
263
+ "order_id",
264
+ "previous_contract_pon",
265
+ "previous_contract_fiber_speed",
266
+ "previous_contract_address",
267
+ "previous_contract_phone",
268
+ "type",
269
+ "iban",
270
+ "email",
271
+ "contact_phone",
272
+ "phone_number",
273
+ "keep_landline",
274
+ "previous_provider",
275
+ "previous_owner_name",
276
+ "previous_owner_surname",
277
+ "previous_owner_vat",
278
+ "previous_service",
279
+ "service_address",
280
+ "service_city",
281
+ "service_zip",
282
+ "service_subdivision",
283
+ "service_subdivision_code",
284
+ "shipment_address",
285
+ "shipment_city",
286
+ "shipment_zip",
287
+ "shipment_subdivision",
288
+ "notes",
289
+ "activation_notes",
290
+ "adsl_coverage",
291
+ "mm_fiber_coverage",
292
+ "asociatel_fiber_coverage",
293
+ "orange_fiber_coverage",
294
+ "vdf_fiber_coverage",
295
+ "type",
296
+ "product",
297
+ "previous_internal_provider",
298
+ "mobile_pack_contracts",
299
+ "all_grouped_SIMS_recieved",
300
+ "has_grouped_mobile_with_previous_owner",
301
+ "technology",
302
+ "sales_team",
303
+ "product_ba_mm",
304
+ "confirmed_documentation",
305
+ ]
306
+ )
307
+
308
+ service_data.service_type = "fiber"
309
+
310
+ otrs_process_ticket = Mock(spec=["id"])
140
311
  otrs_process_ticket.id = 234
141
312
 
142
- mock_otrs_client = Mock(spec=['create_otrs_process_ticket'])
313
+ mock_otrs_client = Mock(spec=["create_otrs_process_ticket"])
143
314
  mock_otrs_client.create_otrs_process_ticket.return_value = otrs_process_ticket
144
315
  MockOTRSClient.return_value = mock_otrs_client
145
316
 
146
317
  ticket = TicketFactory(
147
- service_data,
148
- customer_data
318
+ service_data, self.customer_data, self.responsible_data
149
319
  ).build()
150
320
  ticket.create()
151
321
 
152
322
  self.assertIsInstance(ticket, FiberTicket)
153
- self.assertEquals(ticket.id, 234)
323
+ self.assertEqual(ticket.id, 234)
324
+
325
+ @patch("otrs_somconnexio.otrs_models.provision_ticket.OTRSClient")
326
+ def test_create_router_4G_ticket_factory(self, MockOTRSClient):
327
+ service_data = Mock(
328
+ spec=[
329
+ "order_id",
330
+ "previous_provider",
331
+ "previous_owner_name",
332
+ "previous_owner_surname",
333
+ "previous_owner_vat",
334
+ "previous_service",
335
+ "previous_contract_address",
336
+ "previous_contract_phone",
337
+ "previous_internal_provider",
338
+ "service_address",
339
+ "service_city",
340
+ "service_zip",
341
+ "service_subdivision",
342
+ "service_subdivision_code",
343
+ "shipment_address",
344
+ "shipment_city",
345
+ "shipment_zip",
346
+ "shipment_subdivision",
347
+ "adsl_coverage",
348
+ "mm_fiber_coverage",
349
+ "asociatel_fiber_coverage",
350
+ "orange_fiber_coverage",
351
+ "vdf_fiber_coverage",
352
+ "type",
353
+ "iban",
354
+ "email",
355
+ "contact_phone",
356
+ "phone_number",
357
+ "notes",
358
+ "activation_notes",
359
+ "product",
360
+ "technology",
361
+ "sales_team",
362
+ "confirmed_documentation",
363
+ ]
364
+ )
365
+
366
+ service_data.service_type = "4G"
367
+
368
+ otrs_process_ticket = Mock(spec=["id"])
369
+ otrs_process_ticket.id = 234
370
+
371
+ mock_otrs_client = Mock(spec=["create_otrs_process_ticket"])
372
+ mock_otrs_client.create_otrs_process_ticket.return_value = otrs_process_ticket
373
+ MockOTRSClient.return_value = mock_otrs_client
374
+
375
+ ticket = TicketFactory(
376
+ service_data, self.customer_data, self.responsible_data
377
+ ).build()
378
+ ticket.create()
379
+
380
+ self.assertIsInstance(ticket, Router4GTicket)
381
+ self.assertEqual(ticket.id, 234)
382
+
383
+ @patch("otrs_somconnexio.otrs_models.provision_ticket.OTRSClient")
384
+ def test_create_switchboard_ticket_factory(self, MockOTRSClient):
385
+ service_data = Mock(
386
+ spec=[
387
+ "order_id",
388
+ "technology",
389
+ "sales_team",
390
+ "type",
391
+ "iban",
392
+ "email",
393
+ "contact_phone",
394
+ "product",
395
+ "landline",
396
+ "mobile_phone_number",
397
+ "agent_name",
398
+ "agent_email",
399
+ "previous_owner_name",
400
+ "previous_owner_surname",
401
+ "extension",
402
+ "icc",
403
+ "has_sim",
404
+ "shipment_address",
405
+ "shipment_city",
406
+ "shipment_zip",
407
+ "shipment_subdivision",
408
+ "additional_products",
409
+ "notes",
410
+ "activation_notes",
411
+ "confirmed_documentation",
412
+ ]
413
+ )
414
+
415
+ service_data.service_type = "switchboard"
416
+
417
+ otrs_process_ticket = Mock(spec=["id"])
418
+ otrs_process_ticket.id = 234
419
+
420
+ mock_otrs_client = Mock(spec=["create_otrs_process_ticket"])
421
+ mock_otrs_client.create_otrs_process_ticket.return_value = otrs_process_ticket
422
+ MockOTRSClient.return_value = mock_otrs_client
423
+
424
+ ticket = TicketFactory(
425
+ service_data, self.customer_data, self.responsible_data
426
+ ).build()
427
+ ticket.create()
428
+
429
+ self.assertIsInstance(ticket, SwitchboardTicket)
430
+ self.assertEqual(ticket.id, 234)
@@ -6,33 +6,38 @@ from pyotrs.lib import DynamicField
6
6
 
7
7
  from otrs_somconnexio.otrs_models.coverage_ticket import CoverageTicket
8
8
 
9
- from otrs_somconnexio.services.update_process_ticket_with_coverage_tickets_info_service import \
10
- UpdateProcessTicketWithCoverageTicketsInfoService
9
+ from otrs_somconnexio.services.update_process_ticket_with_coverage_tickets_info_service import (
10
+ UpdateProcessTicketWithCoverageTicketsInfoService,
11
+ )
11
12
 
12
- USER = 'user'
13
- PASSW = 'passw'
14
- URL = 'https://otrs-url.coop/'
13
+ USER = "user"
14
+ PASSW = "passw"
15
+ URL = "https://otrs-url.coop/"
15
16
 
16
17
 
17
18
  class UpdateTicketWithCoverageTicketInfoTestCase(unittest.TestCase):
18
-
19
- @patch.dict(os.environ, {
20
- 'OTRS_USER': USER,
21
- 'OTRS_PASSW': PASSW,
22
- 'OTRS_URL': URL
23
- })
24
- @patch('otrs_somconnexio.client.Client', return_value=Mock(
25
- spec=['session_create', 'ticket_update']
26
- ))
27
- @patch('otrs_somconnexio.otrs_models.abstract_article.Article')
19
+ @patch.dict(os.environ, {"OTRS_USER": USER, "OTRS_PASSW": PASSW, "OTRS_URL": URL})
20
+ @patch(
21
+ "otrs_somconnexio.client.Client",
22
+ return_value=Mock(
23
+ spec=[
24
+ "session_create",
25
+ "ticket_update",
26
+ "ticket_search",
27
+ "ticket_get_by_id",
28
+ ]
29
+ ),
30
+ )
31
+ @patch("otrs_somconnexio.otrs_models.abstract_article.Article")
28
32
  def test_run(self, MockArticle, MockClient):
29
- ticket_id = 123
30
-
31
- ticket = Mock(spec=['response'])
32
- ticket.response = Mock(spec=['dynamic_field_get'])
33
+ process_ticket_id = 123
34
+ coverage_ticket_id = 456
35
+ email = "email@email.com"
36
+ ticket = Mock(spec=["response"])
37
+ ticket.response = Mock(spec=["dynamic_field_get"])
33
38
 
34
39
  def get_df_side_effect(name):
35
- return DynamicField(name, 'foo')
40
+ return DynamicField(name, "foo")
36
41
 
37
42
  ticket.response.dynamic_field_get.side_effect = get_df_side_effect
38
43
  coverage_ticket = CoverageTicket(ticket)
@@ -40,11 +45,32 @@ class UpdateTicketWithCoverageTicketInfoTestCase(unittest.TestCase):
40
45
  coverage_article = object()
41
46
  MockArticle.return_value = coverage_article
42
47
 
43
- UpdateProcessTicketWithCoverageTicketsInfoService(ticket_id, [coverage_ticket]).run()
48
+ def ticket_search_side_effect(dynamic_fields):
49
+ if len(dynamic_fields) != 2:
50
+ return []
51
+ if dynamic_fields[0].search_patterns == [
52
+ "Process-be8cf222949132c9fae1bb74615a5ae4"
53
+ ] and dynamic_fields[1].search_patterns == [email]:
54
+ return [coverage_ticket_id]
55
+ return []
56
+
57
+ MockClient.return_value.ticket_search.side_effect = ticket_search_side_effect
58
+ MockClient.return_value.ticket_get_by_id.return_value = ticket.response
59
+
60
+ UpdateProcessTicketWithCoverageTicketsInfoService(process_ticket_id).run(email)
61
+
62
+ MockClient.return_value.ticket_get_by_id.assert_called_with(
63
+ coverage_ticket_id, dynamic_fields=True
64
+ )
44
65
 
45
- MockClient.return_value.ticket_update.assert_called_with(ticket_id, coverage_article, dynamic_fields=[])
46
- MockArticle.assert_called_with({
47
- "Subject": "Sol·licitud cobertura",
48
- "Body": "tipusVia: foo\nnomVia: foo\nnumero: foo\nbloc: foo\nportal: foo\npis: foo\nescala: foo\nporta: foo\npoblacioServei: foo\nprovinciaServei: foo\nCPservei: foo\naltresCobertura: foo\ncoberturaADSL: foo\ncoberturaFibraMM: foo\ncoberturaFibraVdf: foo\nIDhogar: foo\n", # noqa
49
- "ContentType": "text/plain; charset=utf8"
50
- })
66
+ MockClient.return_value.ticket_update.assert_called_with(
67
+ process_ticket_id, coverage_article, dynamic_fields=[]
68
+ )
69
+ MockArticle.assert_called_with(
70
+ {
71
+ "Subject": "Sol·licitud cobertura",
72
+ "Body": "tipusVia: foo\nnomVia: foo\nnumero: foo\nbloc: foo\nportal: foo\npis: foo\nescala: foo\nporta: foo\npoblacioServei: foo\nprovinciaServei: foo\ncodiProvinciaServei: foo\nCPservei: foo\naltresCobertura: foo\ncoberturaADSL: foo\ncoberturaFibraMM: foo\ncoberturaFibraVdf: foo\ncoberturaFibraOrange: foo\nIDhogar: foo\n", # noqa
73
+ "ContentType": "text/plain; charset=utf8",
74
+ "IsVisibleForCustomer": "1",
75
+ }
76
+ )
@@ -0,0 +1,9 @@
1
+ def dynamic_fields_to_dct(dynamic_fields):
2
+ """
3
+ Convert an object in a dict with the name of the dynamic
4
+ field as key and the value as value.
5
+ """
6
+ dct = {}
7
+ for df in dynamic_fields:
8
+ dct[df.name] = df.value
9
+ return dct
File without changes