aboutsummaryrefslogtreecommitdiff
path: root/tests/functional/i/invalid/g/invalid_getnewargs_ex_returned.py
diff options
context:
space:
mode:
authorDan Albert <danalbert@google.com>2021-11-18 15:29:53 -0800
committerDan Albert <danalbert@google.com>2021-11-18 15:29:53 -0800
commit612950b6eae36a543f4645d743f5fd02839c9788 (patch)
tree3031e603522c7cb51097774097abf2ed3dea119a /tests/functional/i/invalid/g/invalid_getnewargs_ex_returned.py
parent3c1d8f114801a00b92ab062ceef2244d502bb7ae (diff)
parentd98e6e8adcdc5ebcd9c863f630e748cdba639b0a (diff)
downloadpylint-612950b6eae36a543f4645d743f5fd02839c9788.tar.gz
Merge upstream tag v2.11.1.
Test: None Bug: http://b/206656351 Change-Id: I7831112fa3014bf7998432f9e1ac96be18fca60c
Diffstat (limited to 'tests/functional/i/invalid/g/invalid_getnewargs_ex_returned.py')
-rw-r--r--tests/functional/i/invalid/g/invalid_getnewargs_ex_returned.py85
1 files changed, 85 insertions, 0 deletions
diff --git a/tests/functional/i/invalid/g/invalid_getnewargs_ex_returned.py b/tests/functional/i/invalid/g/invalid_getnewargs_ex_returned.py
new file mode 100644
index 000000000..ad94b8805
--- /dev/null
+++ b/tests/functional/i/invalid/g/invalid_getnewargs_ex_returned.py
@@ -0,0 +1,85 @@
+"""Check invalid value returned by __getnewargs_ex__ """
+
+# pylint: disable=too-few-public-methods,missing-docstring,no-self-use,import-error, useless-object-inheritance, use-dict-literal
+import six
+
+from missing import Missing
+
+
+class FirstGoodGetNewArgsEx(object):
+ """__getnewargs_ex__ returns <type 'tuple'>"""
+
+ def __getnewargs_ex__(self):
+ return ((1,), {"2": "2"})
+
+
+class SecondGoodGetNewArgsEx(object):
+ """__getnewargs_ex__ returns <type 'tuple'>"""
+
+ def __getnewargs_ex__(self):
+ return (tuple(), dict())
+
+
+class GetNewArgsExMetaclass(type):
+ def __getnewargs_ex__(cls):
+ return ((1,), {"2": "2"})
+
+
+@six.add_metaclass(GetNewArgsExMetaclass)
+class ThirdGoodGetNewArgsEx(object):
+ """GetNewArgsEx through the metaclass."""
+
+
+class FirstBadGetNewArgsEx(object):
+ """ __getnewargs_ex__ returns an integer """
+
+ def __getnewargs_ex__(self): # [invalid-getnewargs-ex-returned]
+ return 1
+
+
+class SecondBadGetNewArgsEx(object):
+ """ __getnewargs_ex__ returns tuple with incorrect arg length"""
+
+ def __getnewargs_ex__(self): # [invalid-getnewargs-ex-returned]
+ return (tuple(1), dict(x="y"), 1)
+
+
+class ThirdBadGetNewArgsEx(object):
+ """ __getnewargs_ex__ returns tuple with wrong type for first arg """
+
+ def __getnewargs_ex__(self): # [invalid-getnewargs-ex-returned]
+ return (dict(x="y"), dict(x="y"))
+
+
+class FourthBadGetNewArgsEx(object):
+ """ __getnewargs_ex__ returns tuple with wrong type for second arg """
+
+ def __getnewargs_ex__(self): # [invalid-getnewargs-ex-returned]
+ return ((1, ), (1, ))
+
+
+class FifthBadGetNewArgsEx(object):
+ """ __getnewargs_ex__ returns tuple with wrong type for both args """
+
+ def __getnewargs_ex__(self): # [invalid-getnewargs-ex-returned]
+ return ({'x': 'y'}, (2,))
+
+
+class SixthBadGetNewArgsEx(object):
+ """ __getnewargs_ex__ returns node which does not have 'value' in AST """
+
+ def __getnewargs_ex__(self): # [invalid-getnewargs-ex-returned]
+ return lambda: (1, 2)
+
+
+class AmbigousGetNewArgsEx(object):
+ """ Uninferable return value """
+
+ __getnewargs_ex__ = lambda self: Missing
+
+
+class AnotherAmbiguousGetNewArgsEx(object):
+ """Potential uninferable return value"""
+
+ def __getnewargs_ex__(self):
+ return tuple(Missing)