Skip to content

Commit b770b8d

Browse files
Merge pull request #593 from laughingman7743/feature/fix-test-schema-specification
Fix MetaData schema specification in SQLAlchemy tests
2 parents 9cd0e3f + 4887eb0 commit b770b8d

1 file changed

Lines changed: 20 additions & 12 deletions

File tree

tests/pyathena/sqlalchemy/test_base.py

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ def test_reflect_no_such_table(self, engine):
4646

4747
def test_reflect_table(self, engine):
4848
engine, conn = engine
49-
one_row = Table("one_row", MetaData(), autoload_with=conn)
49+
one_row = Table("one_row", MetaData(schema=ENV.schema), autoload_with=conn)
5050
assert len(one_row.c) == 1
5151
assert one_row.c.number_of_rows is not None
5252
assert one_row.comment == "table comment"
@@ -104,7 +104,7 @@ def test_reflect_table_with_schema(self, engine):
104104

105105
def test_reflect_table_include_columns(self, engine):
106106
engine, conn = engine
107-
one_row_complex = Table("one_row_complex", MetaData())
107+
one_row_complex = Table("one_row_complex", MetaData(schema=ENV.schema))
108108
version = float(re.search(r"^([\d]+\.[\d]+)\..+", sqlalchemy.__version__).group(1))
109109
if version <= 1.2:
110110
engine.dialect.reflecttable(
@@ -135,7 +135,7 @@ def test_reflect_table_include_columns(self, engine):
135135

136136
def test_partition_table_columns(self, engine):
137137
engine, conn = engine
138-
partition_table = Table("partition_table", MetaData(), autoload_with=conn)
138+
partition_table = Table("partition_table", MetaData(schema=ENV.schema), autoload_with=conn)
139139
assert len(partition_table.columns) == 2
140140
assert "a" in partition_table.columns
141141
assert "b" in partition_table.columns
@@ -157,22 +157,30 @@ def test_reflect_schemas(self, engine):
157157

158158
def test_get_table_names(self, engine):
159159
engine, conn = engine
160-
meta = MetaData()
160+
meta = MetaData(schema=ENV.schema)
161161
meta.reflect(bind=engine)
162-
assert "one_row" in meta.tables
163-
assert "one_row_complex" in meta.tables
164-
assert "view_one_row" not in meta.tables
162+
# With schema specified, table names are schema-qualified
163+
schema_qualified_one_row = f"{ENV.schema}.one_row"
164+
schema_qualified_one_row_complex = f"{ENV.schema}.one_row_complex"
165+
schema_qualified_view_one_row = f"{ENV.schema}.view_one_row"
166+
assert schema_qualified_one_row in meta.tables
167+
assert schema_qualified_one_row_complex in meta.tables
168+
assert schema_qualified_view_one_row not in meta.tables
165169

166170
insp = sqlalchemy.inspect(engine)
167171
assert "many_rows" in insp.get_table_names(schema=ENV.schema)
168172

169173
def test_get_view_names(self, engine):
170174
engine, conn = engine
171-
meta = MetaData()
175+
meta = MetaData(schema=ENV.schema)
172176
meta.reflect(bind=engine, views=True)
173-
assert "one_row" in meta.tables
174-
assert "one_row_complex" in meta.tables
175-
assert "view_one_row" in meta.tables
177+
# With schema specified, table names are schema-qualified
178+
schema_qualified_one_row = f"{ENV.schema}.one_row"
179+
schema_qualified_one_row_complex = f"{ENV.schema}.one_row_complex"
180+
schema_qualified_view_one_row = f"{ENV.schema}.view_one_row"
181+
assert schema_qualified_one_row in meta.tables
182+
assert schema_qualified_one_row_complex in meta.tables
183+
assert schema_qualified_view_one_row in meta.tables
176184

177185
insp = sqlalchemy.inspect(engine)
178186
actual = insp.get_view_names(schema=ENV.schema)
@@ -680,7 +688,7 @@ def test_create_table(self, engine):
680688
column_name = "col"
681689
table = Table(
682690
table_name,
683-
MetaData(),
691+
MetaData(schema=ENV.schema),
684692
Column(column_name, types.String(10)),
685693
schema=ENV.schema,
686694
awsathena_location=f"{ENV.s3_staging_dir}{ENV.schema}/{table_name}",

0 commit comments

Comments
 (0)