I can collect return values
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import pytest
|
||||
|
||||
from myutils.observable import NotObservableError, make_observable, bind
|
||||
from myutils.observable import NotObservableError, make_observable, bind, collect_return_values
|
||||
|
||||
|
||||
# Test fixtures
|
||||
@@ -170,4 +170,38 @@ def test_i_can_preserve_original_class_behavior():
|
||||
assert demo.get_double() == 10
|
||||
|
||||
# Test that isinstance still works
|
||||
assert isinstance(demo, Demo)
|
||||
assert isinstance(demo, Demo)
|
||||
|
||||
|
||||
def test_i_can_collect_the_updates():
|
||||
demo = Demo()
|
||||
make_observable(demo)
|
||||
|
||||
bind(demo, 'number', lambda old, new: new)
|
||||
bind(demo, 'number', lambda old, new: new * 2)
|
||||
|
||||
demo.number = 5
|
||||
assert collect_return_values(demo) == [5, 10]
|
||||
|
||||
# another time to make sure there is no side effect
|
||||
demo.number = 10
|
||||
assert collect_return_values(demo) == [10, 20]
|
||||
|
||||
|
||||
def test_i_cannot_collect_updates_before_making_observable():
|
||||
demo = Demo()
|
||||
|
||||
with pytest.raises(NotObservableError) as exc_info:
|
||||
collect_return_values(demo)
|
||||
|
||||
assert "must be made observable" in str(exc_info.value).lower()
|
||||
|
||||
|
||||
def test_i_can_collect_none():
|
||||
demo = Demo()
|
||||
make_observable(demo)
|
||||
|
||||
bind(demo, 'number', lambda old, new: None)
|
||||
|
||||
demo.number = 5
|
||||
assert collect_return_values(demo) == [None]
|
||||
|
||||
Reference in New Issue
Block a user