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.
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/PKG-INFO +1 -1
- otrs_somconnexio-0.8.0/otrs_somconnexio/otrs_models/provision_article.py +9 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/provision_ticket.py +36 -6
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/switchboard_header_data.py +4 -0
- otrs_somconnexio-0.8.0/otrs_somconnexio/otrs_models/switchboard_header_ticket.py +88 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio.egg-info/PKG-INFO +1 -1
- otrs_somconnexio-0.8.0/otrs_somconnexio.egg-info/requires.txt +4 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/setup.py +7 -2
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/test_adsl_ticket.py +9 -8
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/test_fiber_ticket.py +18 -8
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/test_mobile_ticket.py +14 -4
- otrs_somconnexio-0.8.0/tests/otrs_models/test_provision_article.py +32 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/test_router_4G_ticket.py +18 -10
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/test_switchboard_header_data.py +2 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/test_switchboard_header_ticket.py +84 -6
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/test_switchboard_ticket.py +7 -6
- otrs_somconnexio-0.7.3/otrs_somconnexio/otrs_models/provision_article.py +0 -12
- otrs_somconnexio-0.7.3/otrs_somconnexio/otrs_models/switchboard_header_ticket.py +0 -30
- otrs_somconnexio-0.7.3/otrs_somconnexio.egg-info/requires.txt +0 -2
- otrs_somconnexio-0.7.3/tests/otrs_models/test_provision_article.py +0 -49
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/README.md +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/__init__.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/client.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/exceptions.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/__init__.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/abstract_article.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/adsl_data.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/adsl_dynamic_fields.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/adsl_ticket.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/configurations/__init__.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/configurations/changes/__init__.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/configurations/changes/add_data.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/configurations/changes/change_email.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/configurations/changes/change_iban.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/configurations/changes/change_owner.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/configurations/changes/change_pack.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/configurations/changes/change_shared_bond.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/configurations/changes/change_tariff.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/configurations/changes/change_tariff_adsl.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/configurations/changes/change_tariff_fiber.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/configurations/provision/__init__.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/configurations/provision/adsl_ticket.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/configurations/provision/fiber_ticket.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/configurations/provision/mobile_ticket.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/configurations/provision/router_4G_ticket.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/configurations/provision/switchboard_ticket.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/configurations/querys/__init__.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/configurations/querys/check_coverage.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/configurations/querys/we_call_you.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/coverage/__init__.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/coverage/adsl.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/coverage/asociatel_fiber.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/coverage/mm_fiber.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/coverage/orange_fiber.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/coverage/vdf_fiber.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/coverage_article.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/coverage_ticket.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/customer_data.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/customer_user.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/fiber_data.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/fiber_dynamic_fields.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/fiber_ticket.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/internet_data.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/internet_dynamic_fields.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/mobile_data.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/mobile_dynamic_fields.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/mobile_ticket.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/process_ticket/__init__.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/process_ticket/internet.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/process_ticket/mobile.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/process_ticket/process_ticket.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/providers.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/provision_dynamic_fields.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/responsible_data.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/router_4G_data.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/router_4G_dynamic_fields.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/router_4G_ticket.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/service.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/switchboard_data.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/switchboard_dynamic_fields.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/switchboard_header_dynamic_fields.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/switchboard_ticket.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/telecom_company.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/ticket_factory.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/ticket_types/__init__.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/ticket_types/add_data_ticket.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/ticket_types/base_change_tariff_ba_ticket.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/ticket_types/base_change_ticket.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/ticket_types/base_customer_ticket.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/ticket_types/base_ticket.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/ticket_types/change_email_ticket.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/ticket_types/change_iban_ticket.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/ticket_types/change_owner_ticket.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/ticket_types/change_pack_not_shared_data.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/ticket_types/change_personal_email_ticket.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/ticket_types/change_shared_bond_ticket.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/ticket_types/change_tariff_adsl_landline_ticket.py +0 -0
- {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
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/ticket_types/change_tariff_adsl_ticket.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/ticket_types/change_tariff_fiber_ticket.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/ticket_types/change_tariff_ticket.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/ticket_types/change_tariff_ticket_mobile_pack.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/ticket_types/change_tariff_ticket_shared_bonds.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/ticket_types/check_coverage_ticket.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/ticket_types/we_call_you_ticket.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/vf_provisioning_article.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/responses/__init__.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/responses/ticket_creation.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/services/__init__.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/services/activate_change_tarriff_mobile_tickets.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/services/base_get_ticket_by_number.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/services/change_to_confirm_ticket.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/services/get_mobile_related_tickets.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/services/get_sharing_data_mobile_tickets.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/services/get_ticket_title.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/services/mapping_mobile_minutes.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/services/mapping_services.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/services/move_sharing_data_mobile_tickets.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/services/search_tickets_mobile_change_tariff.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/services/search_tickets_service.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/services/set_SIM_recieved_mobile_ticket.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/services/set_SIM_returned_mobile_ticket.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/services/set_fiber_contract_code_mobile_ticket.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/services/unblock_mobile_pack_ticket.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/services/update_process_ticket_with_VF_provisioning.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/services/update_process_ticket_with_coverage_tickets_info_service.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/services/update_ticket_DF.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/services/update_ticket_with_provider_info.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/user_management_client/__init__.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/user_management_client/client.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/user_management_client/user_management_response.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio.egg-info/SOURCES.txt +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio.egg-info/dependency_links.txt +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio.egg-info/not-zip-safe +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio.egg-info/top_level.txt +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/setup.cfg +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/data/__init__.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/data/otrs_raw_responses.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/integration/__init__.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/integration/test_change_customer_language.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/integration/test_ticket_factory.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/integration/test_update_ticket_with_coverage_data.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/__init__.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/common_helper.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/configuration/__init__.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/configuration/changes/__init__.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/configuration/changes/test_change_tariff_ticket.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/configuration/provision/__init__.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/configuration/provision/test_adsl_ticket.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/configuration/provision/test_fiber_ticket.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/configuration/provision/test_mobile_ticket.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/process_ticket/__init__.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/process_ticket/test_internet_process_ticket.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/process_ticket/test_mobile_process_ticket.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/test_abstract_article.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/test_adsl_data.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/test_adsl_dynamic_fields.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/test_coverage_article.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/test_coverage_ticket.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/test_customer_user.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/test_fiber_data.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/test_fiber_dynamic_fields.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/test_mobile_data.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/test_mobile_dynamic_fields.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/test_mobile_paused_ticket.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/test_router_4G_data.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/test_router_4G_dynamic_fields.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/test_service.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/test_switchboard_data.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/test_switchboard_dynamic_fields.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/test_switchboard_header_dynamic_fields.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/test_telecom_company.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/test_ticket_factory.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/test_vf_provisioning_article.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/ticket_types/__init__.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/ticket_types/test_add_data.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/ticket_types/test_change_email.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/ticket_types/test_change_iban.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/ticket_types/test_change_owner.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/ticket_types/test_change_pack_not_shared_data.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/ticket_types/test_change_personal_email.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/ticket_types/test_change_tariff.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/ticket_types/test_change_tariff_adsl_landline.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/ticket_types/test_change_tariff_adsl_out_landline.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/ticket_types/test_change_tariff_fiber.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/ticket_types/test_change_tariff_mobile_pack.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/ticket_types/test_change_tariff_shared_bonds.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/ticket_types/test_check_coverage.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/ticket_types/test_shared_bond.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/ticket_types/test_we_call_you.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/responses/__init__.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/responses/test_ticket_creation.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/services/__init__.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/services/test_activate_change_tariff_mobile_tickets.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/services/test_change_to_confirm_ticket.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/services/test_get_mobile_related_tickets.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/services/test_get_sharing_data_mobile_tickets.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/services/test_mapping_mobile_minutes.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/services/test_mapping_services.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/services/test_move_sharing_data_mobile_tickets.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/services/test_search_tickets_mobile_change_tariff.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/services/test_search_tickets_service.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/services/test_set_SIM_recieved_mobile_ticket_service.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/services/test_set_SIM_returned_mobile_ticket_service.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/services/test_set_fiber_contract_code_mobile_ticket_service.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/services/test_unblock_mobile_pack_ticket.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/services/test_update_process_ticket_with_VF_provisioning.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/services/test_update_process_ticket_with_coverage_tickets_info_service.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/services/test_update_ticket_with_provider_info.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/user_management_client/__init__.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/user_management_client/test_client.py +0 -0
- {otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/user_management_client/test_user_management_response.py +0 -0
|
@@ -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
|
{otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/otrs_somconnexio/otrs_models/provision_ticket.py
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# coding: utf-8
|
|
2
|
-
|
|
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
|
-
|
|
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.
|
|
46
|
-
self.
|
|
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)
|
|
@@ -5,7 +5,7 @@ with open("README.md") as f:
|
|
|
5
5
|
README = f.read()
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
VERSION = "0.
|
|
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=[
|
|
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,
|
|
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
|
-
|
|
37
|
+
mock_adsl_article = MockProvisionArticle.return_value
|
|
38
38
|
|
|
39
|
-
ADSLTicket(service_data, customer_data, None)
|
|
39
|
+
ticket = ADSLTicket(service_data, customer_data, None)
|
|
40
|
+
ticket._build_article()
|
|
40
41
|
|
|
41
|
-
|
|
42
|
-
|
|
42
|
+
MockProvisionArticle.assert_called_once_with(
|
|
43
|
+
ticket._ticket_title(), service_data.notes
|
|
43
44
|
)
|
|
44
|
-
|
|
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,
|
|
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 =
|
|
62
|
+
mock_mobile_article = MockProvisionArticle.return_value
|
|
63
63
|
|
|
64
|
-
FiberTicket(service_data, customer_data, self.responsible_data)
|
|
64
|
+
ticket = FiberTicket(service_data, customer_data, self.responsible_data)
|
|
65
|
+
ticket._build_article()
|
|
65
66
|
|
|
66
|
-
|
|
67
|
-
|
|
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)
|
|
48
|
+
ticket = MobileTicket(mobile_data, customer_data, self.responsible_data)
|
|
49
|
+
ticket._build_article()
|
|
49
50
|
|
|
50
|
-
MockProvisionArticle.
|
|
51
|
-
|
|
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)
|
{otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/test_router_4G_ticket.py
RENAMED
|
@@ -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,
|
|
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
|
-
|
|
43
|
+
mock_provision_article = MockProvisionArticle.return_value
|
|
44
44
|
|
|
45
|
-
Router4GTicket(
|
|
46
|
-
|
|
47
|
-
)._build_article()
|
|
45
|
+
ticket = Router4GTicket(service_data, customer_data, self.responsible_data)
|
|
46
|
+
ticket._build_article()
|
|
48
47
|
|
|
49
|
-
|
|
50
|
-
|
|
48
|
+
MockProvisionArticle.assert_called_once_with(
|
|
49
|
+
ticket._ticket_title(), service_data.notes
|
|
51
50
|
)
|
|
52
|
-
|
|
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)
|
|
@@ -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
|
-
)
|
|
52
|
+
)
|
|
53
|
+
ticket._build_article()
|
|
52
54
|
|
|
53
55
|
MockProvisionArticle.assert_called_with(
|
|
54
|
-
|
|
55
|
-
|
|
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
|
{otrs_somconnexio-0.7.3 → otrs_somconnexio-0.8.0}/tests/otrs_models/test_switchboard_ticket.py
RENAMED
|
@@ -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
|
-
)
|
|
64
|
+
)
|
|
65
|
+
ticket._build_article()
|
|
66
|
+
|
|
65
67
|
MockProvisionArticle.assert_called_with(
|
|
66
|
-
|
|
67
|
-
self.service_data.
|
|
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"
|