disable raise ... from ... unittest in py3 (but other syntax checks still work)
[cython.git] / tests / run / non_dict_kwargs_T470.pyx
1 __doc__ = u"""
2 >>> func(**{'a' : 7})
3 True
4 >>> func(**SubDict())
5 True
6
7 >>> call_non_dict_test()
8 True
9 >>> call_non_dict_test_kw()
10 True
11
12 >>> call_sub_dict_test()
13 True
14 >>> call_sub_dict_test_kw()
15 True
16 """
17
18 import sys
19
20 if sys.version_info >= (2,6):
21     __doc__ += u"""
22 >>> func(**NonDict())
23 True
24 """
25
26 def func(**kwargs):
27     return type(kwargs) is dict and kwargs['a'] == 7
28
29
30 class NonDict(object):
31    def __getitem__(self, k):
32        assert k == 'a'
33        return 7
34    def keys(self):
35        return ['a']
36
37 def call_non_dict_test():
38     return func(**NonDict())
39
40 def call_non_dict_test_kw():
41     return func(a=5, **NonDict())
42
43
44 class SubDict(dict):
45     def __init__(self):
46         self['a'] = 7
47
48 def call_sub_dict_test():
49     return func(**SubDict())
50
51 def call_sub_dict_test_kw():
52     return func(a=5, **SubDict())