]> arthur.barton.de Git - bup.git/blob - lib/bup/t/tmetadata.py
d6cd0563974a1c376eb8e54a648fa858f40507c3
[bup.git] / lib / bup / t / tmetadata.py
1 from bup import metadata
2 from wvtest import *
3
4
5 @wvtest
6 def test_clean_up_archive_path():
7     cleanup = metadata._clean_up_path_for_archive
8     WVPASSEQ(cleanup('foo'), 'foo')
9     WVPASSEQ(cleanup('/foo'), 'foo')
10     WVPASSEQ(cleanup('///foo'), 'foo')
11     WVPASSEQ(cleanup('/foo/bar'), 'foo/bar')
12     WVPASSEQ(cleanup('foo/./bar'), 'foo/bar')
13     WVPASSEQ(cleanup('/foo/./bar'), 'foo/bar')
14     WVPASSEQ(cleanup('/foo/./bar/././baz'), 'foo/bar/baz')
15     WVPASSEQ(cleanup('/foo/./bar///././baz'), 'foo/bar/baz')
16     WVPASSEQ(cleanup('//./foo/./bar///././baz/.///'), 'foo/bar/baz/')
17     WVPASSEQ(cleanup('./foo/./.bar'), 'foo/.bar')
18     WVPASSEQ(cleanup('./foo/.'), 'foo')
19     WVPASSEQ(cleanup('./foo/..'), '.')
20     WVPASSEQ(cleanup('//./..//.../..//.'), '.')
21     WVPASSEQ(cleanup('//./..//..././/.'), '...')
22     WVPASSEQ(cleanup('/////.'), '.')
23     WVPASSEQ(cleanup('/../'), '.')
24     WVPASSEQ(cleanup(''), '.')
25
26
27 @wvtest
28 def test_risky_path():
29     risky = metadata._risky_path
30     WVPASS(risky('/foo'))
31     WVPASS(risky('///foo'))
32     WVPASS(risky('/../foo'))
33     WVPASS(risky('../foo'))
34     WVPASS(risky('foo/..'))
35     WVPASS(risky('foo/../'))
36     WVPASS(risky('foo/../bar'))
37     WVFAIL(risky('foo'))
38     WVFAIL(risky('foo/'))
39     WVFAIL(risky('foo///'))
40     WVFAIL(risky('./foo'))
41     WVFAIL(risky('foo/.'))
42     WVFAIL(risky('./foo/.'))
43     WVFAIL(risky('foo/bar'))
44     WVFAIL(risky('foo/./bar'))
45
46
47 @wvtest
48 def test_clean_up_extract_path():
49     cleanup = metadata._clean_up_extract_path
50     WVPASSEQ(cleanup('/foo'), 'foo')
51     WVPASSEQ(cleanup('///foo'), 'foo')
52     WVFAIL(cleanup('/../foo'))
53     WVFAIL(cleanup('../foo'))
54     WVFAIL(cleanup('foo/..'))
55     WVFAIL(cleanup('foo/../'))
56     WVFAIL(cleanup('foo/../bar'))
57     WVPASSEQ(cleanup('foo'), 'foo')
58     WVPASSEQ(cleanup('foo/'), 'foo/')
59     WVPASSEQ(cleanup('foo///'), 'foo///')
60     WVPASSEQ(cleanup('./foo'), './foo')
61     WVPASSEQ(cleanup('foo/.'), 'foo/.')
62     WVPASSEQ(cleanup('./foo/.'), './foo/.')
63     WVPASSEQ(cleanup('foo/bar'), 'foo/bar')
64     WVPASSEQ(cleanup('foo/./bar'), 'foo/./bar')
65     WVPASSEQ(cleanup('/'), '.')
66     WVPASSEQ(cleanup('./'), './')
67     WVPASSEQ(cleanup('///foo/bar'), 'foo/bar')
68     WVPASSEQ(cleanup('///foo/bar'), 'foo/bar')