from metadata.sdk import configurefrom metadata.sdk.entities import TestSuitesfrom metadata.generated.schema.api.tests.createTestSuite import CreateTestSuiteRequestconfigure( host="https://your-company.getcollate.io/api", jwt_token="your-jwt-token")# Create a logical test suiterequest = CreateTestSuiteRequest( name="critical_data_quality_checks", displayName="Critical Data Quality Checks", description="Groups all critical data quality test cases across production tables", executable=False)test_suite = TestSuites.create(request)print(f"Created: {test_suite.name}")# Create an executable test suiterequest = CreateTestSuiteRequest( name="dim_address_test_suite", displayName="Data Contract - dim_address", description="Executable test suite for dim_address table", executable=True)test_suite = TestSuites.create(request)print(f"Created: {test_suite.fullyQualifiedName}")
{ "id": "e86a9a11-852f-4bac-b5a7-993b2bbbb572", "name": "critical_data_quality_checks", "displayName": "Critical Data Quality Checks", "fullyQualifiedName": "critical_data_quality_checks", "description": "Groups all critical data quality test cases across production tables", "version": 0.1, "updatedAt": 1769982757893, "updatedBy": "admin", "deleted": false, "owners": [], "executable": false}
Create executable or logical test suite entities to group related data quality test cases for organized quality monitoring and testing workflows using the Collate REST API.
POST
/
v1
/
dataQuality
/
testSuites
POST /v1/dataQuality/testSuites
from metadata.sdk import configurefrom metadata.sdk.entities import TestSuitesfrom metadata.generated.schema.api.tests.createTestSuite import CreateTestSuiteRequestconfigure( host="https://your-company.getcollate.io/api", jwt_token="your-jwt-token")# Create a logical test suiterequest = CreateTestSuiteRequest( name="critical_data_quality_checks", displayName="Critical Data Quality Checks", description="Groups all critical data quality test cases across production tables", executable=False)test_suite = TestSuites.create(request)print(f"Created: {test_suite.name}")# Create an executable test suiterequest = CreateTestSuiteRequest( name="dim_address_test_suite", displayName="Data Contract - dim_address", description="Executable test suite for dim_address table", executable=True)test_suite = TestSuites.create(request)print(f"Created: {test_suite.fullyQualifiedName}")
{ "id": "e86a9a11-852f-4bac-b5a7-993b2bbbb572", "name": "critical_data_quality_checks", "displayName": "Critical Data Quality Checks", "fullyQualifiedName": "critical_data_quality_checks", "description": "Groups all critical data quality test cases across production tables", "version": 0.1, "updatedAt": 1769982757893, "updatedBy": "admin", "deleted": false, "owners": [], "executable": false}
from metadata.sdk import configurefrom metadata.sdk.entities import TestSuitesfrom metadata.generated.schema.api.tests.createTestSuite import CreateTestSuiteRequestconfigure( host="https://your-company.getcollate.io/api", jwt_token="your-jwt-token")# Create a logical test suiterequest = CreateTestSuiteRequest( name="critical_data_quality_checks", displayName="Critical Data Quality Checks", description="Groups all critical data quality test cases across production tables", executable=False)test_suite = TestSuites.create(request)print(f"Created: {test_suite.name}")# Create an executable test suiterequest = CreateTestSuiteRequest( name="dim_address_test_suite", displayName="Data Contract - dim_address", description="Executable test suite for dim_address table", executable=True)test_suite = TestSuites.create(request)print(f"Created: {test_suite.fullyQualifiedName}")
{ "id": "e86a9a11-852f-4bac-b5a7-993b2bbbb572", "name": "critical_data_quality_checks", "displayName": "Critical Data Quality Checks", "fullyQualifiedName": "critical_data_quality_checks", "description": "Groups all critical data quality test cases across production tables", "version": 0.1, "updatedAt": 1769982757893, "updatedBy": "admin", "deleted": false, "owners": [], "executable": false}
Use PUT /v1/dataQuality/testSuites instead of POST to perform an upsert. If a test suite with the same name already exists, it will be updated; otherwise, a new test suite is created. The request body is the same as POST.
curl -X PUT "{base_url}/api/v1/dataQuality/testSuites" \ -H "Authorization: Bearer {access_token}" \ -H "Content-Type: application/json" \ -d '{ ... same body as POST ... }'
PUT will not return a 409 conflict error if the entity already exists — it will update the existing entity instead.