11from sap_cloud_sdk .dms import create_client
2+ from sap_cloud_sdk .dms .model import InternalRepoRequest
23import pytest
4+ import logging
35from pathlib import Path
46from dotenv import load_dotenv
57
8+ logger = logging .getLogger (__name__ )
9+
10+ _SDK_TEST_REPO_PREFIX = "sdk-integration-test-"
11+
612
713@pytest .fixture (scope = "session" )
814def dms_client ():
@@ -17,6 +23,44 @@ def dms_client():
1723 pytest .skip (f"DMS integration tests require credentials: { e } " )
1824
1925
26+ @pytest .fixture (scope = "session" , autouse = True )
27+ def _setup_test_repositories (dms_client ):
28+ """Create test repositories for integration tests and clean up after.
29+
30+ Always onboards a standard and a version-enabled repository for the test
31+ session, then deletes them on teardown.
32+ """
33+ created_repos = []
34+
35+ logger .info ("Onboarding test repositories" )
36+ repo = dms_client .onboard_repository (
37+ InternalRepoRequest (
38+ displayName = f"{ _SDK_TEST_REPO_PREFIX } standard" ,
39+ description = "Auto-created by SDK integration tests" ,
40+ )
41+ )
42+ created_repos .append (repo .id )
43+
44+ repo = dms_client .onboard_repository (
45+ InternalRepoRequest (
46+ displayName = f"{ _SDK_TEST_REPO_PREFIX } versioned" ,
47+ description = "Auto-created by SDK integration tests (versioning)" ,
48+ isVersionEnabled = True ,
49+ )
50+ )
51+ created_repos .append (repo .id )
52+
53+ yield
54+
55+ # Cleanup: delete repositories we created
56+ for repo_id in created_repos :
57+ try :
58+ dms_client .delete_repository (repo_id )
59+ logger .info ("Cleaned up test repository %s" , repo_id )
60+ except Exception as e :
61+ logger .warning ("Failed to clean up test repository %s: %s" , repo_id , e )
62+
63+
2064def _setup_cloud_mode ():
2165 """Common setup for cloud mode integration tests."""
2266 env_file = Path (__file__ ).parents [3 ] / ".env_integration_tests"
0 commit comments