From 0854d7b040bb3882ebbce666de179f8f05d89a34 Mon Sep 17 00:00:00 2001 From: patrick Date: Tue, 27 Oct 2026 23:37:39 +0100 Subject: [PATCH] ai: testdb aus common statt interner Kopie Co-Authored-By: Claude Sonnet 5.5 --- ai/cmd/ai-app/main_test.go | 2 +- ai/internal/confidence/confidence_test.go | 2 +- ai/internal/contracttest/contracttest_test.go | 2 +- ai/internal/correction/correction_test.go | 2 +- ai/internal/doctype/doctype_test.go | 2 +- ai/internal/embedpipeline/pipeline_test.go | 2 +- .../extractconfirmapi_test.go | 2 +- .../extractmapping/extractmapping_test.go | 2 +- ai/internal/modelconfig/modelconfig_test.go | 2 +- ai/internal/moduletype/moduletype_test.go | 2 +- .../moduletypeapi/moduletypeapi_test.go | 2 +- ai/internal/prompttemplate/store_test.go | 2 +- ai/internal/qa05gate/qa05gate_test.go | 2 +- ai/internal/queue/queue_test.go | 2 +- ai/internal/quota/quota_test.go | 2 +- ai/internal/residency/residency_test.go | 2 +- ai/internal/residencyapi/residencyapi_test.go | 2 +- .../routingfeedback/routingfeedback_test.go | 2 +- .../routingsuggestapi_test.go | 2 +- .../semanticsearch/integration_test.go | 2 +- .../tenantfeature/tenantfeature_test.go | 2 +- ai/internal/testdb/testdb.go | 62 ------------------- ai/internal/vectorindex/vectorindex_test.go | 2 +- 23 files changed, 22 insertions(+), 84 deletions(-) delete mode 100644 ai/internal/testdb/testdb.go diff --git a/ai/cmd/ai-app/main_test.go b/ai/cmd/ai-app/main_test.go index d02c39c7..144dc4d9 100644 --- a/ai/cmd/ai-app/main_test.go +++ b/ai/cmd/ai-app/main_test.go @@ -17,7 +17,7 @@ import ( "gitea.perlbach24.de/scripte/nexarch/ai/internal/provider" "gitea.perlbach24.de/scripte/nexarch/ai/internal/provider/mock" "gitea.perlbach24.de/scripte/nexarch/ai/internal/queue" - "gitea.perlbach24.de/scripte/nexarch/ai/internal/testdb" + "gitea.perlbach24.de/scripte/nexarch/common/testdb" ) // AK3 + AK4: eine fehlende Pflicht-Umgebungsvariable liefert einen klaren diff --git a/ai/internal/confidence/confidence_test.go b/ai/internal/confidence/confidence_test.go index bd1f724f..d72e141f 100644 --- a/ai/internal/confidence/confidence_test.go +++ b/ai/internal/confidence/confidence_test.go @@ -8,7 +8,7 @@ import ( "testing" "gitea.perlbach24.de/scripte/nexarch/ai/internal/migrate" - "gitea.perlbach24.de/scripte/nexarch/ai/internal/testdb" + "gitea.perlbach24.de/scripte/nexarch/common/testdb" ) func newStore(t *testing.T) *Store { diff --git a/ai/internal/contracttest/contracttest_test.go b/ai/internal/contracttest/contracttest_test.go index ebb89276..e3da9ec7 100644 --- a/ai/internal/contracttest/contracttest_test.go +++ b/ai/internal/contracttest/contracttest_test.go @@ -9,7 +9,7 @@ import ( "gitea.perlbach24.de/scripte/nexarch/ai/internal/migrate" "gitea.perlbach24.de/scripte/nexarch/ai/internal/moduletype" - "gitea.perlbach24.de/scripte/nexarch/ai/internal/testdb" + "gitea.perlbach24.de/scripte/nexarch/common/testdb" ) // --- Vertrag 1: GOV-01 registrierter Objekttyp (moduletype.ObjectType) --- diff --git a/ai/internal/correction/correction_test.go b/ai/internal/correction/correction_test.go index 27c8270e..3dcbb1cd 100644 --- a/ai/internal/correction/correction_test.go +++ b/ai/internal/correction/correction_test.go @@ -7,7 +7,7 @@ import ( "testing" "gitea.perlbach24.de/scripte/nexarch/ai/internal/migrate" - "gitea.perlbach24.de/scripte/nexarch/ai/internal/testdb" + "gitea.perlbach24.de/scripte/nexarch/common/testdb" ) func newRecorder(t *testing.T) *Recorder { diff --git a/ai/internal/doctype/doctype_test.go b/ai/internal/doctype/doctype_test.go index 75efcd88..d54d8f93 100644 --- a/ai/internal/doctype/doctype_test.go +++ b/ai/internal/doctype/doctype_test.go @@ -11,7 +11,7 @@ import ( "gitea.perlbach24.de/scripte/nexarch/ai/internal/classify" "gitea.perlbach24.de/scripte/nexarch/ai/internal/migrate" "gitea.perlbach24.de/scripte/nexarch/ai/internal/provider" - "gitea.perlbach24.de/scripte/nexarch/ai/internal/testdb" + "gitea.perlbach24.de/scripte/nexarch/common/testdb" "github.com/jackc/pgx/v5/pgxpool" ) diff --git a/ai/internal/embedpipeline/pipeline_test.go b/ai/internal/embedpipeline/pipeline_test.go index 4338001c..fd6c215f 100644 --- a/ai/internal/embedpipeline/pipeline_test.go +++ b/ai/internal/embedpipeline/pipeline_test.go @@ -14,7 +14,7 @@ import ( "gitea.perlbach24.de/scripte/nexarch/ai/internal/migrate" "gitea.perlbach24.de/scripte/nexarch/ai/internal/provider" "gitea.perlbach24.de/scripte/nexarch/ai/internal/queue" - "gitea.perlbach24.de/scripte/nexarch/ai/internal/testdb" + "gitea.perlbach24.de/scripte/nexarch/common/testdb" ) func newPool(t *testing.T) *pgxpool.Pool { diff --git a/ai/internal/extractconfirmapi/extractconfirmapi_test.go b/ai/internal/extractconfirmapi/extractconfirmapi_test.go index c3186926..671106f0 100644 --- a/ai/internal/extractconfirmapi/extractconfirmapi_test.go +++ b/ai/internal/extractconfirmapi/extractconfirmapi_test.go @@ -13,7 +13,7 @@ import ( "gitea.perlbach24.de/scripte/nexarch/ai/internal/extractmapping" "gitea.perlbach24.de/scripte/nexarch/ai/internal/metadatapushclient" "gitea.perlbach24.de/scripte/nexarch/ai/internal/migrate" - "gitea.perlbach24.de/scripte/nexarch/ai/internal/testdb" + "gitea.perlbach24.de/scripte/nexarch/common/testdb" ) func newMappingRegistry(t *testing.T) *extractmapping.Registry { diff --git a/ai/internal/extractmapping/extractmapping_test.go b/ai/internal/extractmapping/extractmapping_test.go index d55e84ae..85490ee3 100644 --- a/ai/internal/extractmapping/extractmapping_test.go +++ b/ai/internal/extractmapping/extractmapping_test.go @@ -10,7 +10,7 @@ import ( "testing" "gitea.perlbach24.de/scripte/nexarch/ai/internal/migrate" - "gitea.perlbach24.de/scripte/nexarch/ai/internal/testdb" + "gitea.perlbach24.de/scripte/nexarch/common/testdb" ) func newRegistry(t *testing.T) *Registry { diff --git a/ai/internal/modelconfig/modelconfig_test.go b/ai/internal/modelconfig/modelconfig_test.go index 0fa23b33..801f1a24 100644 --- a/ai/internal/modelconfig/modelconfig_test.go +++ b/ai/internal/modelconfig/modelconfig_test.go @@ -11,7 +11,7 @@ import ( "gitea.perlbach24.de/scripte/nexarch/ai/internal/migrate" "gitea.perlbach24.de/scripte/nexarch/ai/internal/modelconfig" - "gitea.perlbach24.de/scripte/nexarch/ai/internal/testdb" + "gitea.perlbach24.de/scripte/nexarch/common/testdb" ) type fakeLister struct { diff --git a/ai/internal/moduletype/moduletype_test.go b/ai/internal/moduletype/moduletype_test.go index e54f444d..ca6b3fde 100644 --- a/ai/internal/moduletype/moduletype_test.go +++ b/ai/internal/moduletype/moduletype_test.go @@ -8,7 +8,7 @@ import ( "testing" "gitea.perlbach24.de/scripte/nexarch/ai/internal/migrate" - "gitea.perlbach24.de/scripte/nexarch/ai/internal/testdb" + "gitea.perlbach24.de/scripte/nexarch/common/testdb" ) // fakeVerifier simuliert Core TEN-01 fuer die Registry-Tests, ohne einen diff --git a/ai/internal/moduletypeapi/moduletypeapi_test.go b/ai/internal/moduletypeapi/moduletypeapi_test.go index f7cdb5e1..fd747b5d 100644 --- a/ai/internal/moduletypeapi/moduletypeapi_test.go +++ b/ai/internal/moduletypeapi/moduletypeapi_test.go @@ -12,7 +12,7 @@ import ( "gitea.perlbach24.de/scripte/nexarch/ai/internal/migrate" "gitea.perlbach24.de/scripte/nexarch/ai/internal/moduletype" - "gitea.perlbach24.de/scripte/nexarch/ai/internal/testdb" + "gitea.perlbach24.de/scripte/nexarch/common/testdb" ) type fakeVerifier struct{ validTenants map[string]bool } diff --git a/ai/internal/prompttemplate/store_test.go b/ai/internal/prompttemplate/store_test.go index 8db2d854..1e189cdd 100644 --- a/ai/internal/prompttemplate/store_test.go +++ b/ai/internal/prompttemplate/store_test.go @@ -9,7 +9,7 @@ import ( "testing" "gitea.perlbach24.de/scripte/nexarch/ai/internal/migrate" - "gitea.perlbach24.de/scripte/nexarch/ai/internal/testdb" + "gitea.perlbach24.de/scripte/nexarch/common/testdb" ) func newStore(t *testing.T) *Store { diff --git a/ai/internal/qa05gate/qa05gate_test.go b/ai/internal/qa05gate/qa05gate_test.go index a1334331..ba59637f 100644 --- a/ai/internal/qa05gate/qa05gate_test.go +++ b/ai/internal/qa05gate/qa05gate_test.go @@ -23,8 +23,8 @@ import ( "gitea.perlbach24.de/scripte/nexarch/ai/internal/provider/openai" "gitea.perlbach24.de/scripte/nexarch/ai/internal/residency" "gitea.perlbach24.de/scripte/nexarch/ai/internal/tenantfeature" - "gitea.perlbach24.de/scripte/nexarch/ai/internal/testdb" "gitea.perlbach24.de/scripte/nexarch/common/auditclient" + "gitea.perlbach24.de/scripte/nexarch/common/testdb" ) // realPool liefert einen frischen, migrierten Pool auf der Wegwerf-DB aus diff --git a/ai/internal/queue/queue_test.go b/ai/internal/queue/queue_test.go index 8f779069..2da4e938 100644 --- a/ai/internal/queue/queue_test.go +++ b/ai/internal/queue/queue_test.go @@ -14,7 +14,7 @@ import ( "gitea.perlbach24.de/scripte/nexarch/ai/internal/migrate" "gitea.perlbach24.de/scripte/nexarch/ai/internal/provider" - "gitea.perlbach24.de/scripte/nexarch/ai/internal/testdb" + "gitea.perlbach24.de/scripte/nexarch/common/testdb" ) func newPool(t *testing.T) *pgxpool.Pool { diff --git a/ai/internal/quota/quota_test.go b/ai/internal/quota/quota_test.go index 88c5b1e5..531e980b 100644 --- a/ai/internal/quota/quota_test.go +++ b/ai/internal/quota/quota_test.go @@ -11,7 +11,7 @@ import ( "github.com/jackc/pgx/v5/pgxpool" "gitea.perlbach24.de/scripte/nexarch/ai/internal/migrate" - "gitea.perlbach24.de/scripte/nexarch/ai/internal/testdb" + "gitea.perlbach24.de/scripte/nexarch/common/testdb" ) func newPool(t *testing.T) *pgxpool.Pool { diff --git a/ai/internal/residency/residency_test.go b/ai/internal/residency/residency_test.go index e6f0d3fd..24539032 100644 --- a/ai/internal/residency/residency_test.go +++ b/ai/internal/residency/residency_test.go @@ -9,7 +9,7 @@ import ( "gitea.perlbach24.de/scripte/nexarch/ai/internal/migrate" "gitea.perlbach24.de/scripte/nexarch/ai/internal/provider/openai" "gitea.perlbach24.de/scripte/nexarch/ai/internal/residency" - "gitea.perlbach24.de/scripte/nexarch/ai/internal/testdb" + "gitea.perlbach24.de/scripte/nexarch/common/testdb" ) func setup(t *testing.T) *residency.Store { diff --git a/ai/internal/residencyapi/residencyapi_test.go b/ai/internal/residencyapi/residencyapi_test.go index 398a8497..afacb323 100644 --- a/ai/internal/residencyapi/residencyapi_test.go +++ b/ai/internal/residencyapi/residencyapi_test.go @@ -13,7 +13,7 @@ import ( "gitea.perlbach24.de/scripte/nexarch/ai/internal/migrate" "gitea.perlbach24.de/scripte/nexarch/ai/internal/residency" "gitea.perlbach24.de/scripte/nexarch/ai/internal/residencyapi" - "gitea.perlbach24.de/scripte/nexarch/ai/internal/testdb" + "gitea.perlbach24.de/scripte/nexarch/common/testdb" ) const testToken = "test-service-token" diff --git a/ai/internal/routingfeedback/routingfeedback_test.go b/ai/internal/routingfeedback/routingfeedback_test.go index 436935cf..2c6b35c1 100644 --- a/ai/internal/routingfeedback/routingfeedback_test.go +++ b/ai/internal/routingfeedback/routingfeedback_test.go @@ -8,7 +8,7 @@ import ( "gitea.perlbach24.de/scripte/nexarch/ai/internal/historysuggest" "gitea.perlbach24.de/scripte/nexarch/ai/internal/migrate" - "gitea.perlbach24.de/scripte/nexarch/ai/internal/testdb" + "gitea.perlbach24.de/scripte/nexarch/common/testdb" ) func newStore(t *testing.T) *Store { diff --git a/ai/internal/routingsuggestapi/routingsuggestapi_test.go b/ai/internal/routingsuggestapi/routingsuggestapi_test.go index 89fbde60..fde52523 100644 --- a/ai/internal/routingsuggestapi/routingsuggestapi_test.go +++ b/ai/internal/routingsuggestapi/routingsuggestapi_test.go @@ -11,7 +11,7 @@ import ( "gitea.perlbach24.de/scripte/nexarch/ai/internal/migrate" "gitea.perlbach24.de/scripte/nexarch/ai/internal/routingfeedback" - "gitea.perlbach24.de/scripte/nexarch/ai/internal/testdb" + "gitea.perlbach24.de/scripte/nexarch/common/testdb" ) const testToken = "test-service-token" diff --git a/ai/internal/semanticsearch/integration_test.go b/ai/internal/semanticsearch/integration_test.go index b0f02fca..d012952c 100644 --- a/ai/internal/semanticsearch/integration_test.go +++ b/ai/internal/semanticsearch/integration_test.go @@ -11,8 +11,8 @@ import ( "gitea.perlbach24.de/scripte/nexarch/ai/internal/migrate" "gitea.perlbach24.de/scripte/nexarch/ai/internal/semanticsearch" - "gitea.perlbach24.de/scripte/nexarch/ai/internal/testdb" "gitea.perlbach24.de/scripte/nexarch/ai/internal/vectorindex" + "gitea.perlbach24.de/scripte/nexarch/common/testdb" ) func newRealPool(t *testing.T) *pgxpool.Pool { diff --git a/ai/internal/tenantfeature/tenantfeature_test.go b/ai/internal/tenantfeature/tenantfeature_test.go index d0a7e9e7..1ab61bce 100644 --- a/ai/internal/tenantfeature/tenantfeature_test.go +++ b/ai/internal/tenantfeature/tenantfeature_test.go @@ -7,7 +7,7 @@ import ( "testing" "gitea.perlbach24.de/scripte/nexarch/ai/internal/migrate" - "gitea.perlbach24.de/scripte/nexarch/ai/internal/testdb" + "gitea.perlbach24.de/scripte/nexarch/common/testdb" ) func newStore(t *testing.T) *Store { diff --git a/ai/internal/testdb/testdb.go b/ai/internal/testdb/testdb.go deleted file mode 100644 index c5db1b1a..00000000 --- a/ai/internal/testdb/testdb.go +++ /dev/null @@ -1,62 +0,0 @@ -// Package testdb liefert Integrationstests einen Pool auf ein eigenes, -// frisch angelegtes Schema (search_path = Schema, public). Tabellen, die ein -// Test per CREATE TABLE anlegt, entstehen damit nur in diesem Schema; Pakete, -// Laeufe und parallele Checkouts teilen sich keine Tabellen mehr. -package testdb - -import ( - "context" - "fmt" - "sync/atomic" - "testing" - "time" - - "github.com/jackc/pgx/v5/pgxpool" -) - -var seq atomic.Int64 - -// Pool legt ein Schema an und liefert einen darauf ausgerichteten Pool; -// beides wird per t.Cleanup wieder entfernt. -func Pool(t testing.TB, dsn string) *pgxpool.Pool { - t.Helper() - pool, _ := PoolWithSchema(t, dsn, nil) - return pool -} - -// PoolWithSchema wie Pool, zusaetzlich mit dem Schemanamen und der -// Moeglichkeit, die Verbindungskonfiguration anzupassen. -func PoolWithSchema(t testing.TB, dsn string, adjust func(*pgxpool.Config)) (*pgxpool.Pool, string) { - t.Helper() - ctx := context.Background() - admin, err := pgxpool.New(ctx, dsn) - if err != nil { - t.Fatalf("testdb: verbindung: %v", err) - } - schema := fmt.Sprintf("connecttest_%d_%d", time.Now().UnixNano(), seq.Add(1)) - if _, err := admin.Exec(ctx, "CREATE SCHEMA "+schema); err != nil { - admin.Close() - t.Fatalf("testdb: schema anlegen: %v", err) - } - - cfg, err := pgxpool.ParseConfig(dsn) - if err != nil { - admin.Close() - t.Fatalf("testdb: dsn: %v", err) - } - cfg.ConnConfig.RuntimeParams["search_path"] = schema + ",public" - if adjust != nil { - adjust(cfg) - } - pool, err := pgxpool.NewWithConfig(ctx, cfg) - if err != nil { - admin.Close() - t.Fatalf("testdb: pool: %v", err) - } - t.Cleanup(func() { - pool.Close() - _, _ = admin.Exec(context.Background(), "DROP SCHEMA "+schema+" CASCADE") - admin.Close() - }) - return pool, schema -} diff --git a/ai/internal/vectorindex/vectorindex_test.go b/ai/internal/vectorindex/vectorindex_test.go index 494ea24a..405fd213 100644 --- a/ai/internal/vectorindex/vectorindex_test.go +++ b/ai/internal/vectorindex/vectorindex_test.go @@ -11,8 +11,8 @@ import ( "github.com/jackc/pgx/v5/pgxpool" "gitea.perlbach24.de/scripte/nexarch/ai/internal/migrate" - "gitea.perlbach24.de/scripte/nexarch/ai/internal/testdb" "gitea.perlbach24.de/scripte/nexarch/ai/internal/vectorindex" + "gitea.perlbach24.de/scripte/nexarch/common/testdb" ) func newPool(t *testing.T) *pgxpool.Pool { -- 2.47.3