MCPcopy Index your code
hub / github.com/cortexproject/cortex / TestBackupRules

Function TestBackupRules

pkg/ruler/manager_test.go:264–305  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

262}
263
264func TestBackupRules(t *testing.T) {
265 dir := t.TempDir()
266 reg := prometheus.NewPedanticRegistry()
267 evalMetrics := NewRuleEvalMetrics(Config{RulePath: dir, EnableQueryStats: true}, reg)
268 waitDurations := []time.Duration{
269 1 * time.Millisecond,
270 1 * time.Millisecond,
271 }
272 ruleManagerFactory := RuleManagerFactory(nil, waitDurations)
273 config := Config{RulePath: dir}
274 config.Ring.ReplicationFactor = 3
275 m, err := NewDefaultMultiTenantManager(config, &ruleLimits{}, ruleManagerFactory, evalMetrics, reg, log.NewNopLogger())
276 require.NoError(t, err)
277
278 const user1 = "testUser"
279 const user2 = "testUser2"
280
281 require.Equal(t, 0, len(m.GetBackupRules(user1)))
282 require.Equal(t, 0, len(m.GetBackupRules(user2)))
283
284 userRules := map[string]rulespb.RuleGroupList{
285 user1: {
286 &rulespb.RuleGroupDesc{
287 Name: "group1",
288 Namespace: "ns",
289 Interval: 1 * time.Minute,
290 User: user1,
291 },
292 },
293 user2: {
294 &rulespb.RuleGroupDesc{
295 Name: "group2",
296 Namespace: "ns",
297 Interval: 1 * time.Minute,
298 User: user1,
299 },
300 },
301 }
302 m.BackUpRuleGroups(context.TODO(), userRules)
303 require.Equal(t, userRules[user1], m.GetBackupRules(user1))
304 require.Equal(t, userRules[user2], m.GetBackupRules(user2))
305}
306
307func getManager(m *DefaultMultiTenantManager, user string) RulesManager {
308 m.userManagerMtx.RLock()

Callers

nothing calls this directly

Calls 6

GetBackupRulesMethod · 0.95
BackUpRuleGroupsMethod · 0.95
NewRuleEvalMetricsFunction · 0.85
RuleManagerFactoryFunction · 0.85
EqualMethod · 0.65

Tested by

no test coverage detected