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)
Ejemplo n.º 3
0
def prepare_search_logs(search_data):
    """Function for deserializing search logs object"""
    return launch_objects.SearchLogs(**search_data)
Ejemplo n.º 4
0
    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"])