@@ -55,13 +55,13 @@ def test_014_setting_retry_strategy_api(self):
5555
5656 def test_01_assets_query_initial_run (self ):
5757 result = self .asset_query .find ()
58- if result is not None :
59- assets = result ['assets' ]
60- for item in assets :
61- if item ['title' ] == 'if_icon-72-lightning_316154_(1).png' :
62- global ASSET_UID
63- ASSET_UID = item ['uid' ]
64- self .assertEqual ( 8 , len (assets ))
58+ self . assertIsNotNone ( result )
59+ assets = result ['assets' ]
60+ for item in assets :
61+ if item ['title' ] == 'if_icon-72-lightning_316154_(1).png' :
62+ global ASSET_UID
63+ ASSET_UID = item ['uid' ]
64+ self .assertGreaterEqual ( len (assets ), 8 )
6565
6666 def test_02_asset_method (self ):
6767 self .asset = self .stack .asset (uid = ASSET_UID )
@@ -117,14 +117,37 @@ def test_08_support_include_fallback(self):
117117 self .assertEqual ({'environment' : 'development' ,
118118 'include_fallback' : 'true' }, asset_params )
119119
120+ def test_08a_asset_fields_single_asset (self ):
121+ """Test single asset asset_fields sets asset_params"""
122+ self .asset = self .stack .asset (uid = ASSET_UID or 'test_asset_uid' )
123+ self .asset .asset_fields ('user_defined_fields' , 'visual_markups' )
124+ self .assertEqual (['user_defined_fields' , 'visual_markups' ],
125+ self .asset .asset_params ['asset_fields[]' ])
126+
127+ def test_08b_asset_fields_single_asset_chained_calls (self ):
128+ """Test single asset asset_fields with chained calls"""
129+ self .asset = self .stack .asset (uid = ASSET_UID or 'test_asset_uid' )
130+ self .asset .asset_fields ('user_defined_fields' ).asset_fields ('visual_markups' )
131+ self .assertEqual (['user_defined_fields' , 'visual_markups' ],
132+ self .asset .asset_params ['asset_fields[]' ])
133+
134+ def test_08c_asset_fields_single_asset_all_supported_values (self ):
135+ """Test single asset asset_fields with all supported values"""
136+ self .asset = self .stack .asset (uid = ASSET_UID or 'test_asset_uid' )
137+ self .asset .asset_fields ('user_defined_fields' , 'embedded_metadata' ,
138+ 'ai_generated_metadata' , 'visual_markups' )
139+ self .assertEqual (
140+ ['user_defined_fields' , 'embedded_metadata' , 'ai_generated_metadata' , 'visual_markups' ],
141+ self .asset .asset_params ['asset_fields[]' ])
142+
120143 ############################################
121144 # ==== Asset Query ====
122145 ############################################
123146
124147 def test_09_assets_query (self ):
125148 result = self .asset_query .find ()
126- if result is not None :
127- self .assertEqual ( 8 , len (result ['assets' ]))
149+ self . assertIsNotNone ( result )
150+ self .assertGreaterEqual ( len (result ['assets' ]), 8 )
128151
129152 def test_10_assets_base_query_where_exclude_title (self ):
130153 query = self .asset_query .where (
@@ -211,6 +234,46 @@ def test_25_include_metadata(self):
211234 self .assertTrue (
212235 self .asset_query .asset_query_params .__contains__ ('include_metadata' ))
213236
237+ def test_25a_asset_query_asset_fields_single_field (self ):
238+ """Test asset_query asset_fields with a single field"""
239+ query = self .asset_query .asset_fields ('user_defined_fields' )
240+ self .assertEqual (['user_defined_fields' ],
241+ query .asset_query_params ['asset_fields[]' ])
242+
243+ def test_25b_asset_query_asset_fields_multiple_fields (self ):
244+ """Test asset_query asset_fields with multiple fields"""
245+ query = self .asset_query .asset_fields ('user_defined_fields' , 'visual_markups' )
246+ self .assertEqual (['user_defined_fields' , 'visual_markups' ],
247+ query .asset_query_params ['asset_fields[]' ])
248+
249+ def test_25c_asset_query_asset_fields_chained_calls (self ):
250+ """Test asset_query asset_fields with chained calls"""
251+ query = (self .asset_query
252+ .asset_fields ('user_defined_fields' )
253+ .asset_fields ('visual_markups' ))
254+ self .assertEqual (['user_defined_fields' , 'visual_markups' ],
255+ query .asset_query_params ['asset_fields[]' ])
256+
257+ def test_25d_asset_query_asset_fields_all_supported_values (self ):
258+ """Test asset_query asset_fields with all supported values"""
259+ query = (self .asset_query
260+ .asset_fields ('user_defined_fields' , 'embedded_metadata' ,
261+ 'ai_generated_metadata' , 'visual_markups' ))
262+ self .assertEqual (
263+ ['user_defined_fields' , 'embedded_metadata' , 'ai_generated_metadata' , 'visual_markups' ],
264+ query .asset_query_params ['asset_fields[]' ])
265+
266+ def test_25e_asset_query_asset_fields_with_other_params (self ):
267+ """Test asset_query asset_fields combined with include_metadata and locale"""
268+ query = (self .asset_query
269+ .asset_fields ('user_defined_fields' , 'visual_markups' )
270+ .include_metadata ()
271+ .locale ('en-us' ))
272+ self .assertEqual (['user_defined_fields' , 'visual_markups' ],
273+ query .asset_query_params ['asset_fields[]' ])
274+ self .assertEqual ('true' , query .asset_query_params ['include_metadata' ])
275+ self .assertEqual ('en-us' , query .asset_query_params ['locale' ])
276+
214277 def test_26_where_with_include_count_and_pagination (self ):
215278 """Test combination of where, include_count, skip, and limit for assets"""
216279 query = (self .asset_query
0 commit comments