Skip to content

Commit 8c851ed

Browse files
committed
improve descriptor tests
1 parent 569676e commit 8c851ed

1 file changed

Lines changed: 25 additions & 6 deletions

File tree

tests/core/test_progress_util.py

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import pytest
44

5-
from alive_progress.core.progress import _GatedAssignFunction, _GatedFunction, _render_title
5+
from alive_progress.core.progress import _AssignFunction, _Function, _GatedFunction, _render_title
66
from alive_progress.utils.cells import join_cells
77

88

@@ -32,23 +32,42 @@ def test_render_title(length, text, expected):
3232

3333
def test_gated_properties():
3434
class AClass:
35+
always = _Function()
3536
readonly = _GatedFunction()
36-
assignable = _GatedAssignFunction()
37+
assignable = _AssignFunction()
3738

3839
instance, m = AClass(), mock.Mock()
39-
instance._handle = True
40+
instance._always = lambda: 'ok'
4041
instance._readonly = lambda: 1
4142
instance._assignable = m
4243

43-
assert instance.readonly() == 1
44+
instance._handle = True
45+
assert instance.always() == 'ok'
46+
assert instance.readonly() == 1 # works.
4447

4548
instance.assignable()
4649
m.assert_called_once_with()
4750

4851
m.reset_mock()
49-
instance.assignable(2)
52+
instance.assignable(2) # as parameter.
53+
m.assert_called_once_with(2)
54+
55+
m.reset_mock()
56+
instance.assignable = 3 # as attribute.
57+
m.assert_called_once_with(3)
58+
59+
instance._handle = False
60+
assert instance.always() == 'ok'
61+
assert instance.readonly() is None # is None when handle is False.
62+
63+
m.reset_mock()
64+
instance.assignable()
65+
m.assert_called_once_with()
66+
67+
m.reset_mock()
68+
instance.assignable(2) # as parameter.
5069
m.assert_called_once_with(2)
5170

5271
m.reset_mock()
53-
instance.assignable = 3
72+
instance.assignable = 3 # as attribute.
5473
m.assert_called_once_with(3)

0 commit comments

Comments
 (0)