def test_crud_operations(self): time.sleep(2) # Create the first beacon beacon1 = self.invoke("/v1/beacons/create_beacon", Parameters.from_tuples("beacon", PropertyReflector.get_properties(BEACON1))) assert beacon1 is not None assert beacon1['id'] == BEACON1.id assert beacon1['site_id'] == BEACON1.site_id assert beacon1['udi'] == BEACON1.udi assert beacon1['type'] == BEACON1.type assert beacon1['label'] == BEACON1.label assert beacon1['center'] is not None # Create the second beacon beacon2 = self.invoke("/v1/beacons/create_beacon", Parameters.from_tuples("beacon", PropertyReflector.get_properties(BEACON2))) assert beacon2 is not None assert beacon2['id'] == BEACON2.id assert beacon2['site_id'] == BEACON2.site_id assert beacon2['udi'] == BEACON2.udi assert beacon2['type'] == BEACON2.type assert beacon2['label'] == BEACON2.label assert beacon2['center'] is not None # Get all beacons page = self.invoke("/v1/beacons/get_beacons", Parameters.from_tuples("beacons")) assert page is not None assert len(page['data']) == 2 beacon1 = page['data'][0] # Update the beacon beacon1['label'] = "ABC" beacon = self.invoke("/v1/beacons/update_beacon", Parameters.from_tuples("beacon", beacon1)) assert beacon is not None assert beacon1['id'] == beacon['id'] assert "ABC" == beacon['label'] # Get beacon by udi beacon = self.invoke("/v1/beacons/get_beacon_by_udi", Parameters.from_tuples("udi", beacon1['udi'])) assert beacon is not None assert beacon['id'] == beacon1['id'] # Calculate position for one beacon position = self.invoke("/v1/beacons/calculate_position", Parameters.from_tuples("site_id", '1', "udis", ['00001'])) assert position is not None assert "Point" == position["type"] assert 2 == len(position["coordinates"]) assert 0 == position["coordinates"][0] assert 0 == position["coordinates"][1] # Delete beacon self.invoke("/v1/beacons/delete_beacon_by_id", Parameters.from_tuples("id", beacon1['id'])) # Try to get deleted beacon beacon = self.invoke("/v1/beacons/get_beacon_by_id", Parameters.from_tuples("id", beacon1['id'])) assert not beacon
def test_get_properties(self): obj = StubClass() names = PropertyReflector.get_property_names(obj) # assert 2 == len(names) assert "public_field" in names assert "public_prop" in names map = PropertyReflector.get_properties(obj) # assert 2 == len(map) assert "ABC" == map["public_field"] assert None is not map["public_prop"]
def test_get_property(self): obj = StubClass() value = PropertyReflector.get_property(obj, "_private_field") # assert None is value value = PropertyReflector.get_property(obj, "public_field") assert "ABC" == value value = PropertyReflector.get_property(obj, "public_prop") assert value is not None
def test_get_property(self): obj = TestClass() value = PropertyReflector.get_property(obj, "_private_field") assert None == value value = PropertyReflector.get_property(obj, "public_field") assert "ABC" == value value = PropertyReflector.get_property(obj, "public_prop") assert None != value
def _convert_from_public(self, value: Any) -> Any: """ Convert object value from public to internal format. :param value: an object in public format to convert. :return: converted object in internal format. """ if isinstance(value, dict): return value return PropertyReflector.get_properties(value)
def _convert_from_public(self, value: Any) -> Any: """ Convert object value from public to internal format. :param value: an object in public format to convert. :return: converted object in internal format. """ if isinstance(value, dict): return deepcopy(value) value = PropertyReflector.get_properties(value) if value.get('id'): value['_id'] = value.get('id') or value.get('_id') value.pop('id', None) return value
def test_crud_operations(self): time.sleep(1) # Create the first beacon response = self.invoke( "/v1/beacons/create_beacon", Parameters.from_tuples("beacon", PropertyReflector.get_properties(BEACON1))) beacon1 = BeaconV1(**response) assert beacon1 is not None assert beacon1.id == BEACON1.id assert beacon1.site_id == BEACON1.site_id assert beacon1.udi == BEACON1.udi assert beacon1.type == BEACON1.type assert beacon1.label == BEACON1.label assert beacon1.center is not None # Create the second beacon response = self.invoke( "/v1/beacons/create_beacon", Parameters.from_tuples("beacon", PropertyReflector.get_properties(BEACON2))) beacon2 = BeaconV1(**response) assert beacon2 is not None assert beacon2.id == BEACON2.id assert beacon2.site_id == BEACON2.site_id assert beacon2.udi == BEACON2.udi assert beacon2.type == BEACON2.type assert beacon2.label == BEACON2.label assert beacon2.center is not None # Get all beacons page = self.invoke("/v1/beacons/get_beacons", Parameters.from_tuples("beacons")) assert page is not None assert len(page['data']) == 2 beacon1 = BeaconV1(**page['data'][0]) # Update the beacon beacon1.label = "ABC" response = self.invoke( "/v1/beacons/update_beacon", Parameters.from_tuples("beacon", PropertyReflector.get_properties(beacon1))) beacon = BeaconV1(**response) assert beacon is not None assert beacon1.id == beacon.id assert "ABC" == beacon.label # Get beacon by udi response = self.invoke("/v1/beacons/get_beacon_by_udi", Parameters.from_tuples("udi", beacon1.udi)) beacon = BeaconV1(**response) assert beacon is not None assert beacon.id == beacon1.id # Calculate position for one beacon position = self.invoke( "/v1/beacons/calculate_position", Parameters.from_tuples("site_id", '1', "udis", ['00001'])) assert position is not None assert "Point" == position["type"] assert 2 == len(position["coordinates"]) assert 0 == position["coordinates"][0] assert 0 == position["coordinates"][1] # Delete beacon self.invoke("/v1/beacons/delete_beacon_by_id", Parameters.from_tuples("id", beacon1.id)) # Try to get deleted beacon beacon = self.invoke("/v1/beacons/get_beacon_by_id", Parameters.from_tuples("id", beacon1.id)) assert beacon is False