diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2013-06-30 18:35:12 -0400 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2013-06-30 18:35:12 -0400 |
| commit | b38a76cd1d47cd6b8f1abef30ad7c3aeaa27d537 (patch) | |
| tree | 7af1dba9e242c77a248cb2194434aa9bf3ca49b7 /test/base | |
| parent | 715d6cf3d10a71acd7726b7e00c3ff40b4559bc7 (diff) | |
| download | sqlalchemy-b38a76cd1d47cd6b8f1abef30ad7c3aeaa27d537.tar.gz | |
- replace most explicitly-named test objects called "Mock..." with
actual mock objects from the mock library. I'd like to use mock
for new tests so we might as well use it in obvious places.
- use unittest.mock in py3.3
- changelog
- add a note to README.unittests
- add tests_require in setup.py
- have tests import from sqlalchemy.testing.mock
- apply usage of mock to one of the event tests. we can be using
this approach all over the place.
Diffstat (limited to 'test/base')
| -rw-r--r-- | test/base/test_events.py | 136 |
1 files changed, 67 insertions, 69 deletions
diff --git a/test/base/test_events.py b/test/base/test_events.py index 7cfb5fa7d..20bfa62ff 100644 --- a/test/base/test_events.py +++ b/test/base/test_events.py @@ -5,6 +5,8 @@ from sqlalchemy.testing import eq_, assert_raises, assert_raises_message, \ from sqlalchemy import event, exc from sqlalchemy.testing import fixtures from sqlalchemy.testing.util import gc_collect +from sqlalchemy.testing.mock import Mock, call + class EventsTest(fixtures.TestBase): """Test class- and instance-level event registration.""" @@ -190,7 +192,7 @@ class ClsLevelListenTest(fixtures.TestBase): def test_lis_subcalss_lis(self): @event.listens_for(self.TargetOne, "event_one") def handler1(x, y): - print('handler1') + pass class SubTarget(self.TargetOne): pass @@ -207,7 +209,7 @@ class ClsLevelListenTest(fixtures.TestBase): def test_lis_multisub_lis(self): @event.listens_for(self.TargetOne, "event_one") def handler1(x, y): - print('handler1') + pass class SubTarget(self.TargetOne): pass @@ -411,12 +413,8 @@ class ListenOverrideTest(fixtures.TestBase): event._remove_dispatcher(self.Target.__dict__['dispatch'].events) def test_listen_override(self): - result = [] - def listen_one(x): - result.append(x) - - def listen_two(x, y): - result.append((x, y)) + listen_one = Mock() + listen_two = Mock() event.listen(self.Target, "event_one", listen_one, add=True) event.listen(self.Target, "event_one", listen_two) @@ -425,10 +423,13 @@ class ListenOverrideTest(fixtures.TestBase): t1.dispatch.event_one(5, 7) t1.dispatch.event_one(10, 5) - eq_(result, - [ - 12, (5, 7), 15, (10, 5) - ] + eq_( + listen_one.mock_calls, + [call(12), call(15)] + ) + eq_( + listen_two.mock_calls, + [call(5, 7), call(10, 5)] ) class PropagateTest(fixtures.TestBase): @@ -446,12 +447,8 @@ class PropagateTest(fixtures.TestBase): def test_propagate(self): - result = [] - def listen_one(target, arg): - result.append((target, arg)) - - def listen_two(target, arg): - result.append((target, arg)) + listen_one = Mock() + listen_two = Mock() t1 = self.Target() @@ -464,7 +461,15 @@ class PropagateTest(fixtures.TestBase): t2.dispatch.event_one(t2, 1) t2.dispatch.event_two(t2, 2) - eq_(result, [(t2, 1)]) + + eq_( + listen_one.mock_calls, + [call(t2, 1)] + ) + eq_( + listen_two.mock_calls, + [] + ) class JoinTest(fixtures.TestBase): def setUp(self): @@ -497,12 +502,6 @@ class JoinTest(fixtures.TestBase): if 'dispatch' in cls.__dict__: event._remove_dispatcher(cls.__dict__['dispatch'].events) - def _listener(self): - canary = [] - def listen(target, arg): - canary.append((target, arg)) - return listen, canary - def test_neither(self): element = self.TargetFactory().create() element.run_event(1) @@ -510,22 +509,22 @@ class JoinTest(fixtures.TestBase): element.run_event(3) def test_parent_class_only(self): - _listener, canary = self._listener() + l1 = Mock() - event.listen(self.TargetFactory, "event_one", _listener) + event.listen(self.TargetFactory, "event_one", l1) element = self.TargetFactory().create() element.run_event(1) element.run_event(2) element.run_event(3) eq_( - canary, - [(element, 1), (element, 2), (element, 3)] + l1.mock_calls, + [call(element, 1), call(element, 2), call(element, 3)] ) def test_parent_class_child_class(self): - l1, c1 = self._listener() - l2, c2 = self._listener() + l1 = Mock() + l2 = Mock() event.listen(self.TargetFactory, "event_one", l1) event.listen(self.TargetElement, "event_one", l2) @@ -535,17 +534,17 @@ class JoinTest(fixtures.TestBase): element.run_event(2) element.run_event(3) eq_( - c1, - [(element, 1), (element, 2), (element, 3)] + l1.mock_calls, + [call(element, 1), call(element, 2), call(element, 3)] ) eq_( - c2, - [(element, 1), (element, 2), (element, 3)] + l2.mock_calls, + [call(element, 1), call(element, 2), call(element, 3)] ) def test_parent_class_child_instance_apply_after(self): - l1, c1 = self._listener() - l2, c2 = self._listener() + l1 = Mock() + l2 = Mock() event.listen(self.TargetFactory, "event_one", l1) element = self.TargetFactory().create() @@ -557,17 +556,17 @@ class JoinTest(fixtures.TestBase): element.run_event(3) eq_( - c1, - [(element, 1), (element, 2), (element, 3)] + l1.mock_calls, + [call(element, 1), call(element, 2), call(element, 3)] ) eq_( - c2, - [(element, 2), (element, 3)] + l2.mock_calls, + [call(element, 2), call(element, 3)] ) def test_parent_class_child_instance_apply_before(self): - l1, c1 = self._listener() - l2, c2 = self._listener() + l1 = Mock() + l2 = Mock() event.listen(self.TargetFactory, "event_one", l1) element = self.TargetFactory().create() @@ -579,17 +578,17 @@ class JoinTest(fixtures.TestBase): element.run_event(3) eq_( - c1, - [(element, 1), (element, 2), (element, 3)] + l1.mock_calls, + [call(element, 1), call(element, 2), call(element, 3)] ) eq_( - c2, - [(element, 1), (element, 2), (element, 3)] + l2.mock_calls, + [call(element, 1), call(element, 2), call(element, 3)] ) def test_parent_instance_child_class_apply_before(self): - l1, c1 = self._listener() - l2, c2 = self._listener() + l1 = Mock() + l2 = Mock() event.listen(self.TargetElement, "event_one", l2) @@ -603,17 +602,18 @@ class JoinTest(fixtures.TestBase): element.run_event(3) eq_( - c1, - [(element, 1), (element, 2), (element, 3)] + l1.mock_calls, + [call(element, 1), call(element, 2), call(element, 3)] ) eq_( - c2, - [(element, 1), (element, 2), (element, 3)] + l2.mock_calls, + [call(element, 1), call(element, 2), call(element, 3)] ) + def test_parent_instance_child_class_apply_after(self): - l1, c1 = self._listener() - l2, c2 = self._listener() + l1 = Mock() + l2 = Mock() event.listen(self.TargetElement, "event_one", l2) @@ -632,18 +632,16 @@ class JoinTest(fixtures.TestBase): # this can be changed to be "live" at the cost # of performance. eq_( - c1, - [] - #(element, 2), (element, 3)] + l1.mock_calls, [] ) eq_( - c2, - [(element, 1), (element, 2), (element, 3)] + l2.mock_calls, + [call(element, 1), call(element, 2), call(element, 3)] ) def test_parent_instance_child_instance_apply_before(self): - l1, c1 = self._listener() - l2, c2 = self._listener() + l1 = Mock() + l2 = Mock() factory = self.TargetFactory() event.listen(factory, "event_one", l1) @@ -656,16 +654,16 @@ class JoinTest(fixtures.TestBase): element.run_event(3) eq_( - c1, - [(element, 1), (element, 2), (element, 3)] + l1.mock_calls, + [call(element, 1), call(element, 2), call(element, 3)] ) eq_( - c2, - [(element, 1), (element, 2), (element, 3)] + l2.mock_calls, + [call(element, 1), call(element, 2), call(element, 3)] ) def test_parent_events_child_no_events(self): - l1, c1 = self._listener() + l1 = Mock() factory = self.TargetFactory() event.listen(self.TargetElement, "event_one", l1) @@ -676,6 +674,6 @@ class JoinTest(fixtures.TestBase): element.run_event(3) eq_( - c1, - [(element, 1), (element, 2), (element, 3)] + l1.mock_calls, + [call(element, 1), call(element, 2), call(element, 3)] ) |
