Skip to content

Commit aba4c02

Browse files
committed
Fix method metadata and add metadata tests
1 parent 34ccd4b commit aba4c02

File tree

3 files changed

+18
-2
lines changed

3 files changed

+18
-2
lines changed

src/variants/_variants.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ class VariantMethod(VariantFunction):
6363
def __init__(self, variant_func, instance):
6464
self.__instance = instance
6565
self.__name__ = variant_func.__name__
66+
self.__doc__ = variant_func.__doc__
6667

6768
# Convert existing variants to methods
6869
for vname in variant_func._variants:

tests/test_functions.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,4 +92,4 @@ def test_docstring():
9292

9393

9494
def test_repr():
95-
assert repr(divide) == '<VariantFunction divide>'
95+
assert repr(divide) == '<VariantFunction divide>'

tests/test_instance_methods.py

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ def __init__(self, x):
1616

1717
@variants
1818
def divide(self, y):
19+
"""Function that divides the bound x by y."""
1920
return self.x / y
2021

2122
@divide.variant('round')
@@ -42,6 +43,8 @@ def divide(self, y, mode=None):
4243
return funcs[mode](y)
4344

4445

46+
###
47+
# Test divide instance methods
4548
@pytest.mark.parametrize('x,y,expected', DivisionData.DIV_VALS)
4649
def test_divide(x, y, expected):
4750
dv = DivisionVariants(x)
@@ -79,4 +82,16 @@ def test_mode_change_x(x, y, expected, mode):
7982
assert dv.divide.mode(y, mode) == expected
8083

8184
dv.x = 0
82-
assert dv.divide.mode(y, mode) == 0
85+
assert dv.divide.mode(y, mode) == 0
86+
87+
88+
###
89+
# Division instance method metadata tests
90+
def test_name():
91+
dv = DivisionVariants(0)
92+
assert dv.divide.__name__ == 'divide'
93+
94+
95+
def test_docstring():
96+
dv = DivisionVariants(0)
97+
assert dv.divide.__doc__ == """Function that divides the bound x by y."""

0 commit comments

Comments
 (0)