MCPcopy
hub / github.com/kopia/kopia / setup

Method setup

internal/repotesting/repotesting.go:60–138  ·  view source on GitHub ↗

setup sets up a test environment.

(tb testing.TB, version format.Version, opts ...Options)

Source from the content-addressed store, hash-verified

58
59// setup sets up a test environment.
60func (e *Environment) setup(tb testing.TB, version format.Version, opts ...Options) *Environment {
61 tb.Helper()
62
63 ctx := testlogging.Context(tb)
64 e.configDir = testutil.TempDirectory(tb)
65 openOpt := &repo.Options{}
66 connectOpt := &repo.ConnectOptions{}
67
68 opt := &repo.NewRepositoryOptions{
69 BlockFormat: format.ContentFormat{
70 MutableParameters: format.MutableParameters{
71 Version: version,
72 },
73 HMACSecret: []byte("a-repository-testing-hmac-secret"),
74 Hash: "HMAC-SHA256",
75 Encryption: encryption.DefaultAlgorithm,
76 EnablePasswordChange: true,
77 },
78 ObjectFormat: format.ObjectFormat{
79 Splitter: "FIXED-1M",
80 },
81 }
82
83 for _, mod := range opts {
84 if mod.NewRepositoryOptions != nil {
85 mod.NewRepositoryOptions(opt)
86 }
87
88 if mod.OpenOptions != nil {
89 mod.OpenOptions(openOpt)
90 }
91
92 if mod.ConnectOptions != nil {
93 mod.ConnectOptions(connectOpt)
94 }
95 }
96
97 var st blob.Storage
98 if opt.RetentionPeriod == 0 || opt.RetentionMode == "" {
99 st = blobtesting.NewMapStorage(blobtesting.DataMap{}, nil, openOpt.TimeNowFunc)
100 } else {
101 // use versioned mock storage when retention settings are specified
102 st = blobtesting.NewVersionedMapStorage(openOpt.TimeNowFunc)
103 }
104
105 st = NewReconnectableStorage(tb, st)
106 e.st = st
107
108 if e.Password == "" {
109 e.Password = DefaultPasswordForTesting
110 }
111
112 err := repo.Initialize(ctx, st, opt, e.Password)
113 require.NoError(tb, err)
114
115 err = repo.Connect(ctx, e.ConfigFile(), st, e.Password, connectOpt)
116 require.NoError(tb, err, "can't connect")
117

Callers 1

NewEnvironmentFunction · 0.95

Calls 14

ConfigFileMethod · 0.95
ContextFunction · 0.92
TempDirectoryFunction · 0.92
NewMapStorageFunction · 0.92
NewVersionedMapStorageFunction · 0.92
InitializeFunction · 0.92
ConnectFunction · 0.92
OpenFunction · 0.92
EnsureTypeFunction · 0.92
NewReconnectableStorageFunction · 0.85
HelperMethod · 0.80
NewDirectWriterMethod · 0.65

Tested by

no test coverage detected