diff options
| author | Taavi Burns <taavi.burns@gmail.com> | 2010-11-19 17:44:39 -0500 |
|---|---|---|
| committer | Taavi Burns <taavi.burns@gmail.com> | 2010-11-19 17:44:39 -0500 |
| commit | f19d7e5b972e60c843acb3389e8ae07eb6043818 (patch) | |
| tree | 05c6827df0297423636e436433aed8ca3e54fd7e /test/aaa_profiling/test_memusage.py | |
| parent | e15fa0342d2ac83414c563abd8fd478251d4d35f (diff) | |
| download | sqlalchemy-f19d7e5b972e60c843acb3389e8ae07eb6043818.tar.gz | |
Fix memory leaks in the cprocessors DecimalResultProcessor, including tests. [ticket:1978]
Diffstat (limited to 'test/aaa_profiling/test_memusage.py')
| -rw-r--r-- | test/aaa_profiling/test_memusage.py | 42 |
1 files changed, 41 insertions, 1 deletions
diff --git a/test/aaa_profiling/test_memusage.py b/test/aaa_profiling/test_memusage.py index 5fa40a997..3fb6bfa55 100644 --- a/test/aaa_profiling/test_memusage.py +++ b/test/aaa_profiling/test_memusage.py @@ -7,10 +7,11 @@ from sqlalchemy.util import jython import operator from sqlalchemy.test import testing, engines from sqlalchemy import MetaData, Integer, String, ForeignKey, \ - PickleType, create_engine, Unicode + PickleType, create_engine, Unicode, Float from sqlalchemy.test.schema import Table, Column import sqlalchemy as sa from sqlalchemy.sql import column +from sqlalchemy.processors import to_decimal_processor_factory from sqlalchemy.test.util import gc_collect import gc import weakref @@ -566,3 +567,42 @@ class MemUsageTest(EnsureZeroed): cast.compile(dialect=dialect) go() + def test_DecimalResultProcessor_processing(self): + metadata = MetaData(testing.db) + + table1 = Table("mytable", metadata, + Column('col1', Integer, primary_key=True, + test_needs_autoincrement=True), + Column('col2', Float(asdecimal=True)) + ) + + class Foo(object): + def __init__(self, col2): + self.col2 = col2 + + mapper(Foo, table1) + metadata.create_all() + + session = create_session() + session.begin() + session.add(Foo(1.1)) + session.commit() + session.close() + del session + + @profile_memory + def go(): + session = create_session() + session.query(Foo).all() + session.rollback() + session.close() + try: + go() + finally: + metadata.drop_all() + + def test_DecimalResultProcessor_dealloc(self): + @profile_memory + def go(): + to_decimal_processor_factory({}, 10) + go() |
