1313from clize .tests .util import Fixtures
1414
1515
16- pathlib_name = "pathlib"
17-
18-
1916_ic = parser ._implicit_converters
2017
2118
2219class FromSigTests (Fixtures ):
23- def _test (self , sig_str , typ , str_rep , attrs , * , future_features = ()):
24- pre_code = ("import pathlib; from clize import"
25- " Parameter" )
26- sig = support .s (sig_str , pre = pre_code , future_features = future_features )
20+ def _test (self , sig_str , typ , str_rep , attrs ):
21+ pre_code = "import pathlib; from clize import Parameter"
22+ sig = self ._support_s (sig_str , pre = pre_code )
2723 return self ._do_test (sig , typ , str_rep , attrs )
2824
2925 def _do_test (self , sig , typ , str_rep , attrs ):
@@ -37,6 +33,8 @@ def _do_test(self, sig, typ, str_rep, attrs):
3733 )
3834 self .assertEqual (p_attrs , attrs )
3935
36+ def _support_s (self , * args , ** kwargs ):
37+ return support .s (* args , ** kwargs )
4038
4139 pos = 'one' , parser .PositionalParameter , 'one' , {
4240 'conv' : parser .identity , 'default' : util .UNSET , 'required' : True ,
@@ -104,7 +102,7 @@ def test_vconverter(self):
104102 @parser .value_converter
105103 def converter (value ):
106104 raise NotImplementedError
107- sig = support . s ('*, par: conv' , locals = {'conv' : converter })
105+ sig = self . _support_s ('*, par: conv' , globals = {'conv' : converter })
108106 self ._do_test (sig , parser .OptionParameter , '--par=CONVERTER' , {
109107 'conv' : converter ,
110108 })
@@ -115,7 +113,7 @@ class FancyDefault(object):
115113 def __init__ (self , arg ):
116114 self .arg = arg
117115 deft = FancyDefault ('ham' )
118- sig = support . s ('*, par=default' , locals = {'default' : deft })
116+ sig = self . _support_s ('*, par=default' , globals = {'default' : deft })
119117 self ._do_test (sig , parser .OptionParameter , '[--par=FANCYDEFAULT]' , {
120118 'conv' : FancyDefault ,
121119 'default' : deft ,
@@ -125,7 +123,7 @@ def test_bad_default_good_conv(self):
125123 class UnknownDefault (object ):
126124 pass
127125 deft = UnknownDefault ()
128- sig = support . s ('*, par:str=default' , locals = {'default' : deft })
126+ sig = self . _support_s ('*, par:str=default' , globals = {'default' : deft })
129127 self ._do_test (sig , parser .OptionParameter , '[--par=STR]' , {
130128 'conv' : parser .identity ,
131129 'default' : deft ,
@@ -137,7 +135,7 @@ def method(self, arg):
137135 return self
138136 s = Spam ()
139137 conv = parser .value_converter (s .method , name = 'TCONV' )
140- sig = support . s ('*, par: conv' , locals = {'conv' : conv })
138+ sig = self . _support_s ('*, par: conv' , globals = {'conv' : conv })
141139 self ._do_test (sig , parser .OptionParameter , '--par=TCONV' , {
142140 'conv' : conv
143141 })
@@ -156,7 +154,7 @@ def conv(arg):
156154 aliases = ['--par' ]
157155 )
158156 self .assertEqual (param .get_all_names (), '--par[=CONV]' )
159- sig = support . s ('*, par: p, o=False' , locals = {'p' : param })
157+ sig = self . _support_s ('*, par: p, o=False' , globals = {'p' : param })
160158 self ._do_test (sig , parser .FlagParameter , '[--par[=CONV]]' , {
161159 'conv' : conv ,
162160 })
@@ -177,7 +175,7 @@ def conv(arg):
177175 aliases = ['--par' , '-p' ]
178176 )
179177 self .assertEqual (param .get_all_names (), '-p, --par[=CONV]' )
180- sig = support . s ('*, par: p, o=False' , locals = {'p' : param })
178+ sig = self . _support_s ('*, par: p, o=False' , globals = {'p' : param })
181179 self ._do_test (sig , parser .FlagParameter , '[-p]' , {
182180 'conv' : conv ,
183181 })
@@ -189,7 +187,7 @@ def conv(arg):
189187 {'par' : 'eggs' , 'o' : True })
190188
191189 def test_alias_multi (self ):
192- sig = support . s ('*, one: a' , locals = {'a' : ('a' , 'b' , 'abc' )})
190+ sig = self . _support_s ('*, one: a' , globals = {'a' : ('a' , 'b' , 'abc' )})
193191 param = list (sig .parameters .values ())[0 ]
194192 cparam = parser .CliSignature .convert_parameter (param )
195193 self .assertEqual (type (cparam ), parser .OptionParameter )
@@ -199,7 +197,7 @@ def test_alias_multi(self):
199197
200198 def test_param_inst (self ):
201199 param = parser .Parameter ('abc' )
202- sig = support . s ('xyz: p' , locals = {'p' : param })
200+ sig = self . _support_s ('xyz: p' , globals = {'p' : param })
203201 sparam = list (sig .parameters .values ())[0 ]
204202 cparam = parser .CliSignature .convert_parameter (sparam )
205203 self .assertTrue (cparam is param )
@@ -215,8 +213,8 @@ def noop_converter(param, annotations):
215213 raise NotImplementedError
216214
217215 sigs = [
218- support . s ('o: c' , locals = {'c' : converter }),
219- support . s ('*, o: a' , locals = {'a' : ("abc" , converter )})
216+ self . _support_s ('o: c' , globals = {'c' : converter }),
217+ self . _support_s ('*, o: a' , globals = {'a' : ("abc" , converter )})
220218 ]
221219 for sig in sigs :
222220 sparam = list (sig .parameters .values ())[0 ]
@@ -231,7 +229,7 @@ def test_parameterflag_repr(self):
231229
232230class SigTests (Fixtures ):
233231 def _test (self , sig_str , * args , ** kwargs ):
234- sig = support .s (sig_str , locals = {'P' : parser .Parameter })
232+ sig = support .s (sig_str , globals = {'P' : parser .Parameter })
235233 self ._do_test (sig , * args , ** kwargs )
236234
237235 def _do_test (self , sig , str_rep , args , posargs , kwargs ):
@@ -339,7 +337,7 @@ def test_converter_ignore(self):
339337 @parser .parameter_converter
340338 def conv (param , annotations ):
341339 return parser .Parameter .IGNORE
342- sig = support .s ('one:conv' , locals = {'conv' : conv })
340+ sig = support .s ('one:conv' , globals = {'conv' : conv })
343341 csig = parser .CliSignature .from_signature (sig )
344342 self .assertEqual (str (csig ), '' )
345343
@@ -369,39 +367,39 @@ def test_posparam_set_value_parameter_not_present(self):
369367
370368 def test_posparam_set_value_only (self ):
371369 param = parser .PositionalParameter (argument_name = 'one' , display_name = 'one' )
372- sig = support .s ('one:par' , locals = {'par' : param })
370+ sig = support .s ('one:par' , globals = {'par' : param })
373371 csig = parser .CliSignature .from_signature (sig )
374372 ba = parser .CliBoundArguments (csig , [], 'func' , args = [])
375373 param .set_value (ba , 'inserted' )
376374 self .assertEqual (ba .args , ['inserted' ])
377375
378376 def test_posparam_set_value_already_set (self ):
379377 param = parser .PositionalParameter (argument_name = 'two' , display_name = 'two' )
380- sig = support .s ('one, two:par' , locals = {'par' : param })
378+ sig = support .s ('one, two:par' , globals = {'par' : param })
381379 csig = parser .CliSignature .from_signature (sig )
382380 ba = parser .CliBoundArguments (csig , [], 'func' , args = ['one' , 'two' ])
383381 param .set_value (ba , 'inserted' )
384382 self .assertEqual (ba .args , ['one' , 'inserted' ])
385383
386384 def test_posparam_set_value_after_set (self ):
387385 param = parser .PositionalParameter (argument_name = 'two' , display_name = 'two' )
388- sig = support .s ('one, two:par' , locals = {'par' : param })
386+ sig = support .s ('one, two:par' , globals = {'par' : param })
389387 csig = parser .CliSignature .from_signature (sig )
390388 ba = parser .CliBoundArguments (csig , [], 'func' , args = ['one' ])
391389 param .set_value (ba , 'inserted' )
392390 self .assertEqual (ba .args , ['one' , 'inserted' ])
393391
394392 def test_posparam_set_value_after_default (self ):
395393 param = parser .PositionalParameter (argument_name = 'two' , display_name = 'two' , default = "two" )
396- sig = support .s ('one="one", two:par="two"' , locals = {'par' : param })
394+ sig = support .s ('one="one", two:par="two"' , globals = {'par' : param })
397395 csig = parser .CliSignature .from_signature (sig )
398396 ba = parser .CliBoundArguments (csig , [], 'func' , args = [])
399397 param .set_value (ba , 'inserted' )
400398 self .assertEqual (ba .args , ['one' , 'inserted' ])
401399
402400 def test_posparam_set_value_after_missing (self ):
403401 param = parser .PositionalParameter (argument_name = 'two' , display_name = 'two' )
404- sig = support .s ('one, two:par' , locals = {'par' : param })
402+ sig = support .s ('one, two:par' , globals = {'par' : param })
405403 csig = parser .CliSignature .from_signature (sig )
406404 ba = parser .CliBoundArguments (csig , [], 'func' , args = [])
407405 with self .assertRaises (ValueError ):
@@ -411,29 +409,29 @@ def test_vconverter_keep_default(self):
411409 @parser .value_converter
412410 def conv (arg ):
413411 return 'converted'
414- sig = support .s ('*, par:conv="default"' , locals = {'conv' : conv })
412+ sig = support .s ('*, par:conv="default"' , globals = {'conv' : conv })
415413 self ._do_test (sig , '[--par=CONV]' , (), [], {})
416414
417415 def test_vconverter_convert_value (self ):
418416 @parser .value_converter (convert_default = True )
419417 def conv (arg ):
420418 return 'c{}c' .format (arg )
421- sig = support .s ('*, par:conv="default"' , locals = {'conv' : conv })
419+ sig = support .s ('*, par:conv="default"' , globals = {'conv' : conv })
422420 self ._do_test (sig , '[--par=CONV]' , ('--par=A' ,), [], {'par' : 'cAc' })
423421 self ._do_test (sig , '[--par=CONV]' , ('--par' , 'A' ,), [], {'par' : 'cAc' })
424422
425423 def test_vconverter_convert_default (self ):
426424 @parser .value_converter (convert_default = True )
427425 def conv (arg ):
428426 return 'converted'
429- sig = support .s ('*, par:conv="default"' , locals = {'conv' : conv })
427+ sig = support .s ('*, par:conv="default"' , globals = {'conv' : conv })
430428 self ._do_test (sig , '[--par=CONV]' , (), [], {'par' : 'converted' })
431429
432430 def test_vconverter_convert_default_after_pos (self ):
433431 @parser .value_converter (convert_default = True )
434432 def conv (arg ):
435433 return 'converted'
436- sig = support .s ('first="otherdefault", par:conv="default"' , locals = {'conv' : conv })
434+ sig = support .s ('first="otherdefault", par:conv="default"' , globals = {'conv' : conv })
437435 self ._do_test (sig , '[first] [par]' , (), ['otherdefault' , 'converted' ], {})
438436
439437
@@ -578,11 +576,13 @@ def func(*args):
578576)
579577
580578
581- @unittest .skip ("mix of failing tests for now" )
582579@unittest .skipUnless (has_future_annotations , "__future__.annotations only available certain python versions" )
583580class FromSigTestsStringAnnotations (FromSigTests ):
584581 def _test (self , * args , ** kwargs ):
585- super ()._test (* args , future_features = ("annotations" ,), ** kwargs )
582+ return super ()._test (* args , ** kwargs )
583+
584+ def _support_s (self , * args , ** kwargs ):
585+ return super ()._support_s (* args , future_features = ("annotations" ,), ** kwargs )
586586
587587
588588class UnknownAnnotation (object ):
@@ -595,8 +595,8 @@ def __init__(self, arg):
595595
596596
597597class BadParamTests (Fixtures ):
598- def _test (self , sig_str , locals , exp_msg ):
599- sig = support .s (sig_str , pre = 'from clize import Parameter' , locals = locals )
598+ def _test (self , sig_str , globals , exp_msg ):
599+ sig = support .s (sig_str , pre = 'from clize import Parameter' , globals = globals )
600600 params = list (sig .parameters .values ())
601601 with self .assertRaises (ValueError ) as ar :
602602 parser .CliSignature .convert_parameter (params [0 ])
0 commit comments