summaryrefslogtreecommitdiff
path: root/tests/functional/r/recursion
diff options
context:
space:
mode:
Diffstat (limited to 'tests/functional/r/recursion')
-rw-r--r--tests/functional/r/recursion/recursion_error_2667.py9
-rw-r--r--tests/functional/r/recursion/recursion_error_2836.py18
-rw-r--r--tests/functional/r/recursion/recursion_error_2861.py9
-rw-r--r--tests/functional/r/recursion/recursion_error_2899.py9
-rw-r--r--tests/functional/r/recursion/recursion_error_2906.py14
-rw-r--r--tests/functional/r/recursion/recursion_error_3152.py7
-rw-r--r--tests/functional/r/recursion/recursion_error_3159.py26
-rw-r--r--tests/functional/r/recursion/recursion_error_940.py13
-rw-r--r--tests/functional/r/recursion/recursion_error_crash.py9
-rw-r--r--tests/functional/r/recursion/recursion_error_crash_2683.py13
-rw-r--r--tests/functional/r/recursion/recursion_error_crash_astroid_623.py10
-rw-r--r--tests/functional/r/recursion/recursion_regression_2960.py4
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')