summaryrefslogtreecommitdiff
path: root/tests/functional/s/singledispatch/singledispatchmethod_function_py38.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/functional/s/singledispatch/singledispatchmethod_function_py38.py')
-rw-r--r--tests/functional/s/singledispatch/singledispatchmethod_function_py38.py41
1 files changed, 41 insertions, 0 deletions
diff --git a/tests/functional/s/singledispatch/singledispatchmethod_function_py38.py b/tests/functional/s/singledispatch/singledispatchmethod_function_py38.py
new file mode 100644
index 000000000..ef44f71c1
--- /dev/null
+++ b/tests/functional/s/singledispatch/singledispatchmethod_function_py38.py
@@ -0,0 +1,41 @@
+"""Tests for singledispatchmethod-function"""
+# pylint: disable=missing-class-docstring, missing-function-docstring,too-few-public-methods
+
+
+from functools import singledispatch, singledispatchmethod
+
+
+class BoardRight:
+ @singledispatch
+ @staticmethod
+ def convert_position(position):
+ pass
+
+ @convert_position.register
+ @staticmethod
+ def _(position: str) -> tuple:
+ position_a, position_b = position.split(",")
+ return (int(position_a), int(position_b))
+
+ @convert_position.register
+ @staticmethod
+ def _(position: tuple) -> str:
+ return f"{position[0]},{position[1]}"
+
+
+class Board:
+ @singledispatchmethod # [singledispatchmethod-function]
+ @staticmethod
+ def convert_position(position):
+ pass
+
+ @convert_position.register # [singledispatchmethod-function]
+ @staticmethod
+ def _(position: str) -> tuple:
+ position_a, position_b = position.split(",")
+ return (int(position_a), int(position_b))
+
+ @convert_position.register # [singledispatchmethod-function]
+ @staticmethod
+ def _(position: tuple) -> str:
+ return f"{position[0]},{position[1]}"