summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2008-02-04 02:44:04 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2008-02-04 02:44:04 +0000
commit72184bc81454ba444d00e37e3b0ec4013f7cbafb (patch)
tree3777f070594910d0bd9d2f9798c83b188a0e7193
parentb79f23d3d02e785221d93544f476247097fdea0e (diff)
downloadsqlalchemy-72184bc81454ba444d00e37e3b0ec4013f7cbafb.tar.gz
add some extra assertions to ensure all mappers are gone after clear_mappers() (for [ticket:963])
-rw-r--r--test/orm/memusage.py15
1 files changed, 13 insertions, 2 deletions
diff --git a/test/orm/memusage.py b/test/orm/memusage.py
index 93093365b..58c1a71c0 100644
--- a/test/orm/memusage.py
+++ b/test/orm/memusage.py
@@ -2,7 +2,8 @@ import testenv; testenv.configure_for_tests()
import gc
from sqlalchemy import MetaData, Integer, String, ForeignKey
from sqlalchemy.orm import mapper, relation, clear_mappers, create_session
-from sqlalchemy.orm.mapper import Mapper
+from sqlalchemy.orm.mapper import Mapper, _mapper_registry
+from sqlalchemy.orm.session import _sessions
from testlib import *
from testlib.fixtures import Base
@@ -19,6 +20,7 @@ def profile_memory(func):
gc.collect()
samples.append(len(gc.get_objects()))
print "sample gc sizes:", samples
+ assert len(_sessions) == 0
# TODO: this test only finds pure "growing" tests
for i, x in enumerate(samples):
if i < len(samples) - 1 and samples[i+1] <= x:
@@ -28,6 +30,11 @@ def profile_memory(func):
assert True
return profile
+def assert_no_mappers():
+ clear_mappers()
+ gc.collect()
+ assert len(_mapper_registry) == 0, len(_mapper_registry)
+
class MemUsageTest(AssertMixin):
def test_session(self):
@@ -82,7 +89,8 @@ class MemUsageTest(AssertMixin):
go()
metadata.drop_all()
- clear_mappers()
+ del m1, m2, m3
+ assert_no_mappers()
def test_mapper_reset(self):
metadata = MetaData(testing.db)
@@ -138,6 +146,7 @@ class MemUsageTest(AssertMixin):
go()
finally:
metadata.drop_all()
+ assert_no_mappers()
def test_with_inheritance(self):
metadata = MetaData(testing.db)
@@ -192,6 +201,7 @@ class MemUsageTest(AssertMixin):
go()
finally:
metadata.drop_all()
+ assert_no_mappers()
def test_with_manytomany(self):
metadata = MetaData(testing.db)
@@ -255,6 +265,7 @@ class MemUsageTest(AssertMixin):
go()
finally:
metadata.drop_all()
+ assert_no_mappers()
if __name__ == '__main__':