1717pytestmark = [pytest .mark .usefixtures ("updated_dsc_component_state_scope_session" , "model_registry_namespace" )]
1818MODEL_NAME_ARTIFACT_SEARCH = "RedHatAI/Llama-3.1-8B-Instruct"
1919
20+
2021class TestSearchArtifactsByFilterQuery :
2122 @pytest .mark .parametrize (
2223 "randomly_picked_model_from_catalog_api_by_source, invalid_filter_query" ,
@@ -45,7 +46,7 @@ def test_search_artifacts_by_invalid_filter_query(
4546 model_catalog_rest_url : list [str ],
4647 model_registry_rest_headers : dict [str , str ],
4748 randomly_picked_model_from_catalog_api_by_source : tuple [dict , str , str ],
48- invalid_filter_query : str ,
49+ invalid_filter_query : str ,
4950 ):
5051 """
5152 Tests the API's response to invalid filter queries syntax when searching artifacts.
@@ -64,38 +65,52 @@ def test_search_artifacts_by_invalid_filter_query(
6465 page_size = 1 ,
6566 )
6667
67- LOGGER .info (f"Successfully validated that invalid artifact filter query '{ invalid_filter_query } ' raises an error" )
68+ LOGGER .info (
69+ f"Successfully validated that invalid artifact filter query '{ invalid_filter_query } ' raises an error"
70+ )
6871
6972 @pytest .mark .parametrize (
7073 "randomly_picked_model_from_catalog_api_by_source, filter_query, expected_value, logic_type" ,
7174 [
7275 pytest .param (
73- {"catalog_id" : VALIDATED_CATALOG_ID , "header_type" : "registry" ,
74- "model_name" : MODEL_NAME_ARTIFACT_SEARCH },
76+ {
77+ "catalog_id" : VALIDATED_CATALOG_ID ,
78+ "header_type" : "registry" ,
79+ "model_name" : MODEL_NAME_ARTIFACT_SEARCH ,
80+ },
7581 "hardware_type.string_value = 'ABC-1234'" ,
7682 None ,
7783 None ,
7884 id = "test_valid_artifact_filter_query_no_results" ,
7985 ),
8086 pytest .param (
81- {"catalog_id" : VALIDATED_CATALOG_ID , "header_type" : "registry" ,
82- "model_name" : MODEL_NAME_ARTIFACT_SEARCH },
87+ {
88+ "catalog_id" : VALIDATED_CATALOG_ID ,
89+ "header_type" : "registry" ,
90+ "model_name" : MODEL_NAME_ARTIFACT_SEARCH ,
91+ },
8392 "requests_per_second.double_value > 15.0" ,
8493 [{"key_name" : "requests_per_second" , "key_type" : "double_value" , "comparison" : "min" , "value" : 15.0 }],
8594 "and" ,
8695 id = "test_performance_min_filter" ,
8796 ),
8897 pytest .param (
89- {"catalog_id" : VALIDATED_CATALOG_ID , "header_type" : "registry" ,
90- "model_name" : MODEL_NAME_ARTIFACT_SEARCH },
98+ {
99+ "catalog_id" : VALIDATED_CATALOG_ID ,
100+ "header_type" : "registry" ,
101+ "model_name" : MODEL_NAME_ARTIFACT_SEARCH ,
102+ },
91103 "hardware_count.int_value = 8" ,
92104 [{"key_name" : "hardware_count" , "key_type" : "int_value" , "comparison" : "exact" , "value" : 8 }],
93105 "and" ,
94106 id = "test_hardware_exact_filter" ,
95107 ),
96108 pytest .param (
97- {"catalog_id" : VALIDATED_CATALOG_ID , "header_type" : "registry" ,
98- "model_name" : MODEL_NAME_ARTIFACT_SEARCH },
109+ {
110+ "catalog_id" : VALIDATED_CATALOG_ID ,
111+ "header_type" : "registry" ,
112+ "model_name" : MODEL_NAME_ARTIFACT_SEARCH ,
113+ },
99114 "(hardware_type.string_value = 'H100') AND (ttft_p99.double_value < 200)" ,
100115 [
101116 {"key_name" : "hardware_type" , "key_type" : "string_value" , "comparison" : "exact" , "value" : "H100" },
@@ -105,8 +120,11 @@ def test_search_artifacts_by_invalid_filter_query(
105120 id = "test_combined_hardware_performance_filter_and_operation" ,
106121 ),
107122 pytest .param (
108- {"catalog_id" : VALIDATED_CATALOG_ID , "header_type" : "registry" ,
109- "model_name" : MODEL_NAME_ARTIFACT_SEARCH },
123+ {
124+ "catalog_id" : VALIDATED_CATALOG_ID ,
125+ "header_type" : "registry" ,
126+ "model_name" : MODEL_NAME_ARTIFACT_SEARCH ,
127+ },
110128 "(tps_mean.double_value <260) OR (hardware_type.string_value = 'A100-80')" ,
111129 [
112130 {"key_name" : "tps_mean" , "key_type" : "double_value" , "comparison" : "max" , "value" : 260 },
@@ -150,10 +168,12 @@ def test_filter_query_advanced_artifact_search(
150168 )
151169
152170 if expected_value is None :
153- # Simple validation of length and size for basic filter queries
171+ # Simple validation of length and size for basic filter queries
154172 assert len (result ["items" ]) >= 0 , f"Filter query '{ filter_query } ' should return valid results"
155173 assert result ["size" ] >= 0 , f"Size should be non-negative for filter query '{ filter_query } '"
156- LOGGER .info (f"Successfully validated that filter query '{ filter_query } ' returns { len (result ['items' ])} artifacts" )
174+ LOGGER .info (
175+ f"Successfully validated that filter query '{ filter_query } ' returns { len (result ['items' ])} artifacts"
176+ )
157177 else :
158178 # Advanced validation using criteria matching
159179 all_artifacts = result ["items" ]
@@ -172,6 +192,8 @@ def test_filter_query_advanced_artifact_search(
172192 raise ValueError (f"Invalid logic_type: { logic_type } . Must be 'and' or 'or'" )
173193
174194 if validation_result :
175- LOGGER .info (f"For Model: { model_name } , { logic_type .upper ()} validation completed successfully for { len (all_artifacts )} artifacts" )
195+ LOGGER .info (
196+ f"For Model: { model_name } , { logic_type .upper ()} validation completed successfully for { len (all_artifacts )} artifacts"
197+ )
176198 else :
177- assert False , f"{ logic_type .upper ()} filter validation failed for model { model_name } "
199+ assert False , f"{ logic_type .upper ()} filter validation failed for model { model_name } "
0 commit comments