diff options
Diffstat (limited to 'tests/functional/r/recursion')
12 files changed, 141 insertions, 0 deletions
diff --git a/tests/functional/r/recursion/recursion_error_2667.py b/tests/functional/r/recursion/recursion_error_2667.py new file mode 100644 index 000000000..585cf7f2f --- /dev/null +++ b/tests/functional/r/recursion/recursion_error_2667.py @@ -0,0 +1,9 @@ +"""Add regression test for https://github.com/PyCQA/pylint/issues/2667""" +# pylint: disable=missing-docstring, too-few-public-methods + +class MyClass: + def __init__(self): + self._slice = slice(0, 10) + + def incr(self): + self._slice = slice(0, self._slice.stop + 1) diff --git a/tests/functional/r/recursion/recursion_error_2836.py b/tests/functional/r/recursion/recursion_error_2836.py new file mode 100644 index 000000000..9be68b265 --- /dev/null +++ b/tests/functional/r/recursion/recursion_error_2836.py @@ -0,0 +1,18 @@ +# pylint: disable=missing-docstring +class Data: + def __init__(self): + self.shape = [None, 17] + + @property + def ndim(self): + return len(self.shape) + + def copy_move_axis(self, old_axis): + if old_axis < 0: + old_axis += self.ndim + assert old_axis >= 0 + assert 0 <= old_axis < self.ndim + + new_shape = [None] * self.ndim + self.shape = new_shape + return self diff --git a/tests/functional/r/recursion/recursion_error_2861.py b/tests/functional/r/recursion/recursion_error_2861.py new file mode 100644 index 000000000..03e0a5444 --- /dev/null +++ b/tests/functional/r/recursion/recursion_error_2861.py @@ -0,0 +1,9 @@ +# pylint: disable=missing-docstring,redefined-builtin,unsubscriptable-object +# pylint: disable=invalid-name,too-few-public-methods,attribute-defined-outside-init +class Repository: + def _transfer(self, bytes=-1): + self._bytesTransfered = 0 + bufff = True + while bufff and (bytes < 0 or self._bytesTransfered < bytes): + bufff = bufff[: bytes - self._bytesTransfered] + self._bytesTransfered += len(bufff) diff --git a/tests/functional/r/recursion/recursion_error_2899.py b/tests/functional/r/recursion/recursion_error_2899.py new file mode 100644 index 000000000..aa01f2aca --- /dev/null +++ b/tests/functional/r/recursion/recursion_error_2899.py @@ -0,0 +1,9 @@ +# pylint: disable=global-statement,missing-docstring,blacklisted-name +foo = "test" + + +def broken(): + global foo + + bar = len(foo) + foo = foo[bar] diff --git a/tests/functional/r/recursion/recursion_error_2906.py b/tests/functional/r/recursion/recursion_error_2906.py new file mode 100644 index 000000000..062109672 --- /dev/null +++ b/tests/functional/r/recursion/recursion_error_2906.py @@ -0,0 +1,14 @@ +"""Recursion error for https://github.com/PyCQA/pylint/issues/2906""" +# pylint: disable=blacklisted-name,global-statement,invalid-name,missing-docstring +lst = [] + + +def foo(): + lst.append(0) + + +def bar(): + global lst + + length = len(lst) + lst += [length] diff --git a/tests/functional/r/recursion/recursion_error_3152.py b/tests/functional/r/recursion/recursion_error_3152.py new file mode 100644 index 000000000..97ec190e8 --- /dev/null +++ b/tests/functional/r/recursion/recursion_error_3152.py @@ -0,0 +1,7 @@ +"""Check that we do not crash with a recursion error""" +import setuptools + + +# pylint: disable=missing-docstring,too-few-public-methods +class Custom(setuptools.Command): + pass diff --git a/tests/functional/r/recursion/recursion_error_3159.py b/tests/functional/r/recursion/recursion_error_3159.py new file mode 100644 index 000000000..086cce769 --- /dev/null +++ b/tests/functional/r/recursion/recursion_error_3159.py @@ -0,0 +1,26 @@ +"""Check that we do not crash with a recursion error + +https://github.com/PyCQA/pylint/issues/3159 +""" +# pylint: disable=missing-docstring +from setuptools import Command, find_packages, setup + + +class AnyCommand(Command): + def initialize_options(self): + pass + + def finalize_options(self): + pass + + @staticmethod + def run(): + print("Do anything") + + +setup( + name="Thing", + version="1.0", + packages=find_packages(), + cmdclass={"anycommand": AnyCommand}, +) diff --git a/tests/functional/r/recursion/recursion_error_940.py b/tests/functional/r/recursion/recursion_error_940.py new file mode 100644 index 000000000..4a9f346cb --- /dev/null +++ b/tests/functional/r/recursion/recursion_error_940.py @@ -0,0 +1,13 @@ +# pylint: disable=missing-docstring, too-few-public-methods, useless-object-inheritance +import datetime + + +class NewDate(datetime.date): + @classmethod + def today(cls): + return cls(2010, 1, 1) + + +class Next(object): + def __init__(self): + datetime.date = NewDate diff --git a/tests/functional/r/recursion/recursion_error_crash.py b/tests/functional/r/recursion/recursion_error_crash.py new file mode 100644 index 000000000..208bc2e7a --- /dev/null +++ b/tests/functional/r/recursion/recursion_error_crash.py @@ -0,0 +1,9 @@ +"""Test that a recursion error does not happen + +https://github.com/PyCQA/pylint/issues/2463 +""" +import os + +ABC = os.path.realpath('abc') +DEF = os.path.realpath(ABC + 'def') +GHI = os.path.join(DEF, 'ghi') diff --git a/tests/functional/r/recursion/recursion_error_crash_2683.py b/tests/functional/r/recursion/recursion_error_crash_2683.py new file mode 100644 index 000000000..05978a355 --- /dev/null +++ b/tests/functional/r/recursion/recursion_error_crash_2683.py @@ -0,0 +1,13 @@ +"""Test for https://github.com/PyCQA/pylint/issues/2683""" +# pylint: disable=missing-docstring,too-few-public-methods + +class Cls: + def __init__(self): + self.count = 5 + + def method(self): + records = [] + for _ in []: + records += [] + records = records[:self.count] + records.sort() diff --git a/tests/functional/r/recursion/recursion_error_crash_astroid_623.py b/tests/functional/r/recursion/recursion_error_crash_astroid_623.py new file mode 100644 index 000000000..662da6145 --- /dev/null +++ b/tests/functional/r/recursion/recursion_error_crash_astroid_623.py @@ -0,0 +1,10 @@ +"""Test that a recursion error does not happen + +https://github.com/PyCQA/astroid/issues/623 +""" +from os import path + +FIRST = path.normpath(path.dirname(path.realpath(__file__))) +SECOND = path.normpath(path.abspath(path.join(FIRST, ".."))) +THIRD = path.normpath(path.abspath(path.join(SECOND, ".."))) +FOURTH = path.join(THIRD) diff --git a/tests/functional/r/recursion/recursion_regression_2960.py b/tests/functional/r/recursion/recursion_regression_2960.py new file mode 100644 index 000000000..96e0fbf74 --- /dev/null +++ b/tests/functional/r/recursion/recursion_regression_2960.py @@ -0,0 +1,4 @@ +# pylint: disable=missing-docstring +from runpy import run_path + +_STH = run_path('hello.py') |