MCPcopy
hub / github.com/kopia/kopia / TestSnapshotList

Function TestSnapshotList

cli/command_snapshot_list_test.go:15–81  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

13)
14
15func TestSnapshotList(t *testing.T) {
16 t.Parallel()
17
18 runner := testenv.NewInProcRunner(t)
19 e := testenv.NewCLITest(t, testenv.RepoFormatNotImportant, runner)
20
21 defer e.RunAndExpectSuccess(t, "repo", "disconnect")
22
23 e.RunAndExpectSuccess(t, "repo", "create", "filesystem", "--path", e.RepoDir)
24
25 srcdir := testutil.TempDirectory(t)
26 require.NoError(t, os.WriteFile(filepath.Join(srcdir, "some-file2"), []byte{1, 2, 3}, 0o755))
27
28 var man cli.SnapshotManifest
29
30 e.RunAndExpectSuccess(t, "policy", "set", srcdir, "--keep-latest=4", "--keep-hourly=0", "--keep-daily=0", "--keep-monthly=0", "--keep-weekly=0", "--keep-annual=0")
31
32 testutil.MustParseJSONLines(t, e.RunAndExpectSuccess(t, "snapshot", "create", srcdir, "--json"), &man)
33
34 require.NoError(t, os.WriteFile(filepath.Join(srcdir, "some-file3"), []byte{1, 2, 3, 4}, 0o755))
35 testutil.MustParseJSONLines(t, e.RunAndExpectSuccess(t, "snapshot", "create", srcdir, "--json"), &man)
36
37 require.NoError(t, os.WriteFile(filepath.Join(srcdir, "some-file4"), []byte{4}, 0o755))
38 e.RunAndExpectSuccess(t, "snapshot", "create", srcdir)
39 e.RunAndExpectSuccess(t, "snapshot", "create", srcdir)
40
41 var snapshots []*cli.SnapshotManifest
42
43 testutil.MustParseJSONLines(t, e.RunAndExpectSuccess(t, "snapshot", "list",
44 "--json"), &snapshots)
45
46 require.Len(t, snapshots, 4)
47
48 for _, s := range snapshots {
49 require.NotEmpty(t, s.RetentionReasons, "expecting retention reason to be set")
50 }
51
52 lines := e.RunAndExpectSuccess(t, "snapshot", "list")
53 require.Len(t, lines, 5)
54
55 require.Contains(t, lines[1], " 3 B ")
56 require.Contains(t, lines[1], " files:1 dirs:1 ")
57
58 require.Contains(t, lines[2], " 7 B ")
59 require.Contains(t, lines[2], " files:2 dirs:1 ")
60
61 require.Contains(t, lines[3], " 8 B ")
62 require.Contains(t, lines[3], " files:3 dirs:1 ")
63
64 require.Contains(t, lines[4], "+ 1 identical snapshots until")
65
66 lines = e.RunAndExpectSuccess(t, "snapshot", "list", "-l")
67 require.Len(t, lines, 5)
68
69 require.Contains(t, lines[1], " 3 B ")
70 require.Contains(t, lines[1], " files:1 dirs:1 ")
71
72 require.Contains(t, lines[2], " 7 B ")

Callers

nothing calls this directly

Calls 8

RunAndExpectSuccessMethod · 0.95
NewInProcRunnerFunction · 0.92
NewCLITestFunction · 0.92
TempDirectoryFunction · 0.92
MustParseJSONLinesFunction · 0.92
WriteFileMethod · 0.65
LenMethod · 0.45
ContainsMethod · 0.45

Tested by

no test coverage detected