def diff_searches_route():
    """
    Get searches diff
    ---
    tags:
      - search
    parameters:
      - in: query
        name: first_search_id
        required: true
        schema:
          type: string
      - in: query
        name: second_search_id
        required: true
        schema:
          type: string
    responses:
      200:
        description: products data; {'errors': false, 'result': []}
      400:
        description: errors; {'errors': true, **errors}
    """
    url_query = request.args
    result, code = diff_searches_controller(url_query=url_query)
    return jsonify(result), code
 def test_diff_searches_controller_identical_id(self,
                                                diff_searches_service):
     """
     Test diff searches controller if 'first_search_id' == 'second_search_id'
     """
     url_query: dict = {'first_search_id': 2, 'second_search_id': 2}
     data, status_code = diff_searches_controller(url_query=url_query)
     self.assertEqual(400, status_code)
     self.assertEqual({'errors': True, 'identical_ids': True}, data)
 def test_diff_searches_controller_without_first_search_id(
         self, diff_searches_service):
     """
     Test diff searches controller if 'first_search_id' not given
     """
     url_query: dict = {'second_search_id': 2}
     data, status_code = diff_searches_controller(url_query=url_query)
     self.assertEqual(400, status_code)
     self.assertEqual({'errors': True, 'first_search_id': False}, data)
 def test_diff_searches_controller_invalid_query(self,
                                                 diff_searches_service):
     """
     Test diff searches controller if url query is empty
     """
     url_query: dict = {}
     data, status_code = diff_searches_controller(url_query=url_query)
     self.assertEqual(400, status_code)
     self.assertEqual({'errors': True, 'url_query': False}, data)
 def test_diff_searches_controller_valid_query(self, diff_searches_service):
     """
     Test diff searches controller if url query is valid
     """
     url_query: dict = {
         'first_search_id': 1,
         'second_search_id': 2,
     }
     data, status_code = diff_searches_controller(url_query=url_query)
     self.assertEqual(200, status_code)
 def test_diff_searches_controller_string_params(self,
                                                 diff_searches_service):
     """
     Test diff searches controller if params is not a number strings
     """
     url_query: dict = {
         'first_search_id': 'first',
         'second_search_id': 'second'
     }
     data, status_code = diff_searches_controller(url_query=url_query)
     self.assertEqual(400, status_code)
     self.assertEqual({'errors': True, 'search_id_type': True}, data)