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
Exemple #2
0
    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"]
Exemple #3
0
    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
Exemple #4
0
    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
Exemple #5
0
    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)
Exemple #6
0
    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
Exemple #7
0
    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