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