|
12 | 12 |
|
13 | 13 | import unittest |
14 | 14 |
|
15 | | -from sqlalchemy import Boolean, Column, Integer |
| 15 | +from sqlalchemy import Column, Boolean, Integer |
| 16 | +from sqlalchemy.orm import mapper |
| 17 | +from sqlalchemy.event import contains |
| 18 | +from sqlalchemy_mptt.events import TreesManager |
16 | 19 | from sqlalchemy.ext.declarative import declarative_base |
17 | 20 |
|
18 | 21 | from . import TreeTestingMixin |
@@ -51,3 +54,40 @@ class TestTree(TreeTestingMixin, unittest.TestCase): |
51 | 54 | class TestTreeWithCustomId(TreeTestingMixin, unittest.TestCase): |
52 | 55 | base = Base |
53 | 56 | model = TreeWithCustomId |
| 57 | + |
| 58 | + |
| 59 | +class Events(object): |
| 60 | + |
| 61 | + def test_register(self): |
| 62 | + from sqlalchemy_mptt import BaseNestedSets |
| 63 | + tree_manager = TreesManager(BaseNestedSets) |
| 64 | + tree_manager.register_mapper(mapper) |
| 65 | + self.assertTrue(contains(BaseNestedSets, 'before_insert', |
| 66 | + tree_manager.before_insert)) |
| 67 | + self.assertTrue(contains(BaseNestedSets, 'before_update', |
| 68 | + tree_manager.before_update)) |
| 69 | + self.assertTrue(contains(BaseNestedSets, 'before_delete', |
| 70 | + tree_manager.before_delete)) |
| 71 | + |
| 72 | + 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', |
| 78 | + tree_manager.before_insert)) |
| 79 | + self.assertFalse(contains(BaseNestedSets, 'before_update', |
| 80 | + tree_manager.before_update)) |
| 81 | + self.assertFalse(contains(BaseNestedSets, 'before_delete', |
| 82 | + tree_manager.before_delete)) |
| 83 | + |
| 84 | + 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', |
| 89 | + tree_manager.before_insert)) |
| 90 | + self.assertFalse(contains(BaseNestedSets, 'before_update', |
| 91 | + tree_manager.before_update)) |
| 92 | + self.assertFalse(contains(BaseNestedSets, 'before_delete', |
| 93 | + tree_manager.before_delete)) |
0 commit comments