13
13
from clize .tests .util import Fixtures
14
14
15
15
16
- pathlib_name = "pathlib"
17
-
18
-
19
16
_ic = parser ._implicit_converters
20
17
21
18
22
19
class 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 )
27
23
return self ._do_test (sig , typ , str_rep , attrs )
28
24
29
25
def _do_test (self , sig , typ , str_rep , attrs ):
@@ -37,6 +33,8 @@ def _do_test(self, sig, typ, str_rep, attrs):
37
33
)
38
34
self .assertEqual (p_attrs , attrs )
39
35
36
+ def _support_s (self , * args , ** kwargs ):
37
+ return support .s (* args , ** kwargs )
40
38
41
39
pos = 'one' , parser .PositionalParameter , 'one' , {
42
40
'conv' : parser .identity , 'default' : util .UNSET , 'required' : True ,
@@ -104,7 +102,7 @@ def test_vconverter(self):
104
102
@parser .value_converter
105
103
def converter (value ):
106
104
raise NotImplementedError
107
- sig = support . s ('*, par: conv' , locals = {'conv' : converter })
105
+ sig = self . _support_s ('*, par: conv' , globals = {'conv' : converter })
108
106
self ._do_test (sig , parser .OptionParameter , '--par=CONVERTER' , {
109
107
'conv' : converter ,
110
108
})
@@ -115,7 +113,7 @@ class FancyDefault(object):
115
113
def __init__ (self , arg ):
116
114
self .arg = arg
117
115
deft = FancyDefault ('ham' )
118
- sig = support . s ('*, par=default' , locals = {'default' : deft })
116
+ sig = self . _support_s ('*, par=default' , globals = {'default' : deft })
119
117
self ._do_test (sig , parser .OptionParameter , '[--par=FANCYDEFAULT]' , {
120
118
'conv' : FancyDefault ,
121
119
'default' : deft ,
@@ -125,7 +123,7 @@ def test_bad_default_good_conv(self):
125
123
class UnknownDefault (object ):
126
124
pass
127
125
deft = UnknownDefault ()
128
- sig = support . s ('*, par:str=default' , locals = {'default' : deft })
126
+ sig = self . _support_s ('*, par:str=default' , globals = {'default' : deft })
129
127
self ._do_test (sig , parser .OptionParameter , '[--par=STR]' , {
130
128
'conv' : parser .identity ,
131
129
'default' : deft ,
@@ -137,7 +135,7 @@ def method(self, arg):
137
135
return self
138
136
s = Spam ()
139
137
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 })
141
139
self ._do_test (sig , parser .OptionParameter , '--par=TCONV' , {
142
140
'conv' : conv
143
141
})
@@ -156,7 +154,7 @@ def conv(arg):
156
154
aliases = ['--par' ]
157
155
)
158
156
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 })
160
158
self ._do_test (sig , parser .FlagParameter , '[--par[=CONV]]' , {
161
159
'conv' : conv ,
162
160
})
@@ -177,7 +175,7 @@ def conv(arg):
177
175
aliases = ['--par' , '-p' ]
178
176
)
179
177
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 })
181
179
self ._do_test (sig , parser .FlagParameter , '[-p]' , {
182
180
'conv' : conv ,
183
181
})
@@ -189,7 +187,7 @@ def conv(arg):
189
187
{'par' : 'eggs' , 'o' : True })
190
188
191
189
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' )})
193
191
param = list (sig .parameters .values ())[0 ]
194
192
cparam = parser .CliSignature .convert_parameter (param )
195
193
self .assertEqual (type (cparam ), parser .OptionParameter )
@@ -199,7 +197,7 @@ def test_alias_multi(self):
199
197
200
198
def test_param_inst (self ):
201
199
param = parser .Parameter ('abc' )
202
- sig = support . s ('xyz: p' , locals = {'p' : param })
200
+ sig = self . _support_s ('xyz: p' , globals = {'p' : param })
203
201
sparam = list (sig .parameters .values ())[0 ]
204
202
cparam = parser .CliSignature .convert_parameter (sparam )
205
203
self .assertTrue (cparam is param )
@@ -215,8 +213,8 @@ def noop_converter(param, annotations):
215
213
raise NotImplementedError
216
214
217
215
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 )})
220
218
]
221
219
for sig in sigs :
222
220
sparam = list (sig .parameters .values ())[0 ]
@@ -231,7 +229,7 @@ def test_parameterflag_repr(self):
231
229
232
230
class SigTests (Fixtures ):
233
231
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 })
235
233
self ._do_test (sig , * args , ** kwargs )
236
234
237
235
def _do_test (self , sig , str_rep , args , posargs , kwargs ):
@@ -339,7 +337,7 @@ def test_converter_ignore(self):
339
337
@parser .parameter_converter
340
338
def conv (param , annotations ):
341
339
return parser .Parameter .IGNORE
342
- sig = support .s ('one:conv' , locals = {'conv' : conv })
340
+ sig = support .s ('one:conv' , globals = {'conv' : conv })
343
341
csig = parser .CliSignature .from_signature (sig )
344
342
self .assertEqual (str (csig ), '' )
345
343
@@ -369,39 +367,39 @@ def test_posparam_set_value_parameter_not_present(self):
369
367
370
368
def test_posparam_set_value_only (self ):
371
369
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 })
373
371
csig = parser .CliSignature .from_signature (sig )
374
372
ba = parser .CliBoundArguments (csig , [], 'func' , args = [])
375
373
param .set_value (ba , 'inserted' )
376
374
self .assertEqual (ba .args , ['inserted' ])
377
375
378
376
def test_posparam_set_value_already_set (self ):
379
377
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 })
381
379
csig = parser .CliSignature .from_signature (sig )
382
380
ba = parser .CliBoundArguments (csig , [], 'func' , args = ['one' , 'two' ])
383
381
param .set_value (ba , 'inserted' )
384
382
self .assertEqual (ba .args , ['one' , 'inserted' ])
385
383
386
384
def test_posparam_set_value_after_set (self ):
387
385
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 })
389
387
csig = parser .CliSignature .from_signature (sig )
390
388
ba = parser .CliBoundArguments (csig , [], 'func' , args = ['one' ])
391
389
param .set_value (ba , 'inserted' )
392
390
self .assertEqual (ba .args , ['one' , 'inserted' ])
393
391
394
392
def test_posparam_set_value_after_default (self ):
395
393
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 })
397
395
csig = parser .CliSignature .from_signature (sig )
398
396
ba = parser .CliBoundArguments (csig , [], 'func' , args = [])
399
397
param .set_value (ba , 'inserted' )
400
398
self .assertEqual (ba .args , ['one' , 'inserted' ])
401
399
402
400
def test_posparam_set_value_after_missing (self ):
403
401
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 })
405
403
csig = parser .CliSignature .from_signature (sig )
406
404
ba = parser .CliBoundArguments (csig , [], 'func' , args = [])
407
405
with self .assertRaises (ValueError ):
@@ -411,29 +409,29 @@ def test_vconverter_keep_default(self):
411
409
@parser .value_converter
412
410
def conv (arg ):
413
411
return 'converted'
414
- sig = support .s ('*, par:conv="default"' , locals = {'conv' : conv })
412
+ sig = support .s ('*, par:conv="default"' , globals = {'conv' : conv })
415
413
self ._do_test (sig , '[--par=CONV]' , (), [], {})
416
414
417
415
def test_vconverter_convert_value (self ):
418
416
@parser .value_converter (convert_default = True )
419
417
def conv (arg ):
420
418
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 })
422
420
self ._do_test (sig , '[--par=CONV]' , ('--par=A' ,), [], {'par' : 'cAc' })
423
421
self ._do_test (sig , '[--par=CONV]' , ('--par' , 'A' ,), [], {'par' : 'cAc' })
424
422
425
423
def test_vconverter_convert_default (self ):
426
424
@parser .value_converter (convert_default = True )
427
425
def conv (arg ):
428
426
return 'converted'
429
- sig = support .s ('*, par:conv="default"' , locals = {'conv' : conv })
427
+ sig = support .s ('*, par:conv="default"' , globals = {'conv' : conv })
430
428
self ._do_test (sig , '[--par=CONV]' , (), [], {'par' : 'converted' })
431
429
432
430
def test_vconverter_convert_default_after_pos (self ):
433
431
@parser .value_converter (convert_default = True )
434
432
def conv (arg ):
435
433
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 })
437
435
self ._do_test (sig , '[first] [par]' , (), ['otherdefault' , 'converted' ], {})
438
436
439
437
@@ -578,11 +576,13 @@ def func(*args):
578
576
)
579
577
580
578
581
- @unittest .skip ("mix of failing tests for now" )
582
579
@unittest .skipUnless (has_future_annotations , "__future__.annotations only available certain python versions" )
583
580
class FromSigTestsStringAnnotations (FromSigTests ):
584
581
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 )
586
586
587
587
588
588
class UnknownAnnotation (object ):
@@ -595,8 +595,8 @@ def __init__(self, arg):
595
595
596
596
597
597
class 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 )
600
600
params = list (sig .parameters .values ())
601
601
with self .assertRaises (ValueError ) as ar :
602
602
parser .CliSignature .convert_parameter (params [0 ])
0 commit comments