def test_basic(self): metadata = self.metadata s_table = Table( "sometable", metadata, Column("id_a", Unicode(255), primary_key=True), Column("id_b", Unicode(255), primary_key=True, unique=True), Column("group", Unicode(255), primary_key=True), Column("col", Unicode(255)), UniqueConstraint("col", "group"), ) # "group" is a keyword, so lower case normalind = Index("tableind", s_table.c.id_b, s_table.c.group) Index("compress1", s_table.c.id_a, s_table.c.id_b, oracle_compress=True) Index( "compress2", s_table.c.id_a, s_table.c.id_b, s_table.c.col, oracle_compress=1, ) metadata.create_all() mirror = MetaData(testing.db) mirror.reflect() metadata.drop_all() mirror.create_all() inspect = MetaData(testing.db) inspect.reflect() def obj_definition(obj): return ( obj.__class__, tuple([c.name for c in obj.columns]), getattr(obj, "unique", None), ) # find what the primary k constraint name should be primaryconsname = testing.db.scalar( text("""SELECT constraint_name FROM all_constraints WHERE table_name = :table_name AND owner = :owner AND constraint_type = 'P' """), table_name=s_table.name.upper(), owner=testing.db.dialect.default_schema_name.upper(), ) reflectedtable = inspect.tables[s_table.name] # make a dictionary of the reflected objects: reflected = dict([ (obj_definition(i), i) for i in reflectedtable.indexes | reflectedtable.constraints ]) # assert we got primary key constraint and its name, Error # if not in dict assert (reflected[(PrimaryKeyConstraint, ("id_a", "id_b", "group"), None)].name.upper() == primaryconsname.upper()) # Error if not in dict eq_(reflected[(Index, ("id_b", "group"), False)].name, normalind.name) assert (Index, ("id_b", ), True) in reflected assert (Index, ("col", "group"), True) in reflected idx = reflected[(Index, ("id_a", "id_b"), False)] assert idx.dialect_options["oracle"]["compress"] == 2 idx = reflected[(Index, ("id_a", "id_b", "col"), False)] assert idx.dialect_options["oracle"]["compress"] == 1 eq_(len(reflectedtable.constraints), 1) eq_(len(reflectedtable.indexes), 5)
def test_basic(self): metadata = self.metadata s_table = Table( "sometable", metadata, Column("id_a", Unicode(255), primary_key=True), Column("id_b", Unicode(255), primary_key=True, unique=True), Column("group", Unicode(255), primary_key=True), Column("col", Unicode(255)), UniqueConstraint('col', 'group')) # "group" is a keyword, so lower case normalind = Index('tableind', s_table.c.id_b, s_table.c.group) Index('compress1', s_table.c.id_a, s_table.c.id_b, oracle_compress=True) Index('compress2', s_table.c.id_a, s_table.c.id_b, s_table.c.col, oracle_compress=1) metadata.create_all() mirror = MetaData(testing.db) mirror.reflect() metadata.drop_all() mirror.create_all() inspect = MetaData(testing.db) inspect.reflect() def obj_definition(obj): return (obj.__class__, tuple([c.name for c in obj.columns]), getattr(obj, 'unique', None)) # find what the primary k constraint name should be primaryconsname = testing.db.scalar( text( """SELECT constraint_name FROM all_constraints WHERE table_name = :table_name AND owner = :owner AND constraint_type = 'P' """), table_name=s_table.name.upper(), owner=testing.db.dialect.default_schema_name.upper()) reflectedtable = inspect.tables[s_table.name] # make a dictionary of the reflected objects: reflected = dict([(obj_definition(i), i) for i in reflectedtable.indexes | reflectedtable.constraints]) # assert we got primary key constraint and its name, Error # if not in dict assert reflected[(PrimaryKeyConstraint, ('id_a', 'id_b', 'group'), None)].name.upper() \ == primaryconsname.upper() # Error if not in dict eq_( reflected[(Index, ('id_b', 'group'), False)].name, normalind.name ) assert (Index, ('id_b', ), True) in reflected assert (Index, ('col', 'group'), True) in reflected idx = reflected[(Index, ('id_a', 'id_b', ), False)] assert idx.dialect_options['oracle']['compress'] == 2 idx = reflected[(Index, ('id_a', 'id_b', 'col', ), False)] assert idx.dialect_options['oracle']['compress'] == 1 eq_(len(reflectedtable.constraints), 1) eq_(len(reflectedtable.indexes), 5)