]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
- support declarativemappedtest with per-test setup
authorMike Bayer <mike_mp@zzzcomputing.com>
Wed, 25 Nov 2015 20:15:35 +0000 (15:15 -0500)
committerMike Bayer <mike_mp@zzzcomputing.com>
Wed, 25 Nov 2015 20:15:35 +0000 (15:15 -0500)
lib/sqlalchemy/testing/fixtures.py

index e16bc77c0642245672d8ead55fb7b69f9715a205..5cd0244ef7d8fafc2581aad5e711fbd7793b28ce 100644 (file)
@@ -275,12 +275,14 @@ class MappedTest(_ORMTest, TablesTest, assertions.AssertsExecutionResults):
 
     def setup(self):
         self._setup_each_tables()
+        self._setup_each_classes()
         self._setup_each_mappers()
         self._setup_each_inserts()
 
     def teardown(self):
         sa.orm.session.Session.close_all()
         self._teardown_each_mappers()
+        self._teardown_each_classes()
         self._teardown_each_tables()
 
     @classmethod
@@ -302,6 +304,10 @@ class MappedTest(_ORMTest, TablesTest, assertions.AssertsExecutionResults):
         if self.run_setup_mappers == 'each':
             self._with_register_classes(self.setup_mappers)
 
+    def _setup_each_classes(self):
+        if self.run_setup_classes == 'each':
+            self._with_register_classes(self.setup_classes)
+
     @classmethod
     def _with_register_classes(cls, fn):
         """Run a setup method, framing the operation with a Base class
@@ -336,6 +342,10 @@ class MappedTest(_ORMTest, TablesTest, assertions.AssertsExecutionResults):
         if self.run_setup_mappers != 'once':
             sa.orm.clear_mappers()
 
+    def _teardown_each_classes(self):
+        if self.run_setup_classes != 'once':
+            self.classes.clear()
+
     @classmethod
     def setup_classes(cls):
         pass