def setUp(self) -> None: super().setUp() add_location_type( client=self.client, name="City", properties=[ ("Mayor", "string", None, True), ("Contact", "email", None, True), ], ) self.external_id = "test_external_id" self.suffixes = ["txt", "pdf", "png"] self.tmpdir = tempfile.mkdtemp() self.location_1 = add_location( client=self.client, location_hirerchy=[("City", "Lima1")], properties_dict={ "Mayor": "Bernard King", "Contact": "*****@*****.**" }, lat=10, long=20, ) self.location_2 = add_location( client=self.client, location_hirerchy=[("City", "Lima2")], properties_dict={ "Mayor": "Bernard King", "Contact": "*****@*****.**" }, lat=10, long=20, ) self.location_with_ext_id = add_location( client=self.client, location_hirerchy=[("City", "Lima3")], properties_dict={ "Mayor": "Bernard King", "Contact": "*****@*****.**" }, lat=10, long=20, externalID=self.external_id, ) self.location_child_1 = add_location( client=self.client, location_hirerchy=[("City", "parent"), ("City", "child1")], properties_dict={ "Mayor": "Bernard King", "Contact": "*****@*****.**" }, ) self.location_child_2 = add_location( client=self.client, location_hirerchy=[("City", "parent"), ("City", "child2")], properties_dict={ "Mayor": "Bernard King", "Contact": "*****@*****.**" }, )
def setUp(self) -> None: super().setUp() self.location_types_created = [] self.location_types_created.append( add_location_type( self.client, "City", [("Mayor", "string", None, True), ("Contact", "email", None, True)], )) self.external_id = "test_external_id" self.suffixes = ["txt", "pdf", "png"] self.tmpdir = tempfile.mkdtemp() self.location_1 = add_location( self.client, [("City", "Lima1")], { "Mayor": "Bernard King", "Contact": "*****@*****.**" }, 10, 20, ) self.location_2 = add_location( self.client, [("City", "Lima2")], { "Mayor": "Bernard King", "Contact": "*****@*****.**" }, 10, 20, ) self.location_with_ext_id = add_location( self.client, [("City", "Lima3")], { "Mayor": "Bernard King", "Contact": "*****@*****.**" }, 10, 20, self.external_id, ) self.location_child_1 = add_location( self.client, [("City", "parent"), ("City", "child1")], { "Mayor": "Bernard King", "Contact": "*****@*****.**" }, ) self.location_child_2 = add_location( self.client, [("City", "parent"), ("City", "child2")], { "Mayor": "Bernard King", "Contact": "*****@*****.**" }, )
def setUp(self) -> None: super().setUp() add_location_type( client=self.client, name="City", properties=[ PropertyDefinition( property_name="Mayor", property_kind=PropertyKind.string, default_raw_value=None, is_fixed=False, ), PropertyDefinition( property_name="Contact", property_kind=PropertyKind.email, default_raw_value=None, is_fixed=False, ), ], ) self.external_id = "test_external_id" self.suffixes = ["txt", "pdf", "png"] self.tmpdir = tempfile.mkdtemp() self.location_1 = add_location( client=self.client, location_hirerchy=[("City", "Lima1")], properties_dict={"Mayor": "Bernard King", "Contact": "*****@*****.**"}, lat=10, long=20, ) self.location_2 = add_location( client=self.client, location_hirerchy=[("City", "Lima2")], properties_dict={"Mayor": "Bernard King", "Contact": "*****@*****.**"}, lat=10, long=20, ) self.location_with_ext_id = add_location( client=self.client, location_hirerchy=[("City", "Lima3")], properties_dict={"Mayor": "Bernard King", "Contact": "*****@*****.**"}, lat=10, long=20, external_id=self.external_id, ) self.location_child_1 = add_location( client=self.client, location_hirerchy=[("City", "parent"), ("City", "child1")], properties_dict={"Mayor": "Bernard King", "Contact": "*****@*****.**"}, ) self.location_child_2 = add_location( client=self.client, location_hirerchy=[("City", "parent"), ("City", "child2")], properties_dict={"Mayor": "Bernard King", "Contact": "*****@*****.**"}, )
def test_site_survey_created(self) -> None: location = add_location(self.client, [("City Center", "Lima Downtown")], {}, 10, 20) self.assertEqual(0, len(get_site_surveys(self.client, location))) completion_date = datetime.strptime("25-7-2019", "%d-%m-%Y") upload_site_survey( self.client, location, "My site survey", completion_date, os.path.join(os.path.dirname(__file__), "resources/city_center_site_survey.xlsx"), os.path.join(os.path.dirname(__file__), "resources/city_center_site_survey.json"), ) surveys = get_site_surveys(self.client, location) self.assertEqual(1, len(surveys)) survey = surveys[0] self.assertEqual("My site survey", survey.name) self.assertEqual(completion_date, survey.completionTime) self.assertIsNotNone(survey.sourceFileId) self.assertEqual(survey.sourceFileName, "city_center_site_survey.xlsx") delete_site_survey(self.client, survey) surveys = get_site_surveys(self.client, location) self.assertEqual(0, len(surveys))
def setUp(self) -> None: super().setUp() self.location_types_created = [] self.location_types_created.append( add_location_type( self.client, "City", [("Mayor", "string", None, True), ("Contact", "email", None, True)], )) self.equipment_types_created = [] self.equipment_types_created.append( add_equipment_type( self.client, "Tp-Link T1600G", "Router", [("IP", "string", None, True)], {}, [], )) self.location = add_location( self.client, [("City", "Lima")], { "Mayor": "Bernard King", "Contact": "*****@*****.**" }, 10, 20, )
def setUp(self) -> None: self.location_types_created = [] self.location_types_created.append( add_location_type( client=self.client, name="City", properties=[ ("Mayor", "string", None, True), ("Contact", "email", None, True), ], )) self.equipment_type = add_equipment_type( client=self.client, name="Tp-Link T1600G", category="Router", properties=[("IP", "string", None, True)], ports_dict={}, position_list=[], ) self.equipment_types_created = [] self.equipment_types_created.append(self.equipment_type) self.location = add_location( client=self.client, location_hirerchy=[("City", "Lima")], properties_dict={ "Mayor": "Bernard King", "Contact": "*****@*****.**" }, lat=10, long=20, )
def test_location_created_hierarchy_already_exists(self) -> None: fetched_location = add_location( client=self.client, location_hirerchy=[("City", "parent"), ("City", "child1")], properties_dict={"Mayor": "Bernard King", "Contact": "*****@*****.**"}, ) self.assertEqual(self.location_child_1, fetched_location)
def setUp(self) -> None: super().setUp() self.port_type1 = add_equipment_port_type( self.client, name="port type 1", properties=[ PropertyDefinition( property_name="port property", property_kind=PropertyKind.string, default_value="port property value", is_fixed=False, ) ], link_properties=[ PropertyDefinition( property_name="link property", property_kind=PropertyKind.string, default_value="link property value", is_fixed=False, ) ], ) add_location_type( client=self.client, name="City", properties=[ ("Mayor", "string", None, True), ("Contact", "email", None, True), ], ) add_equipment_type( client=self.client, name="Tp-Link T1600G", category="Router", properties=[("IP", "string", None, True)], ports_dict={"tp_link_port": "port type 1"}, position_list=[], ) self.location = add_location( client=self.client, location_hirerchy=[("City", "Lima")], properties_dict={"Mayor": "Bernard King", "Contact": "*****@*****.**"}, lat=10, long=20, ) self.equipment = add_equipment( client=self.client, name="TPLinkRouter", equipment_type="Tp-Link T1600G", location=self.location, properties_dict={"IP": "127.0.0.1"}, ) self.equipment_with_external_id = add_equipment( client=self.client, name="TPLinkRouterExt", equipment_type="Tp-Link T1600G", location=self.location, properties_dict={"IP": "127.0.0.1"}, external_id="12345", )
def test_location_created_already_exists(self) -> None: fetched_location = add_location( client=self.client, location_hirerchy=[("City", "Lima1")], properties_dict={"Mayor": "Bernard King", "Contact": "*****@*****.**"}, lat=10, long=20, ) self.assertEqual(self.location_1, fetched_location)
def test_cannot_create_link_if_port_occupied(self) -> None: location = add_location( self.client, [("City", "Lima")], { "Mayor": "Bernard King", "Contact": "*****@*****.**" }, 10, 20, ) router1 = add_equipment( self.client, "TPLinkRouter1", "Tp-Link T1600G", location, {"IP": "192.688.0.1"}, ) router2 = add_equipment( self.client, "TPLinkRouter2", "Tp-Link T1600G", location, {"IP": "192.688.0.2"}, ) router3 = add_equipment( self.client, "TPLinkRouter3", "Tp-Link T1600G", location, {"IP": "192.688.0.2"}, ) link = add_link(self.client, router1, "Port 1", router2, "Port 1") fetched_link1 = get_link_in_port_of_equipment(self.client, router1, "Port 1") fetched_link2 = get_link_in_port_of_equipment(self.client, router2, "Port 1") self.assertEqual(link, fetched_link1) self.assertEqual(link, fetched_link2) self.assertRaises( PortAlreadyOccupiedException, add_link, self.client, router2, "Port 1", router3, "Port 1", ) link = add_link(self.client, router2, "Port 2", router3, "Port 1") fetched_link1 = get_link_in_port_of_equipment(self.client, router2, "Port 2") fetched_link2 = get_link_in_port_of_equipment(self.client, router3, "Port 1") self.assertEqual(link, fetched_link1) self.assertEqual(link, fetched_link2)
def test_service_with_topology_created(self) -> None: location = add_location( self.client, [("Room", "Room 201")], {"Contact": "*****@*****.**"}, 10, 20 ) router1 = add_equipment( self.client, "TPLinkRouter1", "Tp-Link T1600G", location, {"IP": "192.688.0.1"}, ) router2 = add_equipment( self.client, "TPLinkRouter2", "Tp-Link T1600G", location, {"IP": "192.688.0.2"}, ) router3 = add_equipment( self.client, "TPLinkRouter3", "Tp-Link T1600G", location, {"IP": "192.688.0.3"}, ) link1 = add_link(self.client, router1, "Port 1", router2, "Port 1") link2 = add_link(self.client, router2, "Port 2", router3, "Port 1") endpoint_port = get_port(self.client, router1, "Port 2") service = add_service( self.client, name="Room 201 Internet Access", external_id="S3232", service_type="Internet Access", customer=None, properties_dict={"Address Family": "v4"}, links=[link1, link2], ) add_service_endpoint( self.client, service, endpoint_port, ServiceEndpointRole.CONSUMER ) service = get_service(self.client, service.id) self.assertEqual([endpoint_port.id], [e.port.id for e in service.endpoints]) self.assertEqual([link1.id, link2.id], [s.id for s in service.links])
def test_service_with_topology_created(self) -> None: location = add_location( client=self.client, location_hirerchy=[("Room", "Room 201")], properties_dict={"Contact": "*****@*****.**"}, lat=10, long=20, ) router1 = add_equipment( client=self.client, name="TPLinkRouter1", equipment_type="Tp-Link T1600G", location=location, properties_dict={"IP": "192.688.0.1"}, ) router2 = add_equipment( client=self.client, name="TPLinkRouter2", equipment_type="Tp-Link T1600G", location=location, properties_dict={"IP": "192.688.0.2"}, ) router3 = add_equipment( client=self.client, name="TPLinkRouter3", equipment_type="Tp-Link T1600G", location=location, properties_dict={"IP": "192.688.0.3"}, ) link1 = add_link( client=self.client, equipment_a=router1, port_name_a="Port 1", equipment_b=router2, port_name_b="Port 1", ) link2 = add_link( client=self.client, equipment_a=router2, port_name_a="Port 2", equipment_b=router3, port_name_b="Port 1", ) endpoint_port = get_port(client=self.client, equipment=router1, port_name="Port 2") service = add_service( self.client, name="Room 201 Internet Access", external_id="S3232", service_type="Internet Access", customer=None, properties_dict={"Address Family": "v4"}, links=[link1, link2], ) # TODO add service_endpoint_type api add_service_endpoint(client=self.client, service=service, port=endpoint_port) service = get_service(client=self.client, id=service.id if service is not None else "") ports = [e.port for e in service.endpoints] self.assertEqual([endpoint_port.id], [p.id if p is not None else None for p in ports]) self.assertEqual([link1.id, link2.id], [s.id for s in service.links])
def test_service_endpoint_added(self) -> None: add_equipment_port_type( self.client, name="port type 1", properties=[ PropertyDefinition( property_name="port property", property_kind=PropertyKind.string, default_raw_value="port property value", is_fixed=False, ) ], link_properties=[ PropertyDefinition( property_name="link property", property_kind=PropertyKind.string, default_raw_value="link property value", is_fixed=False, ) ], ) add_location_type( client=self.client, name="Room", properties=[ PropertyDefinition( property_name="Contact", property_kind=PropertyKind.email, default_raw_value=None, is_fixed=False, ) ], ) location = add_location( client=self.client, location_hirerchy=[("Room", "Room 201")], properties_dict={"Contact": "*****@*****.**"}, lat=10, long=20, ) equipment_type = add_equipment_type( client=self.client, name="Tp-Link T1600G", category="Router", properties=[ PropertyDefinition( property_name="IP", property_kind=PropertyKind.string, default_raw_value=None, is_fixed=False, ) ], ports_dict={ "Port 1": "port type 1", "Port 2": "port type 1" }, position_list=[], ) router1 = add_equipment( client=self.client, name="TPLinkRouter1", equipment_type=equipment_type.name, location=location, properties_dict={"IP": "192.688.0.1"}, ) edit_service_type( client=self.client, service_type=self.service_type, new_endpoints=[ ServiceEndpointDefinition( id=None, name="EndpointDefinition", role="CPE", endpoint_definition_index=0, equipment_type_id=equipment_type.id, ) ], ) endpoint_definitions = SERVICE_TYPES[ self.service_type.name].endpoint_definitions endpoints = get_service_endpoints(client=self.client, service_id=self.service.id) self.assertFalse(endpoints) endpoint_definition_id = endpoint_definitions[0].id assert (endpoint_definition_id is not None ), f"service type {self.service_type.name} has no endpoints" add_service_endpoint( client=self.client, service=self.service, equipment_id=router1.id, endpoint_definition_id=endpoint_definition_id, ) endpoints = get_service_endpoints(client=self.client, service_id=self.service.id) self.assertEqual(len(endpoints), 1)
def test_service_link_added(self) -> None: add_equipment_port_type( self.client, name="port type 1", properties=[ PropertyDefinition( property_name="port property", property_kind=PropertyKind.string, default_raw_value="port property value", is_fixed=False, ) ], link_properties=[ PropertyDefinition( property_name="link property", property_kind=PropertyKind.string, default_raw_value="link property value", is_fixed=False, ) ], ) add_location_type( client=self.client, name="Room", properties=[ PropertyDefinition( property_name="Contact", property_kind=PropertyKind.email, default_raw_value=None, is_fixed=False, ) ], ) location = add_location( client=self.client, location_hirerchy=[("Room", "Room 201")], properties_dict={"Contact": "*****@*****.**"}, lat=10, long=20, ) equipment_type = add_equipment_type( client=self.client, name="Tp-Link T1600G", category="Router", properties=[ PropertyDefinition( property_name="IP", property_kind=PropertyKind.string, default_raw_value=None, is_fixed=False, ) ], ports_dict={ "Port 1": "port type 1", "Port 2": "port type 1" }, position_list=[], ) router1 = add_equipment( client=self.client, name="TPLinkRouter1", equipment_type=equipment_type.name, location=location, properties_dict={"IP": "192.688.0.1"}, ) router2 = add_equipment( client=self.client, name="TPLinkRouter2", equipment_type=equipment_type.name, location=location, properties_dict={"IP": "192.688.0.2"}, ) router3 = add_equipment( client=self.client, name="TPLinkRouter3", equipment_type=equipment_type.name, location=location, properties_dict={"IP": "192.688.0.3"}, ) link1 = add_link( client=self.client, equipment_a=router1, port_name_a="Port 1", equipment_b=router2, port_name_b="Port 1", ) link2 = add_link( client=self.client, equipment_a=router2, port_name_a="Port 2", equipment_b=router3, port_name_b="Port 1", ) links = get_service_links(client=self.client, service_id=self.service.id) self.assertFalse(links) for link in [link1, link2]: add_service_link(client=self.client, service_id=self.service.id, link_id=link.id) links = get_service_links(client=self.client, service_id=self.service.id) self.assertEqual(len(links), 2)
def setUp(self) -> None: self.port_type1 = add_equipment_port_type( self.client, name="port type 1", properties=[ PropertyDefinition( property_name="port property", property_kind=PropertyKind.string, default_value="port property value", is_fixed=False, ) ], link_properties=[ PropertyDefinition( property_name="link property", property_kind=PropertyKind.string, default_value="link property value", is_fixed=False, ) ], ) self.location_types_created = [] self.location_types_created.append( add_location_type( client=self.client, name="City", properties=[ ("Mayor", "string", None, True), ("Contact", "email", None, True), ], ) ) self.location = add_location( client=self.client, location_hirerchy=[("City", "Lima")], properties_dict={"Mayor": "Bernard King", "Contact": "*****@*****.**"}, lat=10, long=20, ) self.equipment_types_created = [] self.equipment_types_created.append( add_equipment_type( client=self.client, name="Tp-Link T1600G", category="Router", properties=[("IP", "string", None, True)], ports_dict={"Port 1": "port type 1", "Port 2": "port type 1"}, position_list=[], ) ) self.equipment1 = add_equipment( client=self.client, name="TPLinkRouter1", equipment_type="Tp-Link T1600G", location=self.location, properties_dict={"IP": "192.688.0.1"}, ) self.equipment2 = add_equipment( client=self.client, name="TPLinkRouter2", equipment_type="Tp-Link T1600G", location=self.location, properties_dict={"IP": "192.688.0.2"}, ) self.equipment3 = add_equipment( client=self.client, name="TPLinkRouter3", equipment_type="Tp-Link T1600G", location=self.location, properties_dict={"IP": "192.688.0.2"}, )
def test_service_with_topology_created(self) -> None: add_equipment_port_type( self.client, name="port type 1", properties=[ PropertyDefinition( property_name="port property", property_kind=PropertyKind.string, default_value="port property value", is_fixed=False, ) ], link_properties=[ PropertyDefinition( property_name="link property", property_kind=PropertyKind.string, default_value="link property value", is_fixed=False, ) ], ) add_location_type( client=self.client, name="Room", properties=[("Contact", "email", None, True)], ) location = add_location( client=self.client, location_hirerchy=[("Room", "Room 201")], properties_dict={"Contact": "*****@*****.**"}, lat=10, long=20, ) add_equipment_type( client=self.client, name="Tp-Link T1600G", category="Router", properties=[("IP", "string", None, True)], ports_dict={ "Port 1": "port type 1", "Port 2": "port type 1" }, position_list=[], ) router1 = add_equipment( client=self.client, name="TPLinkRouter1", equipment_type="Tp-Link T1600G", location=location, properties_dict={"IP": "192.688.0.1"}, ) router2 = add_equipment( client=self.client, name="TPLinkRouter2", equipment_type="Tp-Link T1600G", location=location, properties_dict={"IP": "192.688.0.2"}, ) router3 = add_equipment( client=self.client, name="TPLinkRouter3", equipment_type="Tp-Link T1600G", location=location, properties_dict={"IP": "192.688.0.3"}, ) link1 = add_link( client=self.client, equipment_a=router1, port_name_a="Port 1", equipment_b=router2, port_name_b="Port 1", ) link2 = add_link( client=self.client, equipment_a=router2, port_name_a="Port 2", equipment_b=router3, port_name_b="Port 1", ) endpoint_port = get_port(client=self.client, equipment=router1, port_name="Port 2") for link in [link1, link2]: add_service_link(client=self.client, service_id=self.service.id, link_id=link.id) # TODO add service_endpoint_defintion api add_service_endpoint( client=self.client, service_id=self.service.id, equipment_id="1", endpoint_definition_id="1", ) ports = [e.port for e in self.service.endpoints] self.assertEqual([endpoint_port.id], [p.id if p is not None else None for p in ports]) self.assertEqual([link1.id, link2.id], [s.id for s in self.service.links])