diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2008-02-04 02:44:04 +0000 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2008-02-04 02:44:04 +0000 |
commit | 72184bc81454ba444d00e37e3b0ec4013f7cbafb (patch) | |
tree | 3777f070594910d0bd9d2f9798c83b188a0e7193 | |
parent | b79f23d3d02e785221d93544f476247097fdea0e (diff) | |
download | sqlalchemy-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.py | 15 |
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__': |