コード例 #1
0
def test_all_files():
    d = Directory()
    foo = File.from_record_row(['foo.py', '', ''])
    d.add_entry(foo)
    bar_glarch = File.from_record_row(['bar/glarch.py', '', ''])
    d.add_entry(bar_glarch)
    quux = File.from_record_row(['quux.py', '', ''])
    d.add_entry(quux)
    bar_cleesh = File.from_record_row(['bar/cleesh.py', '', ''])
    d.add_entry(bar_cleesh)
    assert d.entries == {
        "foo.py":
        foo,
        "bar":
        Directory(path='bar/',
                  entries={
                      "glarch.py": bar_glarch,
                      "cleesh.py": bar_cleesh
                  }),
        "quux.py":
        quux,
    }
    assert list(d.entries.keys()) == ["foo.py", "bar", "quux.py"]
    assert list(d["bar"].entries.keys()) == ["glarch.py", "cleesh.py"]
    assert list(d.all_files()) == [foo, bar_glarch, bar_cleesh, quux]
コード例 #2
0
def test_add_entry_in_known_dir():
    d = Directory()
    f = File.from_record_row(['foo/bar.py', '', ''])
    d.add_entry(f)
    f2 = File.from_record_row(['foo/glarch.py', '', ''])
    d.add_entry(f2)
    assert d.entries == {
        "foo": Directory(path='foo/', entries={
            "bar.py": f,
            "glarch.py": f2
        }),
    }
    assert d.entries["foo"].entries["glarch.py"] is f2
    assert d["foo"]["glarch.py"] is f2
    assert list(d["foo"].entries.keys()) == ["bar.py", "glarch.py"]
コード例 #3
0
def test_add_entry_nonempty_dir():
    d = Directory()
    foo = Directory('foo/')
    foo.add_entry(File.from_record_row(['foo/bar.py', '', '']))
    with pytest.raises(ValueError) as excinfo:
        d.add_entry(foo)
    assert str(excinfo.value) \
        == 'Cannot add nonempty directory to directory tree'
コード例 #4
0
def test_add_entry_two_1level_files():
    d = Directory()
    assert not bool(d)
    assert d.entries == {}
    assert d.files == {}
    assert "bar.py" not in d
    f = File.from_record_row(['foo.py', '', ''])
    d.add_entry(f)
    f2 = File.from_record_row(['bar.py', '', ''])
    d.add_entry(f2)
    assert bool(d)
    assert d.entries == {"foo.py": f, "bar.py": f2}
    assert d.files == {"foo.py": f, "bar.py": f2}
    assert d.entries["bar.py"] is f2
    assert d.files["bar.py"] is f2
    assert d["bar.py"] is f2
    assert "bar.py" in d
    assert list(d.entries.keys()) == ["foo.py", "bar.py"]
コード例 #5
0
def test_add_entry_known_dir():
    d = Directory()
    f = File.from_record_row(['foo/bar.py', '', ''])
    d.add_entry(f)
    sd = Directory("foo/")
    d.add_entry(sd)
    assert d.entries == {
        "foo": Directory(path='foo/', entries={"bar.py": f}),
    }
    assert d.entries["foo"].entries["bar.py"] is f
    assert d["foo"]["bar.py"] is f
コード例 #6
0
def test_add_entry_descendant():
    foo = Directory("foo/")
    assert not bool(foo)
    assert foo.entries == {}
    assert foo.files == {}
    assert "bar.py" not in foo
    f = File.from_record_row(['foo/bar.py', '', ''])
    foo.add_entry(f)
    assert bool(foo)
    assert foo.entries == {"bar.py": f}
    assert foo.files == {"bar.py": f}
    assert foo.entries["bar.py"] is f
    assert foo.files["bar.py"] is f
    assert foo["bar.py"] is f
    assert "bar.py" in foo
コード例 #7
0
def test_add_entry_2level_file():
    d = Directory()
    assert not bool(d)
    assert d.entries == {}
    assert "foo" not in d
    f = File.from_record_row(['foo/bar.py', '', ''])
    d.add_entry(f)
    assert bool(d)
    assert d.entries == {
        "foo": Directory(path='foo/', entries={"bar.py": f}),
    }
    assert d.entries["foo"].entries["bar.py"] is f
    assert d["foo"]["bar.py"] is f
    assert "foo" in d
    assert "bar.py" in d["foo"]
コード例 #8
0
def test_add_entry_1level_file():
    d = Directory()
    assert not bool(d)
    assert d.entries == {}
    assert d.files == {}
    assert "foo.py" not in d
    f = File.from_record_row(['foo.py', '', ''])
    d.add_entry(f)
    assert bool(d)
    assert d.entries == {"foo.py": f}
    assert d.files == {"foo.py": f}
    assert d.entries["foo.py"] is f
    assert d.files["foo.py"] is f
    assert d["foo.py"] is f
    assert "foo.py" in d
コード例 #9
0
def test_libparts(path, expected):
    assert File.from_record_row([path, '', '']).libparts == expected
コード例 #10
0
def test_from_record_row(row, expected):
    assert File.from_record_row(row) == expected
コード例 #11
0
def test_add_entry_not_descendant(path):
    foo = Directory("foo/")
    f = File.from_record_row([path, '', ''])
    with pytest.raises(ValueError) as excinfo:
        foo.add_entry(f)
    assert str(excinfo.value) == f"Path {path!r} is not a descendant of 'foo/'"
コード例 #12
0
def test_extension(path, ext):
    assert File.from_record_row([path, '', '']).extension == ext
コード例 #13
0
def test_is_valid_module_path(prefix, path, prebool, pathbool):
    f = File.from_record_row([prefix+path, '', ''])
    assert f.is_valid_module_path() is (prebool and pathbool)
コード例 #14
0
def test_from_record_row_path_validation_error(path, errmsg):
    with pytest.raises(WheelValidationError) as excinfo:
        File.from_record_row([path, '', ''])
    assert str(excinfo.value) == errmsg
コード例 #15
0
def test_from_record_row_dirpath_error():
    with pytest.raises(ValueError) as excinfo:
        File.from_record_row(['foo/', '', ''])
    assert str(excinfo.value) \
        == "Invalid file path passed to File.from_record_row(): 'foo/'"
コード例 #16
0
def test_from_record_row_bad_row(row):
    with pytest.raises(WheelValidationError) as excinfo:
        File.from_record_row(row)
    assert str(excinfo.value) == f'Invalid RECORD entry: {row!r}'
コード例 #17
0
def test_str_path_parts(path, parts):
    f = File.from_record_row([path, '', ''])
    assert str(f) == path
    assert f.path == path
    assert f.parts == parts
コード例 #18
0
def test_signature():
    assert File.from_record_row(['foo.py', 'sha256=abc', '42']).signature \
        == (42, 'sha256=abc')
コード例 #19
0
    assert str(excinfo.value) == f"Path {path!r} is not a descendant of 'foo/'"


def test_add_entry_nonempty_dir():
    d = Directory()
    foo = Directory('foo/')
    foo.add_entry(File.from_record_row(['foo/bar.py', '', '']))
    with pytest.raises(ValueError) as excinfo:
        d.add_entry(foo)
    assert str(excinfo.value) \
        == 'Cannot add nonempty directory to directory tree'


@pytest.mark.parametrize('entry1,entry2,errpath', [
    (
        File.from_record_row(['foo', '', '']),
        Directory('foo/'),
        'foo/',
    ),
    (
        Directory('foo/'),
        File.from_record_row(['foo', '', '']),
        'foo',
    ),
    (
        File.from_record_row(['foo/bar', '', '']),
        Directory('foo/bar/'),
        'foo/bar/',
    ),
    (
        Directory('foo/bar/'),
コード例 #20
0
def test_has_module_ext(path, expected):
    assert File.from_record_row([path, '', '']).has_module_ext() is expected