diff options
author | Dan Albert <danalbert@google.com> | 2021-11-18 15:29:53 -0800 |
---|---|---|
committer | Dan Albert <danalbert@google.com> | 2021-11-18 15:29:53 -0800 |
commit | 612950b6eae36a543f4645d743f5fd02839c9788 (patch) | |
tree | 3031e603522c7cb51097774097abf2ed3dea119a /tests/functional/i/invalid/g/invalid_getnewargs_ex_returned.py | |
parent | 3c1d8f114801a00b92ab062ceef2244d502bb7ae (diff) | |
parent | d98e6e8adcdc5ebcd9c863f630e748cdba639b0a (diff) | |
download | pylint-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.py | 85 |
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) |