Beispiel #1
0
def find_statements_fn(request):
    """
    Receives search requests, queries database to find all occurrences and returns these results with the correct URL
    to get directly access to the location in the discussion.

    :param request:
    :return: json conform dictionary of all occurrences

    """
    api_data = dict()
    api_data["issue"] = request.matchdict["issue"]
    api_data["mode"] = request.matchdict["type"]
    api_data["value"] = request.matchdict["value"]
    results = dbas.fuzzy_search(request, api_data=api_data)

    issue_uid = api_data["issue"]

    return_dict = dict()
    return_dict["distance_name"] = results["distance_name"]
    return_dict["values"] = []

    for statement in results["values"]:
        statement_uid = statement["statement_uid"]
        statement["issue"] = {
            "uid": issue_uid,
            "slug": resolve_issue_uid_to_slug(issue_uid)
        }
        statement["url"] = url_to_statement(
            api_data["issue"],
            statement_uid)  # TODO I think I do not use this any more
        statement["arguments"] = get_all_arguments_with_text_by_statement_id(
            statement_uid)
        return_dict["values"].append(statement)
    return return_dict
 def test_fuzzy_search_failure_mode(self):
     request = testing.DummyRequest(json_body={
         'value': 'cat',
         'type': '6',
         'statement_uid': 0,
         'issue': 2
     })
     response = fuzzy_search(request)
     self.assertIsNotNone(response)
     self.assertTrue(400, response.status_code)
Beispiel #3
0
 def test_fuzzy_search_mode_6(self):
     request = construct_dummy_request(
         json_body={
             'value': 'cat',
             'type': self.fuzzy_mode.FIND_MERGESPLIT,
             'statement_uid': 0,
             'issue': 2
         })
     response = fuzzy_search(request)
     self.assertIsNotNone(response)
     self.assertIn('values', response)
Beispiel #4
0
 def test_fuzzy_search_mode_1(self):
     request = construct_dummy_request(
         json_body={
             'value': 'cat',
             'type': self.fuzzy_mode.EDIT_STATEMENT,
             'statement_uid': 1,
             'issue': 2
         })
     response = fuzzy_search(request)
     self.assertIsNotNone(response)
     self.assertIn('values', response)
 def test_fuzzy_search_mode_4(self):
     request = testing.DummyRequest(
         json_body={
             'value': 'cat',
             'type': self.fuzzy_mode.FIND_DUPLICATE,
             'statement_uid': 0,
             'issue': 2
         })
     response = fuzzy_search(request)
     self.assertIsNotNone(response)
     self.assertIn('values', response)