@@ -139,31 +139,70 @@ def test_23_content_type_variants(self):
139139 content_type = self .stack .content_type (COMPLEX_CONTENT_TYPE_UID )
140140 entry = content_type .variants (VARIANT_UID ).find ()
141141 if entry and 'entries' in entry and len (entry ['entries' ]) > 0 :
142- publish_details = entry ['entries' ][0 ].get ('publish_details' , {})
143- if 'variants' in publish_details :
144- self .assertIn ('variants' , publish_details )
142+ publish_details = entry ['entries' ][0 ].get ('publish_details' , [])
143+ # variant_uid is inside each publish_details array element
144+ if isinstance (publish_details , list ) and len (publish_details ) > 0 :
145+ # Check if any publish_details has variant_uid
146+ has_variant = any ('variant_uid' in pd for pd in publish_details )
147+ if has_variant :
148+ self .assertTrue (has_variant , "Should have variant_uid in publish_details" )
149+ # Verify it matches the requested variant
150+ variant_uids = [pd .get ('variant_uid' ) for pd in publish_details if 'variant_uid' in pd ]
151+ self .assertIn (VARIANT_UID , variant_uids , f"Expected variant_uid { VARIANT_UID } " )
152+ else :
153+ self .skipTest ("variant_uid not found in publish_details" )
145154 else :
146- self .skipTest ("Variants not available in publish_details (feature may not be enabled) " )
155+ self .skipTest ("publish_details not in expected format " )
147156
148157 def test_24_entry_variants (self ):
149158 content_type = self .stack .content_type (COMPLEX_CONTENT_TYPE_UID )
150159 entry = content_type .entry (COMPLEX_ENTRY_UID ).variants (VARIANT_UID ).fetch ()
151- self .assertIn ('variants' , entry ['entry' ]['publish_details' ])
160+ # variant_uid is inside each publish_details array element
161+ publish_details = entry ['entry' ].get ('publish_details' , [])
162+ if isinstance (publish_details , list ) and len (publish_details ) > 0 :
163+ # Check if any publish_details has variant_uid
164+ has_variant = any ('variant_uid' in pd for pd in publish_details )
165+ self .assertTrue (has_variant , "Should have variant_uid in publish_details" )
166+ # Verify it matches the requested variant
167+ variant_uids = [pd .get ('variant_uid' ) for pd in publish_details if 'variant_uid' in pd ]
168+ self .assertIn (VARIANT_UID , variant_uids , f"Expected variant_uid { VARIANT_UID } " )
169+ else :
170+ self .skipTest ("publish_details not in expected format" )
152171
153172 def test_25_content_type_variants_with_has_hash_variant (self ):
154173 content_type = self .stack .content_type (COMPLEX_CONTENT_TYPE_UID )
155174 entry = content_type .variants ([VARIANT_UID ]).find ()
156175 if entry and 'entries' in entry and len (entry ['entries' ]) > 0 :
157- publish_details = entry ['entries' ][0 ].get ('publish_details' , {})
158- if 'variants' in publish_details :
159- self .assertIn ('variants' , publish_details )
176+ publish_details = entry ['entries' ][0 ].get ('publish_details' , [])
177+ # variant_uid is inside each publish_details array element
178+ if isinstance (publish_details , list ) and len (publish_details ) > 0 :
179+ # Check if any publish_details has variant_uid
180+ has_variant = any ('variant_uid' in pd for pd in publish_details )
181+ if has_variant :
182+ self .assertTrue (has_variant , "Should have variant_uid in publish_details" )
183+ # Verify it matches the requested variant
184+ variant_uids = [pd .get ('variant_uid' ) for pd in publish_details if 'variant_uid' in pd ]
185+ self .assertIn (VARIANT_UID , variant_uids , f"Expected variant_uid { VARIANT_UID } " )
186+ else :
187+ self .skipTest ("variant_uid not found in publish_details" )
160188 else :
161- self .skipTest ("Variants not available in publish_details (feature may not be enabled) " )
189+ self .skipTest ("publish_details not in expected format " )
162190
163- def test_25_content_type_entry_variants_with_has_hash_variant (self ):
191+ def test_26_content_type_entry_variants_with_list (self ):
192+ """Test variants with list of variant UIDs"""
164193 content_type = self .stack .content_type (COMPLEX_CONTENT_TYPE_UID ).entry (COMPLEX_ENTRY_UID )
165194 entry = content_type .variants ([VARIANT_UID ]).fetch ()
166- self .assertIn ('variants' , entry ['entry' ]['publish_details' ])
195+ # variant_uid is inside each publish_details array element
196+ publish_details = entry ['entry' ].get ('publish_details' , [])
197+ if isinstance (publish_details , list ) and len (publish_details ) > 0 :
198+ # Check if any publish_details has variant_uid
199+ has_variant = any ('variant_uid' in pd for pd in publish_details )
200+ self .assertTrue (has_variant , "Should have variant_uid in publish_details" )
201+ # Verify it matches the requested variant
202+ variant_uids = [pd .get ('variant_uid' ) for pd in publish_details if 'variant_uid' in pd ]
203+ self .assertIn (VARIANT_UID , variant_uids , f"Expected variant_uid { VARIANT_UID } " )
204+ else :
205+ self .skipTest ("publish_details not in expected format" )
167206
168207 # ========== Additional Test Cases ==========
169208
0 commit comments