diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2011-01-02 14:23:42 -0500 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2011-01-02 14:23:42 -0500 |
| commit | 350aed3fdb9f1e73e69655e53f44ca6a91c196da (patch) | |
| tree | 3d2a128667b5f6ca6d0b4e1f4865fc98aac6b60b /examples/versioning | |
| parent | 71f92436bdc86f30e2c21d8f5244733601e8c39e (diff) | |
| download | sqlalchemy-350aed3fdb9f1e73e69655e53f44ca6a91c196da.tar.gz | |
- whitespace removal bonanza
Diffstat (limited to 'examples/versioning')
| -rw-r--r-- | examples/versioning/__init__.py | 6 | ||||
| -rw-r--r-- | examples/versioning/history_meta.py | 42 | ||||
| -rw-r--r-- | examples/versioning/test_versioning.py | 100 |
3 files changed, 74 insertions, 74 deletions
diff --git a/examples/versioning/__init__.py b/examples/versioning/__init__.py index f2f8832cf..72edcca53 100644 --- a/examples/versioning/__init__.py +++ b/examples/versioning/__init__.py @@ -19,13 +19,13 @@ A fragment of example usage, using declarative:: class SomeClass(Base): __tablename__ = 'sometable' - + id = Column(Integer, primary_key=True) name = Column(String(50)) - + def __eq__(self, other): assert type(other) is SomeClass and other.id == self.id - + sess = Session() sc = SomeClass(name='sc1') sess.add(sc) diff --git a/examples/versioning/history_meta.py b/examples/versioning/history_meta.py index fa95733e2..2983a33e2 100644 --- a/examples/versioning/history_meta.py +++ b/examples/versioning/history_meta.py @@ -19,10 +19,10 @@ def _history_mapper(local_mapper): # of the info is always loaded (currently sets it on all attributes) for prop in local_mapper.iterate_properties: getattr(local_mapper.class_, prop.key).impl.active_history = True - + super_mapper = local_mapper.inherits super_history_mapper = getattr(cls, '__history_mapper__', None) - + polymorphic_on = None super_fks = [] if not super_mapper or local_mapper.local_table is not super_mapper.local_table: @@ -30,7 +30,7 @@ def _history_mapper(local_mapper): for column in local_mapper.local_table.c: if column.name == 'version': continue - + col = column.copy() col.unique = False @@ -38,16 +38,16 @@ def _history_mapper(local_mapper): super_fks.append((col.key, list(super_history_mapper.base_mapper.local_table.primary_key)[0])) cols.append(col) - + if column is local_mapper.polymorphic_on: polymorphic_on = col - + if super_mapper: super_fks.append(('version', super_history_mapper.base_mapper.local_table.c.version)) cols.append(Column('version', Integer, primary_key=True)) else: cols.append(Column('version', Integer, primary_key=True)) - + if super_fks: cols.append(ForeignKeyConstraint(*zip(*super_fks))) @@ -62,13 +62,13 @@ def _history_mapper(local_mapper): col = column.copy() super_history_mapper.local_table.append_column(col) table = None - + if super_history_mapper: bases = (super_history_mapper.class_,) else: bases = local_mapper.base_mapper.class_.__bases__ versioned_cls = type.__new__(type, "%sHistory" % cls.__name__, bases, {}) - + m = mapper( versioned_cls, table, @@ -77,11 +77,11 @@ def _history_mapper(local_mapper): polymorphic_identity=local_mapper.polymorphic_identity ) cls.__history_mapper__ = m - + if not super_history_mapper: cls.version = Column('version', Integer, default=1, nullable=False) - - + + class VersionedMeta(DeclarativeMeta): def __init__(cls, classname, bases, dict_): DeclarativeMeta.__init__(cls, classname, bases, dict_) @@ -102,21 +102,21 @@ def create_version(obj, session, deleted = False): obj_mapper = object_mapper(obj) history_mapper = obj.__history_mapper__ history_cls = history_mapper.class_ - + obj_state = attributes.instance_state(obj) - + attr = {} obj_changed = False - + for om, hm in zip(obj_mapper.iterate_to_root(), history_mapper.iterate_to_root()): if hm.single: continue - + for hist_col in hm.local_table.c: if hist_col.key == 'version': continue - + obj_col = om.local_table.c[hist_col.key] # get the value of the @@ -131,7 +131,7 @@ def create_version(obj, session, deleted = False): # the "unmapped" status of the subclass column on the # base class is a feature of the declarative module as of sqla 0.5.2. continue - + # expired object attributes and also deferred cols might not be in the # dict. force it to load no matter what by using getattr(). if prop.key not in obj_state.dict: @@ -148,7 +148,7 @@ def create_version(obj, session, deleted = False): # if the attribute had no value. attr[hist_col.key] = a[0] obj_changed = True - + if not obj_changed: # not changed, but we have relationships. OK # check those too @@ -157,8 +157,8 @@ def create_version(obj, session, deleted = False): attributes.get_history(obj, prop.key).has_changes(): obj_changed = True break - - if not obj_changed and not deleted: + + if not obj_changed and not deleted: return attr['version'] = obj.version @@ -167,7 +167,7 @@ def create_version(obj, session, deleted = False): setattr(hist, key, value) session.add(hist) obj.version += 1 - + class VersionedListener(SessionExtension): def before_flush(self, session, flush_context, instances): for obj in versioned_objects(session.dirty): diff --git a/examples/versioning/test_versioning.py b/examples/versioning/test_versioning.py index c9cb605cd..83d769e1e 100644 --- a/examples/versioning/test_versioning.py +++ b/examples/versioning/test_versioning.py @@ -8,7 +8,7 @@ from test.lib.entities import ComparableEntity def setup(): global engine engine = create_engine('sqlite://', echo=True) - + class TestVersioning(TestBase): def setup(self): global Base, Session, Versioned @@ -17,34 +17,34 @@ class TestVersioning(TestBase): __metaclass__ = VersionedMeta _decl_class_registry = Base._decl_class_registry Session = sessionmaker(extension=VersionedListener()) - + def teardown(self): clear_mappers() Base.metadata.drop_all() - + def create_tables(self): Base.metadata.create_all() - + def test_plain(self): class SomeClass(Versioned, Base, ComparableEntity): __tablename__ = 'sometable' - + id = Column(Integer, primary_key=True) name = Column(String(50)) - + self.create_tables() sess = Session() sc = SomeClass(name='sc1') sess.add(sc) sess.commit() - + sc.name = 'sc1modified' sess.commit() - + assert sc.version == 2 - + SomeClassHistory = SomeClass.__history_mapper__.class_ - + eq_( sess.query(SomeClassHistory).filter(SomeClassHistory.version == 1).all(), [SomeClassHistory(version=1, name='sc1')] @@ -61,7 +61,7 @@ class TestVersioning(TestBase): ) assert sc.version == 3 - + sess.commit() sc.name = 'temp' @@ -76,7 +76,7 @@ class TestVersioning(TestBase): SomeClassHistory(version=2, name='sc1modified') ] ) - + sess.delete(sc) sess.commit() @@ -92,41 +92,41 @@ class TestVersioning(TestBase): def test_from_null(self): class SomeClass(Versioned, Base, ComparableEntity): __tablename__ = 'sometable' - + id = Column(Integer, primary_key=True) name = Column(String(50)) - + self.create_tables() sess = Session() sc = SomeClass() sess.add(sc) sess.commit() - + sc.name = 'sc1' sess.commit() - + assert sc.version == 2 def test_deferred(self): """test versioning of unloaded, deferred columns.""" - + class SomeClass(Versioned, Base, ComparableEntity): __tablename__ = 'sometable' id = Column(Integer, primary_key=True) name = Column(String(50)) data = deferred(Column(String(25))) - + self.create_tables() sess = Session() sc = SomeClass(name='sc1', data='somedata') sess.add(sc) sess.commit() sess.close() - + sc = sess.query(SomeClass).first() assert 'data' not in sc.__dict__ - + sc.name = 'sc1modified' sess.commit() @@ -138,8 +138,8 @@ class TestVersioning(TestBase): sess.query(SomeClassHistory).filter(SomeClassHistory.version == 1).all(), [SomeClassHistory(version=1, name='sc1', data='somedata')] ) - - + + def test_joined_inheritance(self): class BaseClass(Versioned, Base, ComparableEntity): __tablename__ = 'basetable' @@ -147,9 +147,9 @@ class TestVersioning(TestBase): id = Column(Integer, primary_key=True) name = Column(String(50)) type = Column(String(20)) - + __mapper_args__ = {'polymorphic_on':type, 'polymorphic_identity':'base'} - + class SubClassSeparatePk(BaseClass): __tablename__ = 'subtable1' @@ -175,7 +175,7 @@ class TestVersioning(TestBase): same1 = SubClassSamePk(name='same1', subdata2='same1subdata') sess.add_all([sep1, base1, same1]) sess.commit() - + base1.name = 'base1mod' same1.subdata2 = 'same1subdatamod' sep1.name ='sep1mod' @@ -189,10 +189,10 @@ class TestVersioning(TestBase): [ SubClassSeparatePkHistory(id=1, name=u'sep1', type=u'sep', version=1), BaseClassHistory(id=2, name=u'base1', type=u'base', version=1), - SubClassSamePkHistory(id=3, name=u'same1', type=u'same', version=1) + SubClassSamePkHistory(id=3, name=u'same1', type=u'same', version=1) ] ) - + same1.subdata2 = 'same1subdatamod2' eq_( @@ -201,7 +201,7 @@ class TestVersioning(TestBase): SubClassSeparatePkHistory(id=1, name=u'sep1', type=u'sep', version=1), BaseClassHistory(id=2, name=u'base1', type=u'base', version=1), SubClassSamePkHistory(id=3, name=u'same1', type=u'same', version=1), - SubClassSamePkHistory(id=3, name=u'same1', type=u'same', version=2) + SubClassSamePkHistory(id=3, name=u'same1', type=u'same', version=2) ] ) @@ -213,7 +213,7 @@ class TestVersioning(TestBase): BaseClassHistory(id=2, name=u'base1', type=u'base', version=1), BaseClassHistory(id=2, name=u'base1mod', type=u'base', version=2), SubClassSamePkHistory(id=3, name=u'same1', type=u'same', version=1), - SubClassSamePkHistory(id=3, name=u'same1', type=u'same', version=2) + SubClassSamePkHistory(id=3, name=u'same1', type=u'same', version=2) ] ) @@ -225,7 +225,7 @@ class TestVersioning(TestBase): name = Column(String(50)) type = Column(String(50)) __mapper_args__ = {'polymorphic_on':type, 'polymorphic_identity':'base'} - + class SubClass(BaseClass): subname = Column(String(50)) @@ -236,21 +236,21 @@ class TestVersioning(TestBase): b1 = BaseClass(name='b1') sc = SubClass(name='s1', subname='sc1') - + sess.add_all([b1, sc]) - + sess.commit() - + b1.name='b1modified' BaseClassHistory = BaseClass.__history_mapper__.class_ SubClassHistory = SubClass.__history_mapper__.class_ - + eq_( sess.query(BaseClassHistory).order_by(BaseClassHistory.id, BaseClassHistory.version).all(), [BaseClassHistory(id=1, name=u'b1', type=u'base', version=1)] ) - + sc.name ='s1modified' b1.name='b1modified2' @@ -262,48 +262,48 @@ class TestVersioning(TestBase): SubClassHistory(id=2, name=u's1', type=u'sub', version=1) ] ) - + def test_unique(self): class SomeClass(Versioned, Base, ComparableEntity): __tablename__ = 'sometable' - + id = Column(Integer, primary_key=True) name = Column(String(50), unique=True) data = Column(String(50)) - + self.create_tables() sess = Session() sc = SomeClass(name='sc1', data='sc1') sess.add(sc) sess.commit() - + sc.data = 'sc1modified' sess.commit() - + assert sc.version == 2 - + sc.data = 'sc1modified2' sess.commit() - + assert sc.version == 3 def test_relationship(self): class SomeRelated(Base, ComparableEntity): __tablename__ = 'somerelated' - + id = Column(Integer, primary_key=True) class SomeClass(Versioned, Base, ComparableEntity): __tablename__ = 'sometable' - + id = Column(Integer, primary_key=True) name = Column(String(50)) related_id = Column(Integer, ForeignKey('somerelated.id')) related = relationship("SomeRelated") - + SomeClassHistory = SomeClass.__history_mapper__.class_ - + self.create_tables() sess = Session() sc = SomeClass(name='sc1') @@ -311,13 +311,13 @@ class TestVersioning(TestBase): sess.commit() assert sc.version == 1 - + sr1 = SomeRelated() sc.related = sr1 sess.commit() - + assert sc.version == 2 - + eq_( sess.query(SomeClassHistory).filter(SomeClassHistory.version == 1).all(), [SomeClassHistory(version=1, name='sc1', related_id=None)] @@ -334,4 +334,4 @@ class TestVersioning(TestBase): ) assert sc.version == 3 - + |
