MCPcopy
hub / github.com/grafana/dskit / TestManagerGzip

Function TestManagerGzip

runtimeconfig/manager_test.go:197–260  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

195}
196
197func TestManagerGzip(t *testing.T) {
198 writeConfig := func(filename string, gzipped bool) string {
199 dir := t.TempDir()
200 filePath := filepath.Join(dir, filename)
201 f, err := os.Create(filePath)
202 require.NoError(t, err)
203 defer f.Close()
204 w := io.Writer(f)
205 if gzipped {
206 gw := gzip.NewWriter(f)
207 defer gw.Close()
208 w = gw
209 }
210 require.NoError(t, yaml.NewEncoder(w).Encode(map[string]any{
211 "overrides": map[string]any{
212 "user1": map[string]any{
213 "limit2": 150,
214 },
215 },
216 }))
217 return filePath
218 }
219
220 cfg := func(file string) Config {
221 return Config{
222 ReloadPeriod: time.Second,
223 LoadPath: []string{file},
224 Loader: testLoadOverrides,
225 }
226 }
227
228 defaultTestLimits = &TestLimits{Limit1: 100}
229 t.Run("gzipped with .gz extension should succeed", func(t *testing.T) {
230 file := writeConfig("overrides.yaml.gz", true)
231 manager, err := New(cfg(file), "overrides", nil, log.NewNopLogger())
232 require.NoError(t, err)
233 require.NoError(t, services.StartAndAwaitRunning(context.Background(), manager))
234 t.Cleanup(func() { require.NoError(t, services.StopAndAwaitTerminated(context.Background(), manager)) })
235
236 // Make sure test limits were loaded.
237 require.NotNil(t, manager.GetConfig())
238 conf := manager.GetConfig().(*testOverrides)
239 require.NotNil(t, conf)
240 require.Equal(t, 150, conf.Overrides["user1"].Limit2)
241 })
242
243 t.Run("non-gzipped with .gz extension should fail", func(t *testing.T) {
244 file := writeConfig("overrides.yaml.gz", false)
245 manager, err := New(cfg(file), "overrides", nil, log.NewNopLogger())
246 require.NoError(t, err)
247 err = services.StartAndAwaitRunning(context.Background(), manager)
248 require.Error(t, err)
249 require.ErrorIs(t, err, gzip.ErrHeader)
250 })
251
252 t.Run("gzipped without .gz extension should mention that in the error", func(t *testing.T) {
253 file := writeConfig("overrides.yaml", true)
254 manager, err := New(cfg(file), "overrides", nil, log.NewNopLogger())

Callers

nothing calls this directly

Calls 9

StartAndAwaitRunningFunction · 0.92
StopAndAwaitTerminatedFunction · 0.92
RunMethod · 0.80
GetConfigMethod · 0.80
NewFunction · 0.70
CloseMethod · 0.65
EncodeMethod · 0.65
EqualMethod · 0.45
ErrorMethod · 0.45

Tested by

no test coverage detected