mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-09-30 19:36:41 +00:00

* Implement Modern Fluent API Pattern for OpenMetadata Java Client * Add Lineage, Bulk, Search static methods * Add all API support for Java & Python SDKs * Add Python SDKs and mock tests * Add Fluent APIs for sdks * Add Fluent APIs for sdks * Add Fluent APIs for sdks, support async import/export * Remove unnecessary scripts * fix py checkstyle * fix tests with new plural form sdks * Fix tests * remove examples from python sdk * remove examples from python sdk * Fix type check * Fix pyformat check * Fix pyformat check * fix python integration tests * fix pycheck and pytests * fix search api pycheck * fix pycheck * fix pycheck * fix pycheck * Fix test_sdk_integration * Improvements to SDK * Remove SDK coverage for Python 3.9 * Remove SDK coverage for Python 3.9 * Remove SDK coverage for Python 3.9
SDK Integration Tests
These integration tests verify the SDK fluent API functionality with a running OpenMetadata server.
Prerequisites
-
Running OpenMetadata Server: The tests require an OpenMetadata server running at
http://localhost:8585
# Start OpenMetadata server ./docker/run_local_docker.sh -m ui -d mysql
-
Valid JWT Token: The tests use the default admin JWT token configured in
_openmetadata_testutils/ometa.py
Running the Tests
Run All SDK Integration Tests
# From the ingestion directory
pytest tests/integration/sdk/test_sdk_integration.py -v
Run Specific Test
# Run a specific test class
pytest tests/integration/sdk/test_sdk_integration.py::TestSDKIntegration -v
# Run a specific test method
pytest tests/integration/sdk/test_sdk_integration.py::TestSDKIntegration::test_tables_crud_operations -v
Run with Coverage
coverage run --rcfile pyproject.toml -m pytest tests/integration/sdk/ -v
coverage report
Test Structure
The integration tests follow the existing OpenMetadata testing patterns:
- Fixtures: Uses the
metadata
fixture fromconftest.py
which provides an authenticated OpenMetadata client - Cleanup: Each test includes proper cleanup to remove created entities
- Naming: Test entities use unique names with UUID suffixes to avoid conflicts
Tests Included
- test_tables_crud_operations: Tests CRUD operations for Tables entity
- test_users_crud_operations: Tests CRUD operations for Users entity
- test_glossary_terms_workflow: Tests Glossary and GlossaryTerms workflow
- test_teams_workflow: Tests Teams entity operations
- test_list_all_with_pagination: Tests automatic pagination in list_all method
- test_database_schemas_operations: Tests DatabaseSchemas entity operations
Troubleshooting
- Server Not Running: Ensure OpenMetadata server is running at localhost:8585
- Authentication Failed: Check that the JWT token in
_openmetadata_testutils/ometa.py
is valid - Port Conflicts: If port 8585 is already in use, update the server URL in the tests
Adding New Tests
To add new integration tests:
- Create test methods in
test_sdk_integration.py
- Use the
metadata
fixture for OpenMetadata client - Set default client for SDK entities:
EntityClass.set_default_client(metadata)
- Include proper cleanup in try/finally blocks
- Use unique names with UUID suffixes for test entities