summaryrefslogtreecommitdiff
path: root/tests/functional/u/unsupported/unsupported_binary_operation.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/functional/u/unsupported/unsupported_binary_operation.py')
-rw-r--r--tests/functional/u/unsupported/unsupported_binary_operation.py66
1 files changed, 66 insertions, 0 deletions
diff --git a/tests/functional/u/unsupported/unsupported_binary_operation.py b/tests/functional/u/unsupported/unsupported_binary_operation.py
new file mode 100644
index 000000000..0bfe1d16a
--- /dev/null
+++ b/tests/functional/u/unsupported/unsupported_binary_operation.py
@@ -0,0 +1,66 @@
+"""Test for unsupported-binary-operation."""
+# pylint: disable=missing-docstring,too-few-public-methods,pointless-statement
+# pylint: disable=expression-not-assigned, invalid-name, useless-object-inheritance
+
+
+import collections
+
+
+1 + "a" # [unsupported-binary-operation]
+1 - [] # [unsupported-binary-operation]
+1 * {} # [unsupported-binary-operation]
+1 / collections # [unsupported-binary-operation]
+1 ** (lambda x: x) # [unsupported-binary-operation]
+{} * {} # [unsupported-binary-operation]
+{} - {} # [unsupported-binary-operation]
+{} | {} # [unsupported-binary-operation]
+{} >> {} # [unsupported-binary-operation]
+[] + () # [unsupported-binary-operation]
+() + [] # [unsupported-binary-operation]
+[] * 2.0 # [unsupported-binary-operation]
+() * 2.0 # [unsupported-binary-operation]
+2.0 >> 2.0 # [unsupported-binary-operation]
+class A(object):
+ pass
+class B(object):
+ pass
+A() + B() # [unsupported-binary-operation]
+class A1(object):
+ def __add__(self, other):
+ return NotImplemented
+
+A1() + A1() # [unsupported-binary-operation]
+
+class A2(object):
+ def __add__(self, other):
+ return NotImplemented
+class B2(object):
+ def __radd__(self, other):
+ return NotImplemented
+A2() + B2() # [unsupported-binary-operation]
+
+class Parent(object):
+ pass
+class Child(Parent):
+ def __add__(self, other):
+ return NotImplemented
+Child() + Parent() # [unsupported-binary-operation]
+class A3(object):
+ def __add__(self, other):
+ return NotImplemented
+class B3(A3):
+ def __radd__(self, other):
+ return NotImplemented
+A3() + B3() # [unsupported-binary-operation]
+# Augmented
+FFF = 1
+FFF += A() # [unsupported-binary-operation]
+TTT = 1
+TTT += [] # [unsupported-binary-operation]
+
+
+# Don't emit for this case since we don't know what unknown is.
+from unknown import Unknown
+class Base(Unknown):
+ pass
+Base() * 23