import sqlalchemy as sa from sqlalchemy_utils.functions import identity from tests import TestCase class IdentityTestCase(TestCase): def test_for_transient_class_without_id(self): assert identity(self.Building()) == (None, ) def test_for_transient_class_with_id(self): building = self.Building(name=u'Some building') self.session.add(building) self.session.flush() assert identity(building) == (building.id, ) def test_identity_for_class(self): assert identity(self.Building) == (self.Building.id, ) class TestIdentity(IdentityTestCase): def create_models(self): class Building(self.Base): __tablename__ = 'building' id = sa.Column(sa.Integer, primary_key=True) name = sa.Column(sa.Unicode(255)) self.Building = Building class TestIdentityWithColumnAlias(IdentityTestCase): def create_models(self): class Building(self.Base): __tablename__ = 'building' id = sa.Column('_id', sa.Integer, primary_key=True) name = sa.Column(sa.Unicode(255)) self.Building = Building