def test_build_query_from_params(self): # Test with all default parameters config = self.get_dummy_context() params = {} params = scommon.get_parameters(params) query = ElasticSearchBase.build_query_from_params(params, config) self.assertTrue(query) self.assertTrue("query" in query) self.assertTrue("size" in query) self.assertTrue("from" in query) # Searching for a term in a specific field and with a specific product params = { "terms": "hang", "fields": "dump", "search_mode": "contains", "products": "fennec" } params = scommon.get_parameters(params) query = ElasticSearchBase.build_query_from_params(params, config) self.assertTrue(query) self.assertTrue("query" in query) self.assertTrue("filtered" in query["query"]) filtered = query["query"]["filtered"] self.assertTrue("query" in filtered) self.assertTrue("wildcard" in filtered["query"]) self.assertTrue("dump" in filtered["query"]["wildcard"]) dump_term = filtered["query"]["wildcard"]["dump"] self.assertEqual(dump_term, "*hang*") self.assertTrue("filter" in filtered) self.assertTrue("and" in filtered["filter"])
def test_build_query_from_params(self): # Test with all default parameters config = self.get_dummy_context() params = {} params = scommon.get_parameters(params) query = ElasticSearchBase.build_query_from_params(params, config) self.assertTrue(query) self.assertTrue("query" in query) self.assertTrue("size" in query) self.assertTrue("from" in query) # Searching for a term in a specific field and with a specific product params = { "terms": "hang", "fields": "dump", "search_mode": "contains", "products": "fennec" } params = scommon.get_parameters(params) query = ElasticSearchBase.build_query_from_params(params, config) self.assertTrue(query) self.assertTrue("query" in query) self.assertTrue("filtered" in query["query"]) filtered = query["query"]["filtered"] self.assertTrue("query" in filtered) self.assertTrue("wildcard" in filtered["query"]) self.assertTrue("dump" in filtered["query"]["wildcard"]) dump_term = filtered["query"]["wildcard"]["dump"] self.assertEqual(dump_term, "*hang*") self.assertTrue("filter" in filtered) self.assertTrue("and" in filtered["filter"])
def test_build_query_from_params(): """ Test ElasticSearchBase.build_query_from_params() """ # Test with all default parameters args = { "config": get_dummy_context() } search = ElasticSearchBase(**args) params = {} params = scommon.get_parameters(params) query = ElasticSearchBase.build_query_from_params(params) assert query, "build_query_from_params returned a bad value: %s" % query assert "query" in query, ( "query is malformed, 'query' key missing: %s" % query) assert "size" in query, ( "query is malformed, 'size' key missing: %s" % query) assert "from" in query, ( "query is malformed, 'from' key missing: %s" % query) # Searching for a term in a specific field and with a specific product params = { "terms": "hang", "fields": "dump", "search_mode": "contains", "products": "fennec" } params = scommon.get_parameters(params) query = ElasticSearchBase.build_query_from_params(params) assert query, "build_query_from_params returned a bad value: %s" % query assert "query" in query, ( "query is malformed, 'query' key missing: %s" % query) assert "filtered" in query["query"], ( "query is malformed, 'filtered' key missing: %s" % query) filtered = query["query"]["filtered"] assert "query" in filtered, ( "query is malformed, 'query' key missing: %s" % query) assert "wildcard" in filtered["query"], ( "query is malformed, 'wildcard' key missing: %s" % query) assert "dump" in filtered["query"]["wildcard"], ( "query is malformed, 'dump' key missing: %s" % query) dump_term = filtered["query"]["wildcard"]["dump"] assert "*hang*" == dump_term, ( "query is malformed, value for wildcard is wrong: %s" % query) assert "filter" in filtered, ( "query is malformed, 'filter' key missing: %s" % query) assert "and" in filtered["filter"], ( "query is malformed, 'and' key missing: %s" % query)
def test_build_query_from_params(self): # Test with all default parameters config = self.get_dummy_context() params = {} params = scommon.get_parameters(params) query = ElasticSearchBase.build_query_from_params(params, config) self.assertTrue(query) self.assertTrue("query" in query) self.assertTrue("size" in query) self.assertTrue("from" in query) # Searching for a term in a specific field and with a specific product params = { "terms": "hang", "fields": "dump", "search_mode": "contains", "products": "fennec" } params = scommon.get_parameters(params) query = ElasticSearchBase.build_query_from_params(params, config) self.assertTrue(query) self.assertTrue("query" in query) self.assertTrue("filtered" in query["query"]) filtered = query["query"]["filtered"] self.assertTrue("query" in filtered) self.assertTrue("wildcard" in filtered["query"]) self.assertTrue("dump" in filtered["query"]["wildcard"]) dump_term = filtered["query"]["wildcard"]["dump"] self.assertEqual(dump_term, "*hang*") self.assertTrue("filter" in filtered) self.assertTrue("and" in filtered["filter"]) # Test versions params = { "products": "WaterWolf", "versions": "WaterWolf:1.0a1" } params = scommon.get_parameters(params) params['versions_info'] = { 'WaterWolf:1.0a1': { "version_string": "1.0a1", "product_name": "WaterWolf", "major_version": "1.0a1", "release_channel": "nightly-water", "build_id": None } } query = ElasticSearchBase.build_query_from_params(params, config) filtered = query["query"]["filtered"] self.assertTrue("and" in filtered["filter"]) and_filter_str = json.dumps(filtered["filter"]['and']) self.assertTrue('WaterWolf' in and_filter_str) self.assertTrue('1.0a1' in and_filter_str) self.assertTrue('nightly-water' in and_filter_str) # Test versions with an empty release channel in versions_info params = { "products": "WaterWolf", "versions": "WaterWolf:2.0" } params = scommon.get_parameters(params) params['versions_info'] = { 'WaterWolf:2.0': { "version_string": "2.0", "product_name": "WaterWolf", "major_version": "2.0", "release_channel": None, "build_id": None } } query = ElasticSearchBase.build_query_from_params(params, config) filtered = query["query"]["filtered"] self.assertTrue("and" in filtered["filter"]) and_filter_str = json.dumps(filtered["filter"]['and']) self.assertTrue('WaterWolf' in and_filter_str) self.assertTrue('2.0' in and_filter_str)
def test_build_query_from_params(self): # Test with all default parameters config = self.get_dummy_context() params = {} params = scommon.get_parameters(params) query = ElasticSearchBase.build_query_from_params(params, config) self.assertTrue(query) self.assertTrue("query" in query) self.assertTrue("size" in query) self.assertTrue("from" in query) # Searching for a term in a specific field and with a specific product params = { "terms": "hang", "fields": "dump", "search_mode": "contains", "products": "fennec" } params = scommon.get_parameters(params) query = ElasticSearchBase.build_query_from_params(params, config) self.assertTrue(query) self.assertTrue("query" in query) self.assertTrue("filtered" in query["query"]) filtered = query["query"]["filtered"] self.assertTrue("query" in filtered) self.assertTrue("wildcard" in filtered["query"]) self.assertTrue( "processed_crash.dump" in filtered["query"]["wildcard"]) dump_term = filtered["query"]["wildcard"]["processed_crash.dump"] self.assertEqual(dump_term, "*hang*") self.assertTrue("filter" in filtered) self.assertTrue("and" in filtered["filter"]) # Test versions params = {"products": "WaterWolf", "versions": "WaterWolf:1.0a1"} params = scommon.get_parameters(params) params["versions_info"] = { "WaterWolf:1.0a1": { "product_version_id": 1, "version_string": "1.0a1", "product_name": "WaterWolf", "major_version": "1.0a1", "release_channel": "nightly-water", "build_id": None, "is_rapid_beta": False, "is_from_rapid_beta": False, "from_beta_version": "WaterWolf:1.0a1", } } query = ElasticSearchBase.build_query_from_params(params, config) filtered = query["query"]["filtered"] self.assertTrue("and" in filtered["filter"]) and_filter_str = json.dumps(filtered["filter"]['and']) self.assertTrue('WaterWolf' in and_filter_str) self.assertTrue('1.0a1' in and_filter_str) self.assertTrue('nightly-water' in and_filter_str) # Test versions with an empty release channel in versions_info params = {"products": "WaterWolf", "versions": "WaterWolf:2.0"} params = scommon.get_parameters(params) params['versions_info'] = { 'WaterWolf:2.0': { "version_string": "2.0", "product_name": "WaterWolf", "major_version": "2.0", "release_channel": None, "build_id": None, "is_rapid_beta": False, "is_from_rapid_beta": False, "from_beta_version": "WaterWolf:2.0", } } query = ElasticSearchBase.build_query_from_params(params, config) filtered = query["query"]["filtered"] self.assertTrue("and" in filtered["filter"]) and_filter_str = json.dumps(filtered["filter"]['and']) self.assertTrue('WaterWolf' in and_filter_str) self.assertTrue('2.0' in and_filter_str)