summaryrefslogtreecommitdiff
path: root/tests/functional/m/mccabe.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/functional/m/mccabe.py')
-rw-r--r--tests/functional/m/mccabe.py216
1 files changed, 216 insertions, 0 deletions
diff --git a/tests/functional/m/mccabe.py b/tests/functional/m/mccabe.py
new file mode 100644
index 000000000..b5a257b1f
--- /dev/null
+++ b/tests/functional/m/mccabe.py
@@ -0,0 +1,216 @@
+# pylint: disable=invalid-name,unnecessary-pass,no-else-return,useless-else-on-loop
+# pylint: disable=undefined-variable,consider-using-sys-exit,unused-variable,too-many-return-statements
+# pylint: disable=redefined-outer-name,useless-object-inheritance,using-constant-test,unused-argument
+# pylint: disable=broad-except, not-context-manager, no-method-argument, no-self-use, unspecified-encoding
+
+"""Checks use of "too-complex" check"""
+
+
+def f1(): # [too-complex]
+ """McCabe rating: 1"""
+ pass
+
+
+def f2(n): # [too-complex]
+ """McCabe rating: 1"""
+ k = n + 4
+ s = k + n
+ return s
+
+
+def f3(n): # [too-complex]
+ """McCabe rating: 3"""
+ if n > 3:
+ return "bigger than three"
+ elif n > 4:
+ return "is never executed"
+ else:
+ return "smaller than or equal to three"
+
+
+def f4(): # [too-complex]
+ """McCabe rating: 2"""
+ for i in range(10):
+ print(i)
+
+
+def f5(mylist): # [too-complex]
+ """McCabe rating: 2"""
+ for i in mylist:
+ print(i)
+ else:
+ print(None)
+
+
+def f6(n): # [too-complex]
+ """McCabe rating: 2"""
+ if n > 4:
+ return f(n - 1)
+ else:
+ return n
+
+
+def f7(): # [too-complex]
+ """McCabe rating: 3"""
+
+ def b():
+ """McCabe rating: 2"""
+
+ def c():
+ """McCabe rating: 1"""
+ pass
+
+ c()
+
+ b()
+
+
+def f8(): # [too-complex]
+ """McCabe rating: 4"""
+ try:
+ print(1)
+ except TypeA:
+ print(2)
+ except TypeB:
+ print(3)
+ else:
+ print(4)
+
+
+def f9(): # [too-complex]
+ """McCabe rating: 9"""
+ myint = 2
+ if myint > 5:
+ pass
+ else:
+ if myint <= 5:
+ pass
+ else:
+ myint = 3
+ if myint > 2:
+ if myint > 3:
+ pass
+ elif myint == 3:
+ pass
+ elif myint < 3:
+ pass
+ else:
+ if myint:
+ pass
+ else:
+ if myint:
+ pass
+ myint = 4
+
+
+def f10(): # [too-complex]
+ """McCabe rating: 11"""
+ myint = 2
+ if myint == 5:
+ return myint
+ elif myint == 6:
+ return myint
+ elif myint == 7:
+ return myint
+ elif myint == 8:
+ return myint
+ elif myint == 9:
+ return myint
+ elif myint == 10:
+ if myint == 8:
+ while True:
+ return True
+ elif myint == 8:
+ with myint:
+ return 8
+ else:
+ if myint == 2:
+ return myint
+ return myint
+ return myint
+
+
+class MyClass1(object):
+ """Class of example to test mccabe"""
+
+ _name = "MyClass" # To force a tail.node=None
+
+ def method1(): # [too-complex]
+ """McCabe rating: 1"""
+ pass
+
+ def method2(self, param1): # [too-complex, too-many-branches]
+ """McCabe rating: 18"""
+ if not param1:
+ pass
+ pass
+ if param1:
+ pass
+ else:
+ pass
+
+ pass
+
+ if param1:
+ pass
+ if param1:
+ pass
+ if param1:
+ pass
+ if param1:
+ pass
+ if param1:
+ pass
+ if param1:
+ pass
+ if param1:
+ for value in range(5):
+ pass
+
+ pass
+ for count in range(6):
+ with open("myfile") as fp:
+ count += 1
+ pass
+ pass
+ try:
+ pass
+ if not param1:
+ pass
+ else:
+ pass
+ if param1:
+ raise BaseException("Error")
+ with open("myfile2") as fp2:
+ pass
+ pass
+ finally:
+ if param1 is not None:
+ pass
+ for count2 in range(8):
+ try:
+ pass
+ except BaseException("Error2"):
+ pass
+ return param1
+
+
+for count in range(10): # [too-complex]
+ if count == 1:
+ exit(0)
+ elif count == 2:
+ exit(1)
+ else:
+ exit(2)
+
+
+def method3(self): # [too-complex]
+ """McCabe rating: 2"""
+ try:
+ if True:
+ pass
+ else:
+ pass
+ finally:
+ pass
+ return True