@@ -139,6 +139,9 @@ def setUpClass(cls):
139139 "gg" : {
140140 "alias" : "g" ,
141141 },
142+ "hh" : {
143+ "default" : False ,
144+ }
142145 },
143146 "filters" : {
144147 "f1" : "attr:at1 in [5,6,7]" ,
@@ -207,13 +210,25 @@ def setUpClass(cls):
207210 "variants" : {
208211 "nonexistent" : "apply" ,
209212 }
213+ },
214+ "r11" : {
215+ "filter" : "attr:nonexistent" ,
216+ "variants" : {
217+ "hh" : True ,
218+ },
219+ },
220+ "r12" : {
221+ "filter" : "attr:be_bad" ,
222+ "variants" : {
223+ "hh" : "badvariant" ,
224+ }
210225 }
211226 },
212227 },
213228 )
214229
215230 def test_valid_config_high_level (self ):
216- self .assertSetEqual (set (self ._valid_config .flags ), {"a" , "b" , "c" , "cc" , "d" , "e" , "f" , "g" , "h" , "gg" })
231+ self .assertSetEqual (set (self ._valid_config .flags ), {"a" , "b" , "c" , "cc" , "d" , "e" , "f" , "g" , "h" , "gg" , "hh" })
217232 self .assertDictEqual (self ._valid_config .flags ["a" ].metadata , {"category" : "simple" , "deprecated" : False , "revision" : 22 })
218233 self .assertEqual (self ._valid_config .flags ["a" ].name , "a" )
219234 self .assertTrue (self ._valid_config .flags ["a" ].type is bool )
@@ -246,14 +261,15 @@ def test_valid_const_config(self):
246261 ("cc" , {"at1" : 5 }, "const_rule" , "r5" , "med" ), # alias of c
247262 ("gg" , {}, "const_rule" , "r9" , 9 ),
248263 ("g" , {}, "const_rule" , "r9" , 9 ), # setting rule against alias sets it against the original flag
264+ ("hh" , {"be_bad" : True }, "default" , "" , False ), # rule r11 has invalid variant
249265 ]
250266
251267 for flag , attrs , reason , rule , variant in cases :
252268 with self .subTest (f"flag={ flag } , attrs={ attrs } " ):
253269 ev = self ._valid_config .flags [flag ].eval (attrs )
254- self .assertEqual (ev .variant , variant )
255- self .assertEqual (ev .reason , reason )
256- self .assertEqual (ev .rule , rule )
270+ self .assertEqual (ev .variant , variant , msg = f"flag= { flag } , attrs= { attrs } " )
271+ self .assertEqual (ev .reason , reason , msg = f"flag= { flag } , attrs= { attrs } " )
272+ self .assertEqual (ev .rule , rule , msg = f"flag= { flag } , attrs= { attrs } " )
257273
258274
259275class TestInvalidConfigs (unittest .TestCase ):
@@ -318,7 +334,6 @@ def test_invalid_rules_def(self):
318334
319335 cases = [
320336 ({}, ValidationError , "." ),
321- ({"variants" : {"a" : 4 }}, ValueError , "unknown flag/variant" ), # non-existing variant
322337 ({"split_group" : 12 }, ValidationError , "." ),
323338 ({"variants" : {"a" : 4 }, "split_group" : 12 }, ValidationError , "." ), # cannot combine split_group with variants
324339 ({"metadata" : "abc" }, ValidationError , "." ),
0 commit comments