summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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__':