def test_build_search_query(self): """Tests building analyze query""" search_cfg = { "MinShouldMatch": "80%", "BoostAA": 10, "BoostLaunch": 5, "BoostUniqueID": 3, "MaxQueryTerms": 50, "SearchLogsMinShouldMatch": "90%", "SearchLogsMinSimilarity": 0.9, } error_logging_level = 40000 es_client = esclient.EsClient(search_cfg=search_cfg) search_req = launch_objects.SearchLogs(**{ "launchId": 1, "launchName": "launch 1", "itemId": 2, "projectId": 3, "filteredLaunchIds": [1, 2, 3], "logMessages": ["log message 1"], "logLines": -1}) query_from_esclient = es_client.build_search_query(search_req, "log message 1") demo_query = TestEsQuery.build_demo_search_query(search_cfg, search_req, "log message 1", error_logging_level) query_from_esclient.should.equal(demo_query)
def test_build_search_query(self): """Tests building analyze query""" search_cfg = TestEsQuery.get_default_search_config() search_req = launch_objects.SearchLogs( **{ "launchId": 1, "launchName": "launch 1", "itemId": 2, "projectId": 3, "filteredLaunchIds": [1, 2, 3], "logMessages": ["log message 1"], "logLines": -1 }) query_from_esclient = EsQueryBuilder(search_cfg, 40000).build_search_query( search_req, "log message 1") demo_query = utils.get_fixture(self.query_search_logs, to_json=True) query_from_esclient.should.equal(demo_query)
def prepare_search_logs(search_data): """Function for deserializing search logs object""" return launch_objects.SearchLogs(**search_data)
def test_search_logs(self): """Test search logs""" tests = [ { "test_calls": [ { "method": httpretty.GET, "uri": "/1", "status": HTTPStatus.OK, }, { "method": httpretty.GET, "uri": "/1/_search", "status": HTTPStatus.OK, "content_type": "application/json", "rq": utils.get_fixture(self.search_logs_rq), "rs": utils.get_fixture(self.no_hits_search_rs), }, ], "rq": launch_objects.SearchLogs(launchId=1, launchName="Launch 1", itemId=3, projectId=1, filteredLaunchIds=[1], logMessages=["error"], logLines=-1), "expected_count": 0 }, { "test_calls": [ { "method": httpretty.GET, "uri": "/1", "status": HTTPStatus.OK, }, ], "rq": launch_objects.SearchLogs(launchId=1, launchName="Launch 1", itemId=3, projectId=1, filteredLaunchIds=[1], logMessages=[""], logLines=-1), "expected_count": 0 }, { "test_calls": [ { "method": httpretty.GET, "uri": "/1", "status": HTTPStatus.OK, }, { "method": httpretty.GET, "uri": "/1/_search", "status": HTTPStatus.OK, "content_type": "application/json", "rq": utils.get_fixture(self.search_logs_rq), "rs": utils.get_fixture(self.one_hit_search_rs_search_logs), }, ], "rq": launch_objects.SearchLogs(launchId=1, launchName="Launch 1", itemId=3, projectId=1, filteredLaunchIds=[1], logMessages=["error"], logLines=-1), "expected_count": 0 }, { "test_calls": [ { "method": httpretty.GET, "uri": "/1", "status": HTTPStatus.OK, }, { "method": httpretty.GET, "uri": "/1/_search", "status": HTTPStatus.OK, "content_type": "application/json", "rq": utils.get_fixture(self.search_logs_rq_not_found), "rs": utils.get_fixture(self.two_hits_search_rs_search_logs), }, ], "rq": launch_objects.SearchLogs(launchId=1, launchName="Launch 1", itemId=3, projectId=1, filteredLaunchIds=[1], logMessages=["error occured once"], logLines=-1), "expected_count": 1 }, ] for idx, test in enumerate(tests): with sure.ensure('Error in the test case number: {0}', idx): self._start_server(test["test_calls"]) search_service = SearchService( app_config=self.app_config, search_cfg=self.get_default_search_config()) response = search_service.search_logs(test["rq"]) response.should.have.length_of(test["expected_count"]) TestSearchService.shutdown_server(test["test_calls"])