Exemplo n.º 1
0
    def test_select_lighting_at_r1(self):
        pattern = {"placement": "R1", "type": "lighting"}

        result = filtering.filter_items(self.TEST_DATA, pattern)

        self.assertEqual(len(result), 1)

        self.assertIn(self.TEST_DATA[0], result)
Exemplo n.º 2
0
    def test_select_lighting(self):
        pattern = {"type": "lighting"}

        result = filtering.filter_items(self.TEST_DATA, pattern)

        self.assertEqual(len(result), 2)

        self.assertIn(self.TEST_DATA[0], result)
        self.assertIn(self.TEST_DATA[2], result)
Exemplo n.º 3
0
    def test_select_by_r1(self):
        pattern = {"placement": "R1"}

        result = filtering.filter_items(self.TEST_DATA, pattern)

        self.assertEqual(len(result), 2)

        self.assertIn(self.TEST_DATA[0], result)
        self.assertIn(self.TEST_DATA[3], result)
Exemplo n.º 4
0
async def things_get_handler(request: web.Request) -> web.Response:
    """
    A handler for GET requests for path /things/

    :param request: request to be processed
    :return: a response to request
    """
    thing_service = request.app['thing_service']

    try:
        query_params = request.query

        if 'placement' in query_params:
            things = thing_service.select_by_placement(
                query_params['placement']
            )
        else:
            things = thing_service.view_all()

        if 'type' in query_params:
            things = filtering.filter_items(
                things,
                {'type': query_params['type']}
            )

        return make_json_response({"things": things})

    except AuthInsufficientPrivilegesError:
        error_dict = ERROR_TEMPLATES[2110].to_dict()

        error_dict["user_message"] = error_dict["user_message"].format(action="viewing of things data")

        return make_json_response(
            status=403,
            content=error_dict
        )
Exemplo n.º 5
0
 def test_empty_pattern_match(self):
     pattern = {}
     self.assertEqual(
         filtering.filter_items(self.TEST_DATA, pattern),
         self.TEST_DATA
     )
Exemplo n.º 6
0
    def test_select_field_value_mismatch(self):
        pattern = {"placement": "R100000"}

        result = filtering.filter_items(self.TEST_DATA, pattern)

        self.assertTrue(len(result) == 0)
Exemplo n.º 7
0
    def test_select_field_name_mismatch(self):
        pattern = {"something_new": "R1"}

        result = filtering.filter_items(self.TEST_DATA, pattern)

        self.assertTrue(len(result) == 0)