1 from bup import metadata
6 def test__normalize_ts():
7 normalize = metadata._normalize_ts
9 for ts in ((0, 0), (-1, 0), (0, bns - 1), (-1, bns - 1)):
10 WVPASSEQ(normalize(ts), ts)
11 WVPASSEQ(normalize((0, -1)), (-1, bns - 1))
12 WVPASSEQ(normalize((-1, -1)), (-2, bns - 1))
13 WVPASSEQ(normalize((0, bns)), (1, 0))
14 WVPASSEQ(normalize((0, bns + 1)), (1, 1))
15 WVPASSEQ(normalize((0, -bns)), (-1, 0))
16 WVPASSEQ(normalize((0, -(bns + 1))), (-2, bns - 1))
17 WVPASSEQ(normalize((0, 3 * bns)), (3, 0))
18 WVPASSEQ(normalize((0, -3 * bns)), (-3, 0))
22 def test_clean_up_archive_path():
23 cleanup = metadata._clean_up_path_for_archive
24 WVPASSEQ(cleanup('foo'), 'foo')
25 WVPASSEQ(cleanup('/foo'), 'foo')
26 WVPASSEQ(cleanup('///foo'), 'foo')
27 WVPASSEQ(cleanup('/foo/bar'), 'foo/bar')
28 WVPASSEQ(cleanup('foo/./bar'), 'foo/bar')
29 WVPASSEQ(cleanup('/foo/./bar'), 'foo/bar')
30 WVPASSEQ(cleanup('/foo/./bar/././baz'), 'foo/bar/baz')
31 WVPASSEQ(cleanup('/foo/./bar///././baz'), 'foo/bar/baz')
32 WVPASSEQ(cleanup('//./foo/./bar///././baz/.///'), 'foo/bar/baz/')
33 WVPASSEQ(cleanup('./foo/./.bar'), 'foo/.bar')
34 WVPASSEQ(cleanup('./foo/.'), 'foo')
35 WVPASSEQ(cleanup('./foo/..'), '.')
36 WVPASSEQ(cleanup('//./..//.../..//.'), '.')
37 WVPASSEQ(cleanup('//./..//..././/.'), '...')
38 WVPASSEQ(cleanup('/////.'), '.')
39 WVPASSEQ(cleanup('/../'), '.')
40 WVPASSEQ(cleanup(''), '.')
44 def test_risky_path():
45 risky = metadata._risky_path
47 WVPASS(risky('///foo'))
48 WVPASS(risky('/../foo'))
49 WVPASS(risky('../foo'))
50 WVPASS(risky('foo/..'))
51 WVPASS(risky('foo/../'))
52 WVPASS(risky('foo/../bar'))
55 WVFAIL(risky('foo///'))
56 WVFAIL(risky('./foo'))
57 WVFAIL(risky('foo/.'))
58 WVFAIL(risky('./foo/.'))
59 WVFAIL(risky('foo/bar'))
60 WVFAIL(risky('foo/./bar'))
64 def test_clean_up_extract_path():
65 cleanup = metadata._clean_up_extract_path
66 WVPASSEQ(cleanup('/foo'), 'foo')
67 WVPASSEQ(cleanup('///foo'), 'foo')
68 WVFAIL(cleanup('/../foo'))
69 WVFAIL(cleanup('../foo'))
70 WVFAIL(cleanup('foo/..'))
71 WVFAIL(cleanup('foo/../'))
72 WVFAIL(cleanup('foo/../bar'))
73 WVPASSEQ(cleanup('foo'), 'foo')
74 WVPASSEQ(cleanup('foo/'), 'foo/')
75 WVPASSEQ(cleanup('foo///'), 'foo///')
76 WVPASSEQ(cleanup('./foo'), './foo')
77 WVPASSEQ(cleanup('foo/.'), 'foo/.')
78 WVPASSEQ(cleanup('./foo/.'), './foo/.')
79 WVPASSEQ(cleanup('foo/bar'), 'foo/bar')
80 WVPASSEQ(cleanup('foo/./bar'), 'foo/./bar')
81 WVPASSEQ(cleanup('/'), '.')
82 WVPASSEQ(cleanup('./'), './')
83 WVPASSEQ(cleanup('///foo/bar'), 'foo/bar')
84 WVPASSEQ(cleanup('///foo/bar'), 'foo/bar')