InMemoryCatalog and SqlCatalog share multiple identical tests. GlueCatalog and DynamoDbCatalog share multiple as well. HiveCatalog and BigQueryMetastoreCatalog have limited overlap and different mocking requirements, so consolidation may not be practical for those.
Possible Approach:
Add tests/catalog/conftest.py to hold catalog fixtures.
For InMemoryCatalog and SqlCatalog:
- Create
tests/catalog/test_catalog_behaviors.py with a parameterized catalog fixture for InMemoryCatalog and SqlCatalog
- Remove consolidated tests from
test_base.py and test_sql.py
For GlueCatalog and DynamoDbCatalog:
- Create
tests/catalog/test_aws_catalog_behaviors.py with a parameterized aws_catalog fixture for GlueCatalog and DynamoDbCatalog
- Remove consolidated tests from
test_glue.py and test_dynamodb.py
Related to: #813, #2090
InMemoryCatalogandSqlCatalogshare multiple identical tests.GlueCatalogandDynamoDbCatalogshare multiple as well.HiveCatalogandBigQueryMetastoreCataloghave limited overlap and different mocking requirements, so consolidation may not be practical for those.Possible Approach:
Add
tests/catalog/conftest.pyto hold catalog fixtures.For
InMemoryCatalogandSqlCatalog:tests/catalog/test_catalog_behaviors.pywith a parameterizedcatalogfixture forInMemoryCatalogandSqlCatalogtest_base.pyandtest_sql.pyFor
GlueCatalogandDynamoDbCatalog:tests/catalog/test_aws_catalog_behaviors.pywith a parameterizedaws_catalogfixture forGlueCatalogandDynamoDbCatalogtest_glue.pyandtest_dynamodb.pyRelated to: #813, #2090