|
11 | 11 | from bpython.test.fodder import encoding_utf8
|
12 | 12 |
|
13 | 13 | pypy = "PyPy" in sys.version
|
| 14 | +_is_py311 = sys.version_info[:2] >= (3, 11) |
14 | 15 |
|
15 | 16 | try:
|
16 | 17 | import numpy
|
@@ -53,38 +54,32 @@ def test_parsekeywordpairs(self):
|
53 | 54 | def fails(spam=["-a", "-b"]):
|
54 | 55 | pass
|
55 | 56 |
|
56 |
| - default_arg_repr = "['-a', '-b']" |
57 |
| - self.assertEqual( |
58 |
| - str(["-a", "-b"]), |
59 |
| - default_arg_repr, |
60 |
| - "This test is broken (repr does not match), fix me.", |
61 |
| - ) |
62 |
| - |
63 | 57 | argspec = inspection.getfuncprops("fails", fails)
|
| 58 | + self.assertIsNotNone(argspec) |
64 | 59 | defaults = argspec.argspec.defaults
|
65 |
| - self.assertEqual(str(defaults[0]), default_arg_repr) |
| 60 | + self.assertEqual(str(defaults[0]), '["-a", "-b"]') |
66 | 61 |
|
67 | 62 | def test_pasekeywordpairs_string(self):
|
68 | 63 | def spam(eggs="foo, bar"):
|
69 | 64 | pass
|
70 | 65 |
|
71 | 66 | defaults = inspection.getfuncprops("spam", spam).argspec.defaults
|
72 |
| - self.assertEqual(repr(defaults[0]), "'foo, bar'") |
| 67 | + self.assertEqual(repr(defaults[0]), '"foo, bar"') |
73 | 68 |
|
74 | 69 | def test_parsekeywordpairs_multiple_keywords(self):
|
75 | 70 | def spam(eggs=23, foobar="yay"):
|
76 | 71 | pass
|
77 | 72 |
|
78 | 73 | defaults = inspection.getfuncprops("spam", spam).argspec.defaults
|
79 | 74 | self.assertEqual(repr(defaults[0]), "23")
|
80 |
| - self.assertEqual(repr(defaults[1]), "'yay'") |
| 75 | + self.assertEqual(repr(defaults[1]), '"yay"') |
81 | 76 |
|
82 | 77 | def test_pasekeywordpairs_annotation(self):
|
83 | 78 | def spam(eggs: str = "foo, bar"):
|
84 | 79 | pass
|
85 | 80 |
|
86 | 81 | defaults = inspection.getfuncprops("spam", spam).argspec.defaults
|
87 |
| - self.assertEqual(repr(defaults[0]), "'foo, bar'") |
| 82 | + self.assertEqual(repr(defaults[0]), '"foo, bar"') |
88 | 83 |
|
89 | 84 | def test_get_encoding_ascii(self):
|
90 | 85 | self.assertEqual(inspection.get_encoding(encoding_ascii), "ascii")
|
@@ -134,8 +129,15 @@ def test_getfuncprops_print(self):
|
134 | 129 | self.assertIn("file", props.argspec.kwonly)
|
135 | 130 | self.assertIn("flush", props.argspec.kwonly)
|
136 | 131 | self.assertIn("sep", props.argspec.kwonly)
|
137 |
| - self.assertEqual(props.argspec.kwonly_defaults["file"], "sys.stdout") |
138 |
| - self.assertEqual(props.argspec.kwonly_defaults["flush"], "False") |
| 132 | + if _is_py311: |
| 133 | + self.assertEqual( |
| 134 | + repr(props.argspec.kwonly_defaults["file"]), "None" |
| 135 | + ) |
| 136 | + else: |
| 137 | + self.assertEqual( |
| 138 | + repr(props.argspec.kwonly_defaults["file"]), "sys.stdout" |
| 139 | + ) |
| 140 | + self.assertEqual(repr(props.argspec.kwonly_defaults["flush"]), "False") |
139 | 141 |
|
140 | 142 | @unittest.skipUnless(
|
141 | 143 | numpy is not None and numpy.__version__ >= "1.18",
|
@@ -173,12 +175,12 @@ def fun_annotations(number: int, lst: List[int] = []) -> List[int]:
|
173 | 175 | props = inspection.getfuncprops("fun", fun)
|
174 | 176 | self.assertEqual(props.func, "fun")
|
175 | 177 | self.assertEqual(props.argspec.args, ["number", "lst"])
|
176 |
| - self.assertEqual(props.argspec.defaults[0], []) |
| 178 | + self.assertEqual(repr(props.argspec.defaults[0]), "[]") |
177 | 179 |
|
178 | 180 | props = inspection.getfuncprops("fun_annotations", fun_annotations)
|
179 | 181 | self.assertEqual(props.func, "fun_annotations")
|
180 | 182 | self.assertEqual(props.argspec.args, ["number", "lst"])
|
181 |
| - self.assertEqual(props.argspec.defaults[0], []) |
| 183 | + self.assertEqual(repr(props.argspec.defaults[0]), "[]") |
182 | 184 |
|
183 | 185 | def test_issue_966_class_method(self):
|
184 | 186 | class Issue966(Sequence):
|
@@ -215,7 +217,7 @@ def bmethod(cls, number, lst):
|
215 | 217 | )
|
216 | 218 | self.assertEqual(props.func, "cmethod")
|
217 | 219 | self.assertEqual(props.argspec.args, ["number", "lst"])
|
218 |
| - self.assertEqual(props.argspec.defaults[0], []) |
| 220 | + self.assertEqual(repr(props.argspec.defaults[0]), "[]") |
219 | 221 |
|
220 | 222 | def test_issue_966_static_method(self):
|
221 | 223 | class Issue966(Sequence):
|
@@ -252,7 +254,7 @@ def bmethod(number, lst):
|
252 | 254 | )
|
253 | 255 | self.assertEqual(props.func, "cmethod")
|
254 | 256 | self.assertEqual(props.argspec.args, ["number", "lst"])
|
255 |
| - self.assertEqual(props.argspec.defaults[0], []) |
| 257 | + self.assertEqual(repr(props.argspec.defaults[0]), "[]") |
256 | 258 |
|
257 | 259 |
|
258 | 260 | class A:
|
|
0 commit comments