mirror of
				https://github.com/open-metadata/OpenMetadata.git
				synced 2025-10-30 18:17:53 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			65 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import os
 | |
| import textwrap
 | |
| 
 | |
| import pytest
 | |
| from sqlalchemy import create_engine
 | |
| 
 | |
| from _openmetadata_testutils.helpers.docker import try_bind
 | |
| from metadata.generated.schema.api.services.createDatabaseService import (
 | |
|     CreateDatabaseServiceRequest,
 | |
| )
 | |
| from metadata.generated.schema.entity.services.connections.database.cockroachConnection import (
 | |
|     CockroachConnection,
 | |
| )
 | |
| from metadata.generated.schema.entity.services.databaseService import (
 | |
|     DatabaseConnection,
 | |
|     DatabaseServiceType,
 | |
| )
 | |
| 
 | |
| 
 | |
| @pytest.fixture(scope="module")
 | |
| def cockroach_container(tmp_path_factory):
 | |
|     """
 | |
|     Start a Cockroach container.
 | |
|     """
 | |
|     from testcontainers.cockroachdb import CockroachDBContainer
 | |
| 
 | |
|     container = CockroachDBContainer(image="cockroachdb/cockroach:v23.1.0")
 | |
| 
 | |
|     with (
 | |
|         try_bind(container, 26257, None) if not os.getenv("CI") else container
 | |
|     ) as container:
 | |
|         engine = create_engine(container.get_connection_url())
 | |
|         engine.execute(
 | |
|             textwrap.dedent(
 | |
|                 """
 | |
|                 CREATE TABLE user_profiles (
 | |
|                     user_id UUID PRIMARY KEY,
 | |
|                     first_name TEXT,
 | |
|                     last_name TEXT,
 | |
|                     email TEXT,
 | |
|                     signup_date TIMESTAMP,
 | |
|                     is_active BOOLEAN
 | |
|                 );
 | |
|                 """
 | |
|             )
 | |
|         )
 | |
| 
 | |
|         yield container
 | |
| 
 | |
| 
 | |
| @pytest.fixture(scope="module")
 | |
| def create_service_request(cockroach_container, tmp_path_factory):
 | |
|     return CreateDatabaseServiceRequest(
 | |
|         name="docker_test_" + tmp_path_factory.mktemp("cockroach").name,
 | |
|         serviceType=DatabaseServiceType.Cockroach,
 | |
|         connection=DatabaseConnection(
 | |
|             config=CockroachConnection(
 | |
|                 username=cockroach_container.username,
 | |
|                 authType={"password": cockroach_container.password},
 | |
|                 hostPort=f"localhost:{cockroach_container.get_exposed_port(26257)}",
 | |
|                 database=cockroach_container.dbname,
 | |
|             )
 | |
|         ),
 | |
|     )
 | 
