github.com/weaviate/weaviate@v1.24.6/test/helper/journey/backup_journey_tests.go (about) 1 // _ _ 2 // __ _____ __ ___ ___ __ _| |_ ___ 3 // \ \ /\ / / _ \/ _` \ \ / / |/ _` | __/ _ \ 4 // \ V V / __/ (_| |\ V /| | (_| | || __/ 5 // \_/\_/ \___|\__,_| \_/ |_|\__,_|\__\___| 6 // 7 // Copyright © 2016 - 2024 Weaviate B.V. All rights reserved. 8 // 9 // CONTACT: hello@weaviate.io 10 // 11 12 package journey 13 14 import ( 15 "testing" 16 ) 17 18 // BackupJourneyTests_SingleNode this method gathers all backup related e2e tests 19 func BackupJourneyTests_SingleNode(t *testing.T, weaviateEndpoint, backend, className, backupID string, tenantNames []string) { 20 if len(tenantNames) > 0 { 21 t.Run("multi-tenant single node backup", func(t *testing.T) { 22 singleNodeBackupJourneyTest(t, weaviateEndpoint, backend, className, backupID, tenantNames, false) 23 }) 24 t.Run("multi-tenant single node backup with empty class", func(t *testing.T) { 25 singleNodeBackupEmptyClassJourneyTest(t, weaviateEndpoint, backend, className, backupID+"_empty", tenantNames) 26 }) 27 } else { 28 // This is a simple test which covers almost the same scenario as singleNodeBackupJourneyTest 29 // but is left here to be expanded in the future with a more complex example 30 // like adding there a new reference property and trying to run the test with 2 classes which 31 // one of those classes is a class with a reference property 32 t.Run("backup and restore Books", func(t *testing.T) { 33 backupAndRestoreJourneyTest(t, weaviateEndpoint, backend, false) 34 }) 35 36 t.Run("backup and restore Books with named vectors", func(t *testing.T) { 37 backupAndRestoreJourneyTest(t, weaviateEndpoint, backend, true) 38 }) 39 40 t.Run("single-tenant single node backup", func(t *testing.T) { 41 singleNodeBackupJourneyTest(t, weaviateEndpoint, backend, className, backupID, nil, false) 42 }) 43 44 t.Run("single-tenant single node backup with PQ", func(t *testing.T) { 45 singleNodeBackupJourneyTest(t, weaviateEndpoint, backend, className, backupID+"_pq", nil, true) 46 }) 47 } 48 } 49 50 // BackupJourneyTests_Cluster this method gathers all backup related e2e tests to be run on a cluster 51 func BackupJourneyTests_Cluster(t *testing.T, backend, className, backupID string, 52 tenantNames []string, weaviateEndpoints ...string, 53 ) { 54 if len(weaviateEndpoints) <= 1 { 55 t.Fatal("must provide more than one node for cluster backup test") 56 } 57 58 if len(tenantNames) > 0 { 59 t.Run("multi-tenant cluster backup", func(t *testing.T) { 60 coordinator := weaviateEndpoints[0] 61 clusterBackupJourneyTest(t, backend, className, backupID, 62 coordinator, tenantNames, false, weaviateEndpoints[1:]...) 63 }) 64 t.Run("multi-tenant cluster backup with empty class", func(t *testing.T) { 65 coordinator := weaviateEndpoints[0] 66 clusterBackupEmptyClassJourneyTest(t, backend, className, backupID+"_empty", 67 coordinator, tenantNames, weaviateEndpoints[1:]...) 68 }) 69 } else { 70 t.Run("single-tenant cluster backup", func(t *testing.T) { 71 if len(weaviateEndpoints) <= 1 { 72 t.Fatal("must provide more than one node for cluster backup test") 73 } 74 75 coordinator := weaviateEndpoints[0] 76 clusterBackupJourneyTest(t, backend, className, backupID+"_pq", 77 coordinator, nil, true, weaviateEndpoints[1:]...) 78 }) 79 } 80 } 81 82 func NodeMappingBackupJourneyTests_SingleNode_Backup(t *testing.T, weaviateEndpoint, backend, className, backupID string, tenantNames []string) { 83 if len(tenantNames) > 0 { 84 t.Run("multi-tenant single node backup", func(t *testing.T) { 85 singleNodeNodeMappingBackupJourney_Backup(t, weaviateEndpoint, backend, className, backupID, tenantNames) 86 }) 87 } else { 88 t.Run("single-tenant single node backup", func(t *testing.T) { 89 singleNodeNodeMappingBackupJourney_Backup(t, weaviateEndpoint, backend, className, backupID, nil) 90 }) 91 } 92 } 93 94 func NodeMappingBackupJourneyTests_SingleNode_Restore(t *testing.T, weaviateEndpoint, backend, className, backupID string, tenantNames []string, nodeMapping map[string]string) { 95 if len(tenantNames) > 0 { 96 t.Run("multi-tenant single node restore", func(t *testing.T) { 97 singleNodeNodeMappingBackupJourney_Restore(t, weaviateEndpoint, backend, className, backupID, tenantNames, nodeMapping) 98 }) 99 } else { 100 t.Run("single-tenant single node restore", func(t *testing.T) { 101 singleNodeNodeMappingBackupJourney_Restore(t, weaviateEndpoint, backend, className, backupID, nil, nodeMapping) 102 }) 103 } 104 }