otrs-somconnexio 0.7.3__tar.gz → 0.8.0__tar.gz

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 (212) hide show
  1. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/PKG-INFO +1 -1
  2. otrs_somconnexio-0.8.0/otrs_somconnexio/otrs_models/provision_article.py +9 -0
  3. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/provision_ticket.py +36 -6
  4. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/switchboard_header_data.py +4 -0
  5. otrs_somconnexio-0.8.0/otrs_somconnexio/otrs_models/switchboard_header_ticket.py +88 -0
  6. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio.egg-info/PKG-INFO +1 -1
  7. otrs_somconnexio-0.8.0/otrs_somconnexio.egg-info/requires.txt +4 -0
  8. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/setup.py +7 -2
  9. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/test_adsl_ticket.py +9 -8
  10. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/test_fiber_ticket.py +18 -8
  11. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/test_mobile_ticket.py +14 -4
  12. otrs_somconnexio-0.8.0/tests/otrs_models/test_provision_article.py +32 -0
  13. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/test_router_4G_ticket.py +18 -10
  14. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/test_switchboard_header_data.py +2 -0
  15. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/test_switchboard_header_ticket.py +84 -6
  16. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/test_switchboard_ticket.py +7 -6
  17. otrs_somconnexio-0.7.3/otrs_somconnexio/otrs_models/provision_article.py +0 -12
  18. otrs_somconnexio-0.7.3/otrs_somconnexio/otrs_models/switchboard_header_ticket.py +0 -30
  19. otrs_somconnexio-0.7.3/otrs_somconnexio.egg-info/requires.txt +0 -2
  20. otrs_somconnexio-0.7.3/tests/otrs_models/test_provision_article.py +0 -49
  21. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/README.md +0 -0
  22. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/__init__.py +0 -0
  23. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/client.py +0 -0
  24. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/exceptions.py +0 -0
  25. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/__init__.py +0 -0
  26. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/abstract_article.py +0 -0
  27. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/adsl_data.py +0 -0
  28. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/adsl_dynamic_fields.py +0 -0
  29. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/adsl_ticket.py +0 -0
  30. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/configurations/__init__.py +0 -0
  31. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/configurations/changes/__init__.py +0 -0
  32. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/configurations/changes/add_data.py +0 -0
  33. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/configurations/changes/change_email.py +0 -0
  34. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/configurations/changes/change_iban.py +0 -0
  35. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/configurations/changes/change_owner.py +0 -0
  36. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/configurations/changes/change_pack.py +0 -0
  37. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/configurations/changes/change_shared_bond.py +0 -0
  38. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/configurations/changes/change_tariff.py +0 -0
  39. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/configurations/changes/change_tariff_adsl.py +0 -0
  40. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/configurations/changes/change_tariff_fiber.py +0 -0
  41. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/configurations/provision/__init__.py +0 -0
  42. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/configurations/provision/adsl_ticket.py +0 -0
  43. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/configurations/provision/fiber_ticket.py +0 -0
  44. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/configurations/provision/mobile_ticket.py +0 -0
  45. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/configurations/provision/router_4G_ticket.py +0 -0
  46. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/configurations/provision/switchboard_ticket.py +0 -0
  47. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/configurations/querys/__init__.py +0 -0
  48. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/configurations/querys/check_coverage.py +0 -0
  49. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/configurations/querys/we_call_you.py +0 -0
  50. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/coverage/__init__.py +0 -0
  51. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/coverage/adsl.py +0 -0
  52. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/coverage/asociatel_fiber.py +0 -0
  53. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/coverage/mm_fiber.py +0 -0
  54. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/coverage/orange_fiber.py +0 -0
  55. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/coverage/vdf_fiber.py +0 -0
  56. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/coverage_article.py +0 -0
  57. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/coverage_ticket.py +0 -0
  58. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/customer_data.py +0 -0
  59. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/customer_user.py +0 -0
  60. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/fiber_data.py +0 -0
  61. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/fiber_dynamic_fields.py +0 -0
  62. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/fiber_ticket.py +0 -0
  63. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/internet_data.py +0 -0
  64. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/internet_dynamic_fields.py +0 -0
  65. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/mobile_data.py +0 -0
  66. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/mobile_dynamic_fields.py +0 -0
  67. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/mobile_ticket.py +0 -0
  68. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/process_ticket/__init__.py +0 -0
  69. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/process_ticket/internet.py +0 -0
  70. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/process_ticket/mobile.py +0 -0
  71. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/process_ticket/process_ticket.py +0 -0
  72. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/providers.py +0 -0
  73. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/provision_dynamic_fields.py +0 -0
  74. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/responsible_data.py +0 -0
  75. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/router_4G_data.py +0 -0
  76. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/router_4G_dynamic_fields.py +0 -0
  77. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/router_4G_ticket.py +0 -0
  78. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/service.py +0 -0
  79. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/switchboard_data.py +0 -0
  80. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/switchboard_dynamic_fields.py +0 -0
  81. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/switchboard_header_dynamic_fields.py +0 -0
  82. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/switchboard_ticket.py +0 -0
  83. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/telecom_company.py +0 -0
  84. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/ticket_factory.py +0 -0
  85. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/ticket_types/__init__.py +0 -0
  86. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/ticket_types/add_data_ticket.py +0 -0
  87. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/ticket_types/base_change_tariff_ba_ticket.py +0 -0
  88. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/ticket_types/base_change_ticket.py +0 -0
  89. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/ticket_types/base_customer_ticket.py +0 -0
  90. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/ticket_types/base_ticket.py +0 -0
  91. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/ticket_types/change_email_ticket.py +0 -0
  92. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/ticket_types/change_iban_ticket.py +0 -0
  93. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/ticket_types/change_owner_ticket.py +0 -0
  94. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/ticket_types/change_pack_not_shared_data.py +0 -0
  95. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/ticket_types/change_personal_email_ticket.py +0 -0
  96. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/ticket_types/change_shared_bond_ticket.py +0 -0
  97. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/ticket_types/change_tariff_adsl_landline_ticket.py +0 -0
  98. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/ticket_types/change_tariff_adsl_out_landline_ticket.py +0 -0
  99. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/ticket_types/change_tariff_adsl_ticket.py +0 -0
  100. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/ticket_types/change_tariff_fiber_ticket.py +0 -0
  101. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/ticket_types/change_tariff_ticket.py +0 -0
  102. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/ticket_types/change_tariff_ticket_mobile_pack.py +0 -0
  103. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/ticket_types/change_tariff_ticket_shared_bonds.py +0 -0
  104. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/ticket_types/check_coverage_ticket.py +0 -0
  105. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/ticket_types/we_call_you_ticket.py +0 -0
  106. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/vf_provisioning_article.py +0 -0
  107. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/responses/__init__.py +0 -0
  108. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/responses/ticket_creation.py +0 -0
  109. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/services/__init__.py +0 -0
  110. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/services/activate_change_tarriff_mobile_tickets.py +0 -0
  111. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/services/base_get_ticket_by_number.py +0 -0
  112. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/services/change_to_confirm_ticket.py +0 -0
  113. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/services/get_mobile_related_tickets.py +0 -0
  114. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/services/get_sharing_data_mobile_tickets.py +0 -0
  115. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/services/get_ticket_title.py +0 -0
  116. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/services/mapping_mobile_minutes.py +0 -0
  117. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/services/mapping_services.py +0 -0
  118. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/services/move_sharing_data_mobile_tickets.py +0 -0
  119. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/services/search_tickets_mobile_change_tariff.py +0 -0
  120. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/services/search_tickets_service.py +0 -0
  121. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/services/set_SIM_recieved_mobile_ticket.py +0 -0
  122. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/services/set_SIM_returned_mobile_ticket.py +0 -0
  123. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/services/set_fiber_contract_code_mobile_ticket.py +0 -0
  124. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/services/unblock_mobile_pack_ticket.py +0 -0
  125. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/services/update_process_ticket_with_VF_provisioning.py +0 -0
  126. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/services/update_process_ticket_with_coverage_tickets_info_service.py +0 -0
  127. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/services/update_ticket_DF.py +0 -0
  128. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/services/update_ticket_with_provider_info.py +0 -0
  129. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/user_management_client/__init__.py +0 -0
  130. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/user_management_client/client.py +0 -0
  131. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/user_management_client/user_management_response.py +0 -0
  132. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio.egg-info/SOURCES.txt +0 -0
  133. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio.egg-info/dependency_links.txt +0 -0
  134. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio.egg-info/not-zip-safe +0 -0
  135. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio.egg-info/top_level.txt +0 -0
  136. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/setup.cfg +0 -0
  137. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/data/__init__.py +0 -0
  138. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/data/otrs_raw_responses.py +0 -0
  139. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/integration/__init__.py +0 -0
  140. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/integration/test_change_customer_language.py +0 -0
  141. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/integration/test_ticket_factory.py +0 -0
  142. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/integration/test_update_ticket_with_coverage_data.py +0 -0
  143. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/__init__.py +0 -0
  144. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/common_helper.py +0 -0
  145. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/configuration/__init__.py +0 -0
  146. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/configuration/changes/__init__.py +0 -0
  147. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/configuration/changes/test_change_tariff_ticket.py +0 -0
  148. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/configuration/provision/__init__.py +0 -0
  149. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/configuration/provision/test_adsl_ticket.py +0 -0
  150. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/configuration/provision/test_fiber_ticket.py +0 -0
  151. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/configuration/provision/test_mobile_ticket.py +0 -0
  152. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/process_ticket/__init__.py +0 -0
  153. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/process_ticket/test_internet_process_ticket.py +0 -0
  154. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/process_ticket/test_mobile_process_ticket.py +0 -0
  155. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/test_abstract_article.py +0 -0
  156. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/test_adsl_data.py +0 -0
  157. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/test_adsl_dynamic_fields.py +0 -0
  158. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/test_coverage_article.py +0 -0
  159. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/test_coverage_ticket.py +0 -0
  160. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/test_customer_user.py +0 -0
  161. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/test_fiber_data.py +0 -0
  162. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/test_fiber_dynamic_fields.py +0 -0
  163. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/test_mobile_data.py +0 -0
  164. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/test_mobile_dynamic_fields.py +0 -0
  165. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/test_mobile_paused_ticket.py +0 -0
  166. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/test_router_4G_data.py +0 -0
  167. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/test_router_4G_dynamic_fields.py +0 -0
  168. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/test_service.py +0 -0
  169. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/test_switchboard_data.py +0 -0
  170. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/test_switchboard_dynamic_fields.py +0 -0
  171. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/test_switchboard_header_dynamic_fields.py +0 -0
  172. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/test_telecom_company.py +0 -0
  173. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/test_ticket_factory.py +0 -0
  174. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/test_vf_provisioning_article.py +0 -0
  175. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/ticket_types/__init__.py +0 -0
  176. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/ticket_types/test_add_data.py +0 -0
  177. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/ticket_types/test_change_email.py +0 -0
  178. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/ticket_types/test_change_iban.py +0 -0
  179. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/ticket_types/test_change_owner.py +0 -0
  180. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/ticket_types/test_change_pack_not_shared_data.py +0 -0
  181. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/ticket_types/test_change_personal_email.py +0 -0
  182. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/ticket_types/test_change_tariff.py +0 -0
  183. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/ticket_types/test_change_tariff_adsl_landline.py +0 -0
  184. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/ticket_types/test_change_tariff_adsl_out_landline.py +0 -0
  185. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/ticket_types/test_change_tariff_fiber.py +0 -0
  186. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/ticket_types/test_change_tariff_mobile_pack.py +0 -0
  187. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/ticket_types/test_change_tariff_shared_bonds.py +0 -0
  188. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/ticket_types/test_check_coverage.py +0 -0
  189. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/ticket_types/test_shared_bond.py +0 -0
  190. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/ticket_types/test_we_call_you.py +0 -0
  191. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/responses/__init__.py +0 -0
  192. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/responses/test_ticket_creation.py +0 -0
  193. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/services/__init__.py +0 -0
  194. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/services/test_activate_change_tariff_mobile_tickets.py +0 -0
  195. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/services/test_change_to_confirm_ticket.py +0 -0
  196. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/services/test_get_mobile_related_tickets.py +0 -0
  197. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/services/test_get_sharing_data_mobile_tickets.py +0 -0
  198. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/services/test_mapping_mobile_minutes.py +0 -0
  199. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/services/test_mapping_services.py +0 -0
  200. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/services/test_move_sharing_data_mobile_tickets.py +0 -0
  201. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/services/test_search_tickets_mobile_change_tariff.py +0 -0
  202. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/services/test_search_tickets_service.py +0 -0
  203. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/services/test_set_SIM_recieved_mobile_ticket_service.py +0 -0
  204. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/services/test_set_SIM_returned_mobile_ticket_service.py +0 -0
  205. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/services/test_set_fiber_contract_code_mobile_ticket_service.py +0 -0
  206. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/services/test_unblock_mobile_pack_ticket.py +0 -0
  207. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/services/test_update_process_ticket_with_VF_provisioning.py +0 -0
  208. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/services/test_update_process_ticket_with_coverage_tickets_info_service.py +0 -0
  209. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/services/test_update_ticket_with_provider_info.py +0 -0
  210. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/user_management_client/__init__.py +0 -0
  211. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/user_management_client/test_client.py +0 -0
  212. {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/user_management_client/test_user_management_response.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: otrs_somconnexio
3
- Version: 0.7.3
3
+ Version: 0.8.0
4
4
  Summary: Python package for Somconnexio data syncing in OTRS
5
5
  Home-page: https://gitlab.com/coopdevs/otrs_somconnexio
6
6
  Author: Coopdevs
@@ -0,0 +1,9 @@
1
+ # coding: utf-8
2
+ from otrs_somconnexio.otrs_models.abstract_article import AbstractArticle
3
+
4
+
5
+ class ProvisionArticle(AbstractArticle):
6
+ def __init__(self, subject, notes=""):
7
+ self.subject = subject
8
+ self.isVisibleForCustomer = "0" if notes else "1"
9
+ self.body = notes
@@ -1,6 +1,6 @@
1
1
  # coding: utf-8
2
- from pyotrs.lib import Ticket
3
-
2
+ import base64
3
+ from pyotrs.lib import Attachment, Ticket
4
4
  from otrs_somconnexio.client import OTRSClient
5
5
  from otrs_somconnexio.otrs_models.provision_article import ProvisionArticle
6
6
  from otrs_somconnexio.services.get_ticket_title import GetTicketTitle
@@ -11,8 +11,12 @@ class ProvisionTicket:
11
11
  self.responsible_data = responsible_data
12
12
 
13
13
  def create(self):
14
+ new_ticket = self._build_ticket()
14
15
  self.otrs_ticket = OTRSClient().create_otrs_process_ticket(
15
- self._build_ticket(), self._build_article(), self._build_dynamic_fields()
16
+ new_ticket,
17
+ article=self._build_article(),
18
+ dynamic_fields=self._build_dynamic_fields(),
19
+ attachments=self._build_attachments(),
16
20
  )
17
21
 
18
22
  @property
@@ -40,11 +44,16 @@ class ProvisionTicket:
40
44
  }
41
45
  )
42
46
 
47
+ def _get_article_subject(self):
48
+ return self._ticket_title()
49
+
50
+ def _get_article_notes(self):
51
+ return self.service_data.notes
52
+
43
53
  def _build_article(self):
44
54
  provision_article = ProvisionArticle(
45
- self.service_data.technology,
46
- self.service_data.order_id,
47
- self.service_type(),
55
+ self._get_article_subject(),
56
+ self._get_article_notes(),
48
57
  )
49
58
  return provision_article.call()
50
59
 
@@ -55,6 +64,21 @@ class ProvisionTicket:
55
64
  self.service_type(),
56
65
  ).build()
57
66
 
67
+ def _build_attachments(self):
68
+ docs = self._files_to_attach()
69
+ if not docs:
70
+ return []
71
+ return [
72
+ Attachment.create_basic(
73
+ Content=base64.b64encode(bytes(doc["Content"], "utf-8")).decode(
74
+ "utf-8"
75
+ ),
76
+ Filename=doc["Filename"],
77
+ ContentType=doc.get("ContentType", "text/plain"),
78
+ )
79
+ for doc in docs
80
+ ]
81
+
58
82
  def _ticket_type(self):
59
83
  return self.otrs_configuration.type
60
84
 
@@ -93,3 +117,9 @@ class ProvisionTicket:
93
117
  return self.responsible_data.email
94
118
  else:
95
119
  return False
120
+
121
+ def _files_to_attach(self):
122
+ """Override to attach files to the ticket.
123
+ Format: [{"Filename": "file.txt", "Content": "file content", "ContentType": "text/plain"}, ...]
124
+ """
125
+ return []
@@ -8,6 +8,8 @@ class SwitchboardHeaderData:
8
8
  contact_phone,
9
9
  sales_team,
10
10
  technology,
11
+ lead_line_data,
12
+ agent_data,
11
13
  notes="",
12
14
  ):
13
15
  self.order_id = order_id
@@ -15,4 +17,6 @@ class SwitchboardHeaderData:
15
17
  self.contact_phone = contact_phone
16
18
  self.sales_team = sales_team
17
19
  self.technology = technology
20
+ self.lead_line_data = lead_line_data
21
+ self.agent_data = agent_data
18
22
  self.notes = notes
@@ -0,0 +1,88 @@
1
+ # coding: utf-8
2
+ from tabulate import tabulate
3
+ from itertools import groupby
4
+ from otrs_somconnexio.otrs_models.provision_ticket import ProvisionTicket
5
+ from otrs_somconnexio.otrs_models.switchboard_header_dynamic_fields import (
6
+ SwitchboardHeaderDynamicFields,
7
+ )
8
+ from otrs_somconnexio.otrs_models.configurations.provision.switchboard_ticket import (
9
+ SwitchboardTicketConfiguration,
10
+ )
11
+
12
+
13
+ class SwitchboardHeaderTicket(ProvisionTicket):
14
+ def __init__(self, service_data, customer_data, responsible_data):
15
+ super(SwitchboardHeaderTicket, self).__init__(responsible_data)
16
+ self.service_data = service_data
17
+ self.customer_data = customer_data
18
+ self.otrs_configuration = SwitchboardTicketConfiguration()
19
+
20
+ def service_type(self):
21
+ return "switchboard_header"
22
+
23
+ def _build_dynamic_fields(self):
24
+ return SwitchboardHeaderDynamicFields(
25
+ self.service_data,
26
+ self.customer_data,
27
+ self._ticket_process_id(),
28
+ self._ticket_activity_id(),
29
+ ).all()
30
+
31
+ def _ticket_title(self):
32
+ return "Provisió centraleta virtual (CV) → Capçalera"
33
+
34
+ def _files_to_attach(self):
35
+ formatted_agent_data = self._format_agent_data()
36
+
37
+ attachments = []
38
+
39
+ if formatted_agent_data:
40
+ attachments.append(
41
+ {
42
+ "Filename": "importació_agents_operator_{}.txt".format(
43
+ self.service_data.order_id
44
+ ),
45
+ "Content": formatted_agent_data,
46
+ }
47
+ )
48
+
49
+ return attachments
50
+
51
+ def _get_article_notes(self):
52
+ return self._format_lead_line_data()
53
+
54
+ def _format_lead_line_data(self):
55
+ """Format lead line data for tsv table attachment."""
56
+ lead_line_data = self.service_data.lead_line_data
57
+ if not lead_line_data:
58
+ return ""
59
+
60
+ lead_table_data = list(zip(*lead_line_data.values()))
61
+ headers = lead_line_data.keys()
62
+ lead_lines_table = tabulate(lead_table_data, headers, tablefmt="csv")
63
+
64
+ return lead_lines_table
65
+
66
+ def _format_agent_data(self):
67
+ """Format agent data for operator import attachment.
68
+ Sorted by product, grouped by product.
69
+ """
70
+ agent_data = self.service_data.agent_data
71
+ if not agent_data:
72
+ return ""
73
+
74
+ sorted_agents = sorted(agent_data, key=lambda d: d["product"])
75
+
76
+ pin = "2424"
77
+ agents_info = []
78
+ for product, agents in groupby(sorted_agents, key=lambda ag: ag["product"]):
79
+ agents_info.append(f"{product}:")
80
+
81
+ for agent in agents:
82
+ agents_info.append(
83
+ f"{agent['extension']}\t{agent['agent_name']}\t{pin}\t{agent['agent_name']}\t{agent['agent_email']}" # noqa E501
84
+ )
85
+
86
+ agents_info.append("")
87
+
88
+ return "\n".join(agents_info)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: otrs-somconnexio
3
- Version: 0.7.3
3
+ Version: 0.8.0
4
4
  Summary: Python package for Somconnexio data syncing in OTRS
5
5
  Home-page: https://gitlab.com/coopdevs/otrs_somconnexio
6
6
  Author: Coopdevs
@@ -0,0 +1,4 @@
1
+ pyotrs==0.12.7
2
+ future==0.18.2
3
+ tabulate==0.9.0
4
+ more-itertools==10.0.0
@@ -5,7 +5,7 @@ with open("README.md") as f:
5
5
  README = f.read()
6
6
 
7
7
 
8
- VERSION = "0.7.3"
8
+ VERSION = "0.8.0"
9
9
 
10
10
  setup(
11
11
  name="otrs_somconnexio",
@@ -19,7 +19,12 @@ setup(
19
19
  packages=find_packages(exclude=("tests", "docs")),
20
20
  include_package_data=True,
21
21
  zip_safe=False,
22
- install_requires=["pyotrs==0.12.7", "future==0.18.2"],
22
+ install_requires=[
23
+ "pyotrs==0.12.7",
24
+ "future==0.18.2",
25
+ "tabulate==0.9.0",
26
+ "more-itertools==10.0.0",
27
+ ],
23
28
  test_suite="unittest2.collector",
24
29
  tests_require=["unittest2", "mock", "factory_boy", "ipdb"],
25
30
  classifiers=[
@@ -12,7 +12,7 @@ class ADSLTicketTestCase(unittest.TestCase):
12
12
  @patch("otrs_somconnexio.otrs_models.provision_ticket.Ticket")
13
13
  def test_build_ticket(self, MockTicket):
14
14
  customer_data = Mock(spec=["id"])
15
- service_data = Mock(spec=["order_id", "technology"])
15
+ service_data = Mock(spec=["order_id", "technology", "notes"])
16
16
  expected_ticket_arguments = {
17
17
  "Title": "Ticket#{} - Només ADSL".format(service_data.order_id),
18
18
  "Type": ADSLTicketConfiguration.type,
@@ -30,18 +30,19 @@ class ADSLTicketTestCase(unittest.TestCase):
30
30
  MockTicket.assert_called_with(expected_ticket_arguments)
31
31
 
32
32
  @patch("otrs_somconnexio.otrs_models.provision_ticket.ProvisionArticle")
33
- def test_build_article(self, MockInternetArticle):
33
+ def test_build_article(self, MockProvisionArticle):
34
34
  customer_data = Mock(spec=[])
35
- service_data = Mock(spec=["order_id", "technology"])
35
+ service_data = Mock(spec=["order_id", "technology", "notes"])
36
36
 
37
- mock_mobile_article = MockInternetArticle.return_value
37
+ mock_adsl_article = MockProvisionArticle.return_value
38
38
 
39
- ADSLTicket(service_data, customer_data, None)._build_article()
39
+ ticket = ADSLTicket(service_data, customer_data, None)
40
+ ticket._build_article()
40
41
 
41
- MockInternetArticle.assert_called_with(
42
- service_data.technology, service_data.order_id, "adsl"
42
+ MockProvisionArticle.assert_called_once_with(
43
+ ticket._ticket_title(), service_data.notes
43
44
  )
44
- mock_mobile_article.call.assert_called_once()
45
+ mock_adsl_article.call.assert_called_once()
45
46
 
46
47
  @patch("otrs_somconnexio.otrs_models.adsl_ticket.ADSLDynamicFields")
47
48
  def test_build_dynamic_fields(self, MockADSLDynamicFields):
@@ -15,7 +15,7 @@ class FiberTicketTestCase(unittest.TestCase):
15
15
  @patch("otrs_somconnexio.otrs_models.provision_ticket.Ticket")
16
16
  def test_build_ticket(self, MockTicket):
17
17
  customer_data = Mock(spec=["id"])
18
- service_data = Mock(spec=["order_id", "technology"])
18
+ service_data = Mock(spec=["order_id", "technology", "notes"])
19
19
 
20
20
  expected_ticket_arguments = {
21
21
  "Title": "Ticket#{} - Només fibra".format(service_data.order_id),
@@ -36,7 +36,7 @@ class FiberTicketTestCase(unittest.TestCase):
36
36
  @patch("otrs_somconnexio.otrs_models.provision_ticket.Ticket")
37
37
  def test_build_ticket_mixed(self, MockTicket):
38
38
  customer_data = Mock(spec=["id"])
39
- service_data = Mock(spec=["order_id", "technology"])
39
+ service_data = Mock(spec=["order_id", "technology", "notes"])
40
40
  service_data.technology = "Mixta"
41
41
  expected_ticket_arguments = {
42
42
  "Title": "Ticket#{} - Fibra mixta".format(service_data.order_id),
@@ -55,16 +55,17 @@ class FiberTicketTestCase(unittest.TestCase):
55
55
  MockTicket.assert_called_with(expected_ticket_arguments)
56
56
 
57
57
  @patch("otrs_somconnexio.otrs_models.provision_ticket.ProvisionArticle")
58
- def test_build_article(self, MockInternetArticle):
58
+ def test_build_article(self, MockProvisionArticle):
59
59
  customer_data = Mock(spec=[])
60
- service_data = Mock(spec=["order_id", "technology"])
60
+ service_data = Mock(spec=["order_id", "technology", "notes"])
61
61
 
62
- mock_mobile_article = MockInternetArticle.return_value
62
+ mock_mobile_article = MockProvisionArticle.return_value
63
63
 
64
- FiberTicket(service_data, customer_data, self.responsible_data)._build_article()
64
+ ticket = FiberTicket(service_data, customer_data, self.responsible_data)
65
+ ticket._build_article()
65
66
 
66
- MockInternetArticle.assert_called_with(
67
- service_data.technology, service_data.order_id, "fiber"
67
+ MockProvisionArticle.assert_called_once_with(
68
+ ticket._ticket_title(), service_data.notes
68
69
  )
69
70
  mock_mobile_article.call.assert_called_once()
70
71
 
@@ -162,3 +163,12 @@ class FiberTicketTestCase(unittest.TestCase):
162
163
  self.assertEqual(
163
164
  ticket.otrs_configuration.service, "Banda Ancha::Fibra::Provisió Fibra"
164
165
  )
166
+
167
+ def test_files_to_attach_no_attachments(self):
168
+ customer_data = Mock()
169
+ service_data = Mock()
170
+
171
+ ticket = FiberTicket(service_data, customer_data, self.responsible_data)
172
+ attachments = ticket._files_to_attach()
173
+
174
+ self.assertFalse(attachments)
@@ -38,17 +38,18 @@ class MobileTicketTestCase(unittest.TestCase):
38
38
 
39
39
  @patch("otrs_somconnexio.otrs_models.provision_ticket.ProvisionArticle")
40
40
  def test_build_article(self, MockProvisionArticle):
41
- mobile_data = Mock(spec=["order_id", "technology"])
41
+ mobile_data = Mock(spec=["order_id", "technology", "notes"])
42
42
  mobile_data.order_id = 123
43
43
 
44
44
  customer_data = Mock(spec=["order_id"])
45
45
 
46
46
  mock_mobile_article = MockProvisionArticle.return_value
47
47
 
48
- MobileTicket(mobile_data, customer_data, self.responsible_data)._build_article()
48
+ ticket = MobileTicket(mobile_data, customer_data, self.responsible_data)
49
+ ticket._build_article()
49
50
 
50
- MockProvisionArticle.assert_called_with(
51
- mobile_data.technology, mobile_data.order_id, "mobile"
51
+ MockProvisionArticle.assert_called_once_with(
52
+ ticket._ticket_title(), mobile_data.notes
52
53
  )
53
54
  mock_mobile_article.call.assert_called_once()
54
55
 
@@ -138,3 +139,12 @@ class MobileTicketTestCase(unittest.TestCase):
138
139
 
139
140
  self.assertEqual(ticket.id, 123)
140
141
  self.assertEqual(ticket.number, "#123")
142
+
143
+ def test_files_to_attach_no_attachments(self):
144
+ customer_data = Mock()
145
+ service_data = Mock()
146
+
147
+ ticket = MobileTicket(service_data, customer_data, self.responsible_data)
148
+ attachments = ticket._files_to_attach()
149
+
150
+ self.assertFalse(attachments)
@@ -0,0 +1,32 @@
1
+ # coding: utf-8
2
+ import unittest
3
+ from mock import patch
4
+
5
+ from otrs_somconnexio.otrs_models.provision_article import ProvisionArticle
6
+
7
+
8
+ class ProvisionArticleTestCase(unittest.TestCase):
9
+ @patch("otrs_somconnexio.otrs_models.abstract_article.Article")
10
+ def test_call_with_notes(self, MockArticle):
11
+ subject = "test subject"
12
+ notes = "test notes"
13
+ expected_article_arguments = {
14
+ "Subject": subject,
15
+ "Body": notes,
16
+ "ContentType": "text/plain; charset=utf8",
17
+ "IsVisibleForCustomer": "0",
18
+ }
19
+ ProvisionArticle(subject=subject, notes=notes).call()
20
+ MockArticle.assert_called_once_with(expected_article_arguments)
21
+
22
+ @patch("otrs_somconnexio.otrs_models.abstract_article.Article")
23
+ def test_call_without_notes(self, MockArticle):
24
+ subject = "test subject"
25
+ expected_article_arguments = {
26
+ "Subject": subject,
27
+ "Body": "",
28
+ "ContentType": "text/plain; charset=utf8",
29
+ "IsVisibleForCustomer": "1",
30
+ }
31
+ ProvisionArticle(subject=subject, notes="").call()
32
+ MockArticle.assert_called_once_with(expected_article_arguments)
@@ -15,7 +15,7 @@ class Router4GTicketTestCase(unittest.TestCase):
15
15
  @patch("otrs_somconnexio.otrs_models.provision_ticket.Ticket")
16
16
  def test_build_ticket(self, MockTicket):
17
17
  customer_data = Mock(spec=["id"])
18
- service_data = Mock(spec=["order_id", "technology"])
18
+ service_data = Mock(spec=["order_id", "technology", "notes"])
19
19
 
20
20
  expected_ticket_arguments = {
21
21
  "Title": "Ticket#{} - Només 4G".format(service_data.order_id),
@@ -36,20 +36,19 @@ class Router4GTicketTestCase(unittest.TestCase):
36
36
  MockTicket.assert_called_with(expected_ticket_arguments)
37
37
 
38
38
  @patch("otrs_somconnexio.otrs_models.provision_ticket.ProvisionArticle")
39
- def test_build_article(self, MockInternetArticle):
39
+ def test_build_article(self, MockProvisionArticle):
40
40
  customer_data = Mock(spec=[])
41
- service_data = Mock(spec=["order_id", "technology"])
41
+ service_data = Mock(spec=["order_id", "technology", "notes"])
42
42
 
43
- mock_internet_article = MockInternetArticle.return_value
43
+ mock_provision_article = MockProvisionArticle.return_value
44
44
 
45
- Router4GTicket(
46
- service_data, customer_data, self.responsible_data
47
- )._build_article()
45
+ ticket = Router4GTicket(service_data, customer_data, self.responsible_data)
46
+ ticket._build_article()
48
47
 
49
- MockInternetArticle.assert_called_with(
50
- service_data.technology, service_data.order_id, "4G"
48
+ MockProvisionArticle.assert_called_once_with(
49
+ ticket._ticket_title(), service_data.notes
51
50
  )
52
- mock_internet_article.call.assert_called_once()
51
+ mock_provision_article.call.assert_called_once()
53
52
 
54
53
  @patch("otrs_somconnexio.otrs_models.router_4G_ticket.Router4GDynamicFields")
55
54
  def test_build_dynamic_fields(self, MockRouter4GDynamicFields):
@@ -133,3 +132,12 @@ class Router4GTicketTestCase(unittest.TestCase):
133
132
 
134
133
  self.assertEqual(ticket.id, 123)
135
134
  self.assertEqual(ticket.number, "#123")
135
+
136
+ def test_files_to_attach_no_attachments(self):
137
+ customer_data = Mock()
138
+ service_data = Mock()
139
+
140
+ ticket = Router4GTicket(service_data, customer_data, self.responsible_data)
141
+ attachments = ticket._files_to_attach()
142
+
143
+ self.assertFalse(attachments)
@@ -10,6 +10,8 @@ class SwitchboardHeaderDataTestCase(unittest.TestCase):
10
10
  order_id=123,
11
11
  contact_phone="666666661",
12
12
  email="test@test.com",
13
+ agent_data=[],
14
+ lead_line_data={},
13
15
  sales_team="residential",
14
16
  technology="switchboard",
15
17
  notes="Notes",
@@ -40,20 +40,21 @@ class SwitchboardHeaderTicketTestCase(unittest.TestCase):
40
40
 
41
41
  @patch("otrs_somconnexio.otrs_models.provision_ticket.ProvisionArticle")
42
42
  def test_build_article(self, MockProvisionArticle):
43
- service_data = Mock(spec=["order_id", "technology"])
43
+ service_data = Mock(spec=["order_id", "technology", "lead_line_data"])
44
44
  service_data.order_id = 123
45
+ service_data.lead_line_data = {}
45
46
  customer_data = Mock(spec=["order_id"])
46
47
 
47
48
  mock_article = MockProvisionArticle.return_value
48
49
 
49
- SwitchboardHeaderTicket(
50
+ ticket = SwitchboardHeaderTicket(
50
51
  service_data, customer_data, self.responsible_data
51
- )._build_article()
52
+ )
53
+ ticket._build_article()
52
54
 
53
55
  MockProvisionArticle.assert_called_with(
54
- service_data.technology,
55
- service_data.order_id,
56
- "switchboard_header",
56
+ ticket._ticket_title(),
57
+ ticket._format_lead_line_data(),
57
58
  )
58
59
  mock_article.call.assert_called_once()
59
60
 
@@ -90,6 +91,8 @@ class SwitchboardHeaderTicketTestCase(unittest.TestCase):
90
91
  "previous_owner_name",
91
92
  "previous_owner_surname",
92
93
  "sales_team",
94
+ "agent_data",
95
+ "lead_line_data",
93
96
  "type",
94
97
  "notes",
95
98
  ]
@@ -108,6 +111,8 @@ class SwitchboardHeaderTicketTestCase(unittest.TestCase):
108
111
  "language",
109
112
  ]
110
113
  )
114
+ service_data.agent_data = []
115
+ service_data.lead_line_data = {}
111
116
 
112
117
  mock_otrs_client = Mock(spec=["create_otrs_process_ticket"])
113
118
  mock_otrs_client.create_otrs_process_ticket.return_value = Mock(
@@ -125,3 +130,76 @@ class SwitchboardHeaderTicketTestCase(unittest.TestCase):
125
130
  mock_otrs_client.create_otrs_process_ticket.assert_called_once()
126
131
  self.assertEqual(ticket.id, 123)
127
132
  self.assertEqual(ticket.number, "#123")
133
+
134
+ def test_files_to_attach(self):
135
+ service_data = Mock(spec=["order_id", "agent_data"])
136
+ customer_data = Mock()
137
+ service_data.order_id = 123
138
+ service_data.agent_data = [
139
+ {
140
+ "product": "product1",
141
+ "extension": "ext1",
142
+ "agent_name": "agent1",
143
+ "agent_email": "agent1@test.com",
144
+ },
145
+ {
146
+ "product": "product2",
147
+ "extension": "ext2",
148
+ "agent_name": "agent2",
149
+ "agent_email": "agent2@test.com",
150
+ },
151
+ {
152
+ "product": "product3",
153
+ "extension": "ext3",
154
+ "agent_name": "agent3",
155
+ "agent_email": "agent3@test.com",
156
+ },
157
+ ]
158
+
159
+ sb_header_ticket = SwitchboardHeaderTicket(
160
+ service_data, customer_data, self.responsible_data
161
+ )
162
+ files = sb_header_ticket._files_to_attach()
163
+
164
+ self.assertEqual(len(files), 1)
165
+ agent_data_file = files[0]
166
+ self.assertEqual(
167
+ agent_data_file["Filename"],
168
+ "importació_agents_operator_{}.txt".format(service_data.order_id),
169
+ )
170
+ self.assertIn("product1:\n", agent_data_file["Content"])
171
+ self.assertIn(
172
+ "ext1\tagent1\t2424\tagent1\tagent1@test.com\n", agent_data_file["Content"]
173
+ )
174
+ self.assertIn("product2:\n", agent_data_file["Content"])
175
+ self.assertIn(
176
+ "ext2\tagent2\t2424\tagent2\tagent2@test.com\n", agent_data_file["Content"]
177
+ )
178
+ self.assertIn("product3:\n", agent_data_file["Content"])
179
+ self.assertIn(
180
+ "ext3\tagent3\t2424\tagent3\tagent3@test.com\n", agent_data_file["Content"]
181
+ )
182
+
183
+ def test_format_lead_line_data(self):
184
+ service_data = Mock(spec=["order_id", "lead_line_data"])
185
+ customer_data = Mock()
186
+ service_data.order_id = 123
187
+ service_data.lead_line_data = {
188
+ "Prod": ["product1", "product2", "product3"],
189
+ "Ext": ["ext1", "ext2", "ext3"],
190
+ "Nom": ["agent1", "agent2", "agent3"],
191
+ "Telf": ["111", "222", "333"],
192
+ "Tipus": ["tipus1", "tipus2", "tipus3"],
193
+ }
194
+
195
+ sb_header_ticket = SwitchboardHeaderTicket(
196
+ service_data, customer_data, self.responsible_data
197
+ )
198
+ lead_line_table = sb_header_ticket._format_lead_line_data()
199
+
200
+ for header in service_data.lead_line_data.keys():
201
+ self.assertIn(header, lead_line_table)
202
+ self.assertEqual(
203
+ lead_line_table.count("\n"),
204
+ len(service_data.lead_line_data["Prod"]) + 1,
205
+ ) # headers + number of rows
@@ -12,7 +12,7 @@ class SwitchboardTicketTestCase(unittest.TestCase):
12
12
  def setUp(self):
13
13
  self.responsible_data = Mock(spec=["email"])
14
14
  self.service_data = Mock(
15
- spec=["order_id", "technology", "landline", "mobile_phone_number"]
15
+ spec=["order_id", "technology", "landline", "mobile_phone_number", "notes"]
16
16
  )
17
17
  self.service_data.order_id = 123
18
18
  self.customer_data = Mock(spec=["id"])
@@ -59,13 +59,14 @@ class SwitchboardTicketTestCase(unittest.TestCase):
59
59
  def test_build_article(self, MockProvisionArticle):
60
60
  mock_article = MockProvisionArticle.return_value
61
61
 
62
- SwitchboardTicket(
62
+ ticket = SwitchboardTicket(
63
63
  self.service_data, self.customer_data, self.responsible_data
64
- )._build_article()
64
+ )
65
+ ticket._build_article()
66
+
65
67
  MockProvisionArticle.assert_called_with(
66
- self.service_data.technology,
67
- self.service_data.order_id,
68
- "switchboard",
68
+ ticket._ticket_title(),
69
+ self.service_data.notes,
69
70
  )
70
71
  mock_article.call.assert_called_once()
71
72
 
@@ -1,12 +0,0 @@
1
- # coding: utf-8
2
- from otrs_somconnexio.otrs_models.abstract_article import AbstractArticle
3
- from otrs_somconnexio.services.get_ticket_title import GetTicketTitle
4
-
5
-
6
- class ProvisionArticle(AbstractArticle):
7
- def __init__(self, technology, order_id, service_type, notes=""):
8
- subject = GetTicketTitle(technology, order_id, service_type).build()
9
- self.subject = subject
10
- if notes:
11
- self.isVisibleForCustomer = "0"
12
- self.body = notes
@@ -1,30 +0,0 @@
1
- # coding: utf-8
2
- from otrs_somconnexio.otrs_models.provision_ticket import ProvisionTicket
3
- from otrs_somconnexio.otrs_models.switchboard_header_dynamic_fields import (
4
- SwitchboardHeaderDynamicFields,
5
- )
6
- from otrs_somconnexio.otrs_models.configurations.provision.switchboard_ticket import (
7
- SwitchboardTicketConfiguration,
8
- )
9
-
10
-
11
- class SwitchboardHeaderTicket(ProvisionTicket):
12
- def __init__(self, service_data, customer_data, responsible_data):
13
- super(SwitchboardHeaderTicket, self).__init__(responsible_data)
14
- self.service_data = service_data
15
- self.customer_data = customer_data
16
- self.otrs_configuration = SwitchboardTicketConfiguration()
17
-
18
- def service_type(self):
19
- return "switchboard_header"
20
-
21
- def _build_dynamic_fields(self):
22
- return SwitchboardHeaderDynamicFields(
23
- self.service_data,
24
- self.customer_data,
25
- self._ticket_process_id(),
26
- self._ticket_activity_id(),
27
- ).all()
28
-
29
- def _ticket_title(self):
30
- return "Provisió centraleta virtual (CV) → Capçalera"
@@ -1,2 +0,0 @@
1
- pyotrs==0.12.7
2
- future==0.18.2