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