Skip to content

Commit 4524fe9

Browse files
committed
Add tests for interference between first argument and ignored arguments
1 parent 7f3592c commit 4524fe9

2 files changed

Lines changed: 64 additions & 15 deletions

File tree

tests/functional/t/too/too_many_positional_arguments.py

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,26 @@ def regular_soso2(self, a, b, c, d, e, /, *, f=True):
2020
# +1: [too-many-arguments]
2121
def regular_soso3(self, /, a, b, c, d, e, *, f=True):
2222
pass
23+
# +1: [too-many-arguments]
24+
def regular_soso4(self, a, b, c, d, e, /, _f, *, g=True):
25+
pass
26+
# +1: [too-many-arguments]
27+
def regular_soso5(self, /, _a, b, c, d, e, f, *, g=True):
28+
pass
2329
def regular_okay1(self, a, b, c, d, e):
2430
pass
2531
def regular_okay2(self, a, b, c, d, e, /):
2632
pass
2733
def regular_okay3(self, *, a, b, c, d, e):
2834
pass
35+
def regular_okay4(self, a, b, c, d, e, /, _f):
36+
pass
37+
def regular_okay5(self, _a, b, c, d, e, /, f):
38+
pass
39+
def regular_okay6(self, /, _a, b, c, d, e, f):
40+
pass
41+
def regular_okay7(self, /, a, b, c, d, e, _f):
42+
pass
2943

3044

3145
# pylint: disable=missing-function-docstring, missing-module-docstring
@@ -49,6 +63,10 @@ def static_soso1(a, b, c, d, e, *, f=True):
4963
def static_soso2(a, b, c, d, e, /, *, f=True):
5064
pass
5165
@staticmethod
66+
# +1: [too-many-arguments]
67+
def static_soso3(a, b, c, d, e, /, _f, *, g=True):
68+
pass
69+
@staticmethod
5270
def static_okay1(a, b, c, d, e):
5371
pass
5472
@staticmethod
@@ -57,6 +75,12 @@ def static_okay2(a, b, c, d, e, /):
5775
@staticmethod
5876
def static_okay3(*, a, b, c, d, e):
5977
pass
78+
@staticmethod
79+
def static_okay4(a, b, c, d, e, /, _f):
80+
pass
81+
@staticmethod
82+
def static_okay5(_a, b, c, d, e, /, f):
83+
pass
6084

6185

6286
# pylint: disable=missing-function-docstring, missing-module-docstring
@@ -88,6 +112,14 @@ def class_soso2(cls, a, b, c, d, e, /, *, f=True):
88112
def class_soso3(cls, /, a, b, c, d, e, *, f=True):
89113
pass
90114
@classmethod
115+
# +1: [too-many-arguments]
116+
def class_soso4(cls, a, b, c, d, e, /, _f, *, g=True):
117+
pass
118+
@classmethod
119+
# +1: [too-many-arguments]
120+
def class_soso5(cls, /, _a, b, c, d, e, f, *, g=True):
121+
pass
122+
@classmethod
91123
def class_okay1(cls, a, b, c, d, e):
92124
pass
93125
@classmethod
@@ -96,3 +128,15 @@ def class_okay2(cls, a, b, c, d, e, /):
96128
@classmethod
97129
def class_okay3(cls, *, a, b, c, d, e):
98130
pass
131+
@classmethod
132+
def class_okay4(cls, a, b, c, d, e, /, _f):
133+
pass
134+
@classmethod
135+
def class_okay5(cls, _a, b, c, d, e, /, f):
136+
pass
137+
@classmethod
138+
def class_okay6(cls, /, _a, b, c, d, e, f):
139+
pass
140+
@classmethod
141+
def class_okay7(cls, /, a, b, c, d, e, _f):
142+
pass

tests/functional/t/too/too_many_positional_arguments.txt

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,23 @@ too-many-positional-arguments:12:4:12:21:RegularMethods.regular_fail3:Too many p
77
too-many-arguments:15:4:15:21:RegularMethods.regular_soso1:Too many arguments (6/5):UNDEFINED
88
too-many-arguments:18:4:18:21:RegularMethods.regular_soso2:Too many arguments (6/5):UNDEFINED
99
too-many-arguments:21:4:21:21:RegularMethods.regular_soso3:Too many arguments (6/5):UNDEFINED
10-
too-many-arguments:37:4:37:20:StaticMethods.static_fail1:Too many arguments (6/5):UNDEFINED
11-
too-many-positional-arguments:37:4:37:20:StaticMethods.static_fail1:Too many positional arguments (6/5):HIGH
12-
too-many-arguments:41:4:41:20:StaticMethods.static_fail2:Too many arguments (6/5):UNDEFINED
13-
too-many-positional-arguments:41:4:41:20:StaticMethods.static_fail2:Too many positional arguments (6/5):HIGH
14-
too-many-arguments:45:4:45:20:StaticMethods.static_soso1:Too many arguments (6/5):UNDEFINED
15-
too-many-arguments:49:4:49:20:StaticMethods.static_soso2:Too many arguments (6/5):UNDEFINED
16-
too-many-arguments:68:4:68:19:ClassMethods.class_fail1:Too many arguments (6/5):UNDEFINED
17-
too-many-positional-arguments:68:4:68:19:ClassMethods.class_fail1:Too many positional arguments (6/5):HIGH
18-
too-many-arguments:72:4:72:19:ClassMethods.class_fail2:Too many arguments (6/5):UNDEFINED
19-
too-many-positional-arguments:72:4:72:19:ClassMethods.class_fail2:Too many positional arguments (6/5):HIGH
20-
too-many-arguments:76:4:76:19:ClassMethods.class_fail3:Too many arguments (6/5):UNDEFINED
21-
too-many-positional-arguments:76:4:76:19:ClassMethods.class_fail3:Too many positional arguments (6/5):HIGH
22-
too-many-arguments:80:4:80:19:ClassMethods.class_soso1:Too many arguments (6/5):UNDEFINED
23-
too-many-arguments:84:4:84:19:ClassMethods.class_soso2:Too many arguments (6/5):UNDEFINED
24-
too-many-arguments:88:4:88:19:ClassMethods.class_soso3:Too many arguments (6/5):UNDEFINED
10+
too-many-arguments:24:4:24:21:RegularMethods.regular_soso4:Too many arguments (6/5):UNDEFINED
11+
too-many-arguments:27:4:27:21:RegularMethods.regular_soso5:Too many arguments (6/5):UNDEFINED
12+
too-many-arguments:51:4:51:20:StaticMethods.static_fail1:Too many arguments (6/5):UNDEFINED
13+
too-many-positional-arguments:51:4:51:20:StaticMethods.static_fail1:Too many positional arguments (6/5):HIGH
14+
too-many-arguments:55:4:55:20:StaticMethods.static_fail2:Too many arguments (6/5):UNDEFINED
15+
too-many-positional-arguments:55:4:55:20:StaticMethods.static_fail2:Too many positional arguments (6/5):HIGH
16+
too-many-arguments:59:4:59:20:StaticMethods.static_soso1:Too many arguments (6/5):UNDEFINED
17+
too-many-arguments:63:4:63:20:StaticMethods.static_soso2:Too many arguments (6/5):UNDEFINED
18+
too-many-arguments:67:4:67:20:StaticMethods.static_soso3:Too many arguments (6/5):UNDEFINED
19+
too-many-arguments:92:4:92:19:ClassMethods.class_fail1:Too many arguments (6/5):UNDEFINED
20+
too-many-positional-arguments:92:4:92:19:ClassMethods.class_fail1:Too many positional arguments (6/5):HIGH
21+
too-many-arguments:96:4:96:19:ClassMethods.class_fail2:Too many arguments (6/5):UNDEFINED
22+
too-many-positional-arguments:96:4:96:19:ClassMethods.class_fail2:Too many positional arguments (6/5):HIGH
23+
too-many-arguments:100:4:100:19:ClassMethods.class_fail3:Too many arguments (6/5):UNDEFINED
24+
too-many-positional-arguments:100:4:100:19:ClassMethods.class_fail3:Too many positional arguments (6/5):HIGH
25+
too-many-arguments:104:4:104:19:ClassMethods.class_soso1:Too many arguments (6/5):UNDEFINED
26+
too-many-arguments:108:4:108:19:ClassMethods.class_soso2:Too many arguments (6/5):UNDEFINED
27+
too-many-arguments:112:4:112:19:ClassMethods.class_soso3:Too many arguments (6/5):UNDEFINED
28+
too-many-arguments:116:4:116:19:ClassMethods.class_soso4:Too many arguments (6/5):UNDEFINED
29+
too-many-arguments:120:4:120:19:ClassMethods.class_soso5:Too many arguments (6/5):UNDEFINED

0 commit comments

Comments
 (0)