summaryrefslogtreecommitdiff
path: root/pylint/test/functional
diff options
context:
space:
mode:
Diffstat (limited to 'pylint/test/functional')
-rw-r--r--pylint/test/functional/singledispatch_functions.py63
-rw-r--r--pylint/test/functional/singledispatch_functions.rc3
-rw-r--r--pylint/test/functional/singledispatch_functions.txt1
-rw-r--r--pylint/test/functional/singledispatch_functions_py3.py63
-rw-r--r--pylint/test/functional/singledispatch_functions_py3.rc3
-rw-r--r--pylint/test/functional/singledispatch_functions_py3.txt1
6 files changed, 134 insertions, 0 deletions
diff --git a/pylint/test/functional/singledispatch_functions.py b/pylint/test/functional/singledispatch_functions.py
new file mode 100644
index 000000000..f8b816a4e
--- /dev/null
+++ b/pylint/test/functional/singledispatch_functions.py
@@ -0,0 +1,63 @@
+# pylint: disable=missing-docstring,import-error,unused-import,assignment-from-no-return
+from __future__ import print_function
+from UNINFERABLE import uninferable_decorator, uninferable_func
+
+try:
+ from functools import singledispatch
+except ImportError:
+ from singledispatch import singledispatch
+
+my_single_dispatch = singledispatch # pylint: disable=invalid-name
+
+
+@singledispatch
+def func(arg):
+ return arg
+
+
+@func.register(str)
+def _(arg):
+ return 42
+
+
+@func.register(float)
+@func.register(int)
+def _(arg):
+ return 42
+
+
+@my_single_dispatch
+def func2(arg):
+ return arg
+
+
+@func2.register(int)
+def _(arg):
+ return 42
+
+
+@singledispatch
+def with_extra_arg(arg, verbose=False):
+ if verbose:
+ print(arg)
+ return arg
+
+
+@with_extra_arg.register(str)
+def _(arg, verbose=False):
+ return arg[::-1]
+
+
+@uninferable_decorator
+def uninferable(arg):
+ return 2*arg
+
+
+@uninferable.register(str)
+def bad_single_dispatch(arg):
+ return arg
+
+
+@uninferable_func.register(str)
+def test(arg):
+ return arg
diff --git a/pylint/test/functional/singledispatch_functions.rc b/pylint/test/functional/singledispatch_functions.rc
new file mode 100644
index 000000000..fc795dc6d
--- /dev/null
+++ b/pylint/test/functional/singledispatch_functions.rc
@@ -0,0 +1,3 @@
+[testoptions]
+;http://bugs.python.org/issue10445
+max_pyver=3.0
diff --git a/pylint/test/functional/singledispatch_functions.txt b/pylint/test/functional/singledispatch_functions.txt
new file mode 100644
index 000000000..60dd49880
--- /dev/null
+++ b/pylint/test/functional/singledispatch_functions.txt
@@ -0,0 +1 @@
+unused-argument:51:uninferable:Unused argument 'arg'
diff --git a/pylint/test/functional/singledispatch_functions_py3.py b/pylint/test/functional/singledispatch_functions_py3.py
new file mode 100644
index 000000000..f8b816a4e
--- /dev/null
+++ b/pylint/test/functional/singledispatch_functions_py3.py
@@ -0,0 +1,63 @@
+# pylint: disable=missing-docstring,import-error,unused-import,assignment-from-no-return
+from __future__ import print_function
+from UNINFERABLE import uninferable_decorator, uninferable_func
+
+try:
+ from functools import singledispatch
+except ImportError:
+ from singledispatch import singledispatch
+
+my_single_dispatch = singledispatch # pylint: disable=invalid-name
+
+
+@singledispatch
+def func(arg):
+ return arg
+
+
+@func.register(str)
+def _(arg):
+ return 42
+
+
+@func.register(float)
+@func.register(int)
+def _(arg):
+ return 42
+
+
+@my_single_dispatch
+def func2(arg):
+ return arg
+
+
+@func2.register(int)
+def _(arg):
+ return 42
+
+
+@singledispatch
+def with_extra_arg(arg, verbose=False):
+ if verbose:
+ print(arg)
+ return arg
+
+
+@with_extra_arg.register(str)
+def _(arg, verbose=False):
+ return arg[::-1]
+
+
+@uninferable_decorator
+def uninferable(arg):
+ return 2*arg
+
+
+@uninferable.register(str)
+def bad_single_dispatch(arg):
+ return arg
+
+
+@uninferable_func.register(str)
+def test(arg):
+ return arg
diff --git a/pylint/test/functional/singledispatch_functions_py3.rc b/pylint/test/functional/singledispatch_functions_py3.rc
new file mode 100644
index 000000000..d43f6c339
--- /dev/null
+++ b/pylint/test/functional/singledispatch_functions_py3.rc
@@ -0,0 +1,3 @@
+[testoptions]
+;http://bugs.python.org/issue10445
+min_pyver=3.4
diff --git a/pylint/test/functional/singledispatch_functions_py3.txt b/pylint/test/functional/singledispatch_functions_py3.txt
new file mode 100644
index 000000000..60dd49880
--- /dev/null
+++ b/pylint/test/functional/singledispatch_functions_py3.txt
@@ -0,0 +1 @@
+unused-argument:51:uninferable:Unused argument 'arg'