Skip to content

Commit 1ffd8ea

Browse files
committed
fix tests
1 parent 0e8ff86 commit 1ffd8ea

5 files changed

Lines changed: 28 additions & 65 deletions

File tree

docs/example.rst

Lines changed: 6 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -33,40 +33,18 @@ Events registered automatically, but you can do it manually:
3333

3434
.. code-block:: python
3535
36-
from sqlalchemy.orm import mapper
37-
38-
from sqlalchemy_mptt.events import TreesManager
39-
from .models import MyUser
40-
41-
tree_manager = TreesManager(MyUser)
42-
tree_manager.register_mapper(mapper) # register events before_insert,
43-
# before_update and before_delete
36+
from sqlalchemy_mptt import tree_manager
37+
tree_manager.register_events() # register events before_insert,
38+
# before_update and before_delete
4439
4540
Or remove events if it required:
4641

4742
.. code-block:: python
4843
49-
from sqlalchemy.orm import mapper
50-
51-
from sqlalchemy_mptt.events import TreesManager
52-
from sqlalchemy_mptt.mixins import BaseNestedSets
53-
54-
tree_manager = TreesManager(BaseNestedSets)
55-
tree_manager.register_mapper(mapper, # remove events before_insert,
56-
remove=True) # before_update and before_delete
57-
58-
Or remove for your custom model:
59-
60-
.. code-block:: python
61-
62-
from sqlalchemy.orm import mapper
63-
64-
from sqlalchemy_mptt.events import TreesManager
65-
from .models import MyUser
44+
from sqlalchemy_mptt import tree_manager
6645
67-
tree_manager = TreesManager(MyUser)
68-
tree_manager.register_mapper(mapper, # remove events before_insert,
69-
remove=True) # before_update and before_delete
46+
tree_manager.register_events(remove=True) # remove events before_insert,
47+
# before_update and before_delete
7048
7149
Data structure
7250
~~~~~~~~~~~~~~

sqlalchemy_mptt/__init__.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,12 @@
55
# Copyright (c) 2014 uralbash <root@uralbash.ru>
66
#
77
# Distributed under terms of the MIT license.
8-
from sqlalchemy.orm import mapper
9-
108
from .events import TreesManager
119
from .mixins import BaseNestedSets
1210

1311
__mixins__ = [BaseNestedSets]
1412
__all__ = ['BaseNestedSets', 'mptt_sessionmaker']
1513

1614
tree_manager = TreesManager(BaseNestedSets)
17-
tree_manager.register_mapper(mapper)
15+
tree_manager.register_events()
1816
mptt_sessionmaker = tree_manager.register_factory

sqlalchemy_mptt/events.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -354,16 +354,16 @@ def __init__(self, base_class):
354354
self.classes = set()
355355
self.instances = _WeakDefaultDict()
356356

357-
def register_mapper(self, mapper, remove=False):
357+
def register_events(self, remove=False):
358358
for e, h in (
359359
('before_insert', self.before_insert),
360360
('before_update', self.before_update),
361361
('before_delete', self.before_delete),
362362
):
363-
if remove:
364-
if event.contains(self.base_class, e, h):
365-
event.remove(self.base_class, e, h)
366-
else:
363+
is_event_exist = event.contains(self.base_class, e, h)
364+
if remove and is_event_exist:
365+
event.remove(self.base_class, e, h)
366+
elif not is_event_exist:
367367
event.listen(self.base_class, e, h, propagate=True)
368368
return self
369369

sqlalchemy_mptt/tests/__init__.py

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -86,16 +86,6 @@ def stop_query_counter(self):
8686
self.catch_queries)
8787

8888
def setUp(self):
89-
90-
# register events
91-
from .test_mixins import Tree2
92-
from sqlalchemy.orm import mapper
93-
from sqlalchemy_mptt.events import TreesManager
94-
95-
tree_manager = TreesManager(Tree2)
96-
tree_manager.register_mapper(mapper)
97-
98-
# sqla settings
9989
self.engine = create_engine('sqlite:///:memory:')
10090
Session = mptt_sessionmaker(sessionmaker(bind=self.engine))
10191
self.session = Session()

sqlalchemy_mptt/tests/test_events.py

Lines changed: 16 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,7 @@
1313
import unittest
1414

1515
from sqlalchemy import Column, Boolean, Integer
16-
from sqlalchemy.orm import mapper
1716
from sqlalchemy.event import contains
18-
from sqlalchemy_mptt.events import TreesManager
1917
from sqlalchemy.ext.declarative import declarative_base
2018

2119
from . import TreeTestingMixin
@@ -56,12 +54,11 @@ class TestTreeWithCustomId(TreeTestingMixin, unittest.TestCase):
5654
model = TreeWithCustomId
5755

5856

59-
class Events(object):
57+
class Events(unittest.TestCase):
6058

6159
def test_register(self):
62-
from sqlalchemy_mptt import BaseNestedSets
63-
tree_manager = TreesManager(BaseNestedSets)
64-
tree_manager.register_mapper(mapper)
60+
from sqlalchemy_mptt import tree_manager
61+
tree_manager.register_events()
6562
self.assertTrue(contains(BaseNestedSets, 'before_insert',
6663
tree_manager.before_insert))
6764
self.assertTrue(contains(BaseNestedSets, 'before_update',
@@ -70,24 +67,24 @@ def test_register(self):
7067
tree_manager.before_delete))
7168

7269
def test_register_and_remove(self):
73-
from sqlalchemy_mptt import BaseNestedSets
74-
tree_manager = TreesManager(BaseNestedSets)
75-
tree_manager.register_mapper(mapper)
76-
tree_manager.register_mapper(mapper, remove=True)
77-
self.assertFalse(contains(BaseNestedSets, 'before_insert',
70+
from sqlalchemy_mptt import tree_manager
71+
tree_manager.register_events()
72+
tree_manager.register_events(remove=True)
73+
self.assertFalse(contains(Tree, 'before_insert',
7874
tree_manager.before_insert))
79-
self.assertFalse(contains(BaseNestedSets, 'before_update',
75+
self.assertFalse(contains(Tree, 'before_update',
8076
tree_manager.before_update))
81-
self.assertFalse(contains(BaseNestedSets, 'before_delete',
77+
self.assertFalse(contains(Tree, 'before_delete',
8278
tree_manager.before_delete))
79+
tree_manager.register_events()
8380

8481
def test_remove(self):
85-
from sqlalchemy_mptt import BaseNestedSets
86-
tree_manager = TreesManager(BaseNestedSets)
87-
tree_manager.register_mapper(mapper, remove=True)
88-
self.assertFalse(contains(BaseNestedSets, 'before_insert',
82+
from sqlalchemy_mptt import tree_manager
83+
tree_manager.register_events(remove=True)
84+
self.assertFalse(contains(Tree, 'before_insert',
8985
tree_manager.before_insert))
90-
self.assertFalse(contains(BaseNestedSets, 'before_update',
86+
self.assertFalse(contains(Tree, 'before_update',
9187
tree_manager.before_update))
92-
self.assertFalse(contains(BaseNestedSets, 'before_delete',
88+
self.assertFalse(contains(Tree, 'before_delete',
9389
tree_manager.before_delete))
90+
tree_manager.register_events()

0 commit comments

Comments
 (0)