Exemple #1
0
def test_grf_open_empty_file(data_files):
    expected = b''
    # encoding.grf contains only empty files
    grf = open_grf(data_files['encoding.grf'])
    name = list(grf.files()).pop()
    opened_file = grf.open(name)
    assert opened_file.data == expected
Exemple #2
0
def test_grf_files_has_correct_length(data_files, name, expected):
    grf = open_grf(data_files[name])
    files_length = len(list(grf.files()))
    assert files_length == expected
Exemple #3
0
def test_grf_raises_invalid_grf_error(data_files, name):
    with pytest.raises(GRFParseError):
        open_grf(data_files[name])
Exemple #4
0
def test_grf_has_correct_encryption(data_files, name, expected):
    grf = open_grf(data_files[name])
    assert grf.allow_encryption == expected
Exemple #5
0
def test_grf_has_correct_version(data_files, name, expected):
    grf = open_grf(data_files[name])
    assert grf.version == expected
Exemple #6
0
def test_grf_decodes_filenames(data_files):
    expected = open(data_files['encoding.txt'], encoding='utf8')
    expected = {line.strip() for line in expected}
    grf = open_grf(data_files['encoding.grf'])
    names = {f.filename.replace('\\', '/') for f in grf}
    assert names == expected
Exemple #7
0
def test_grf_iterator_contains_opened_files(data_files):
    grf = open_grf(data_files['ab.grf'])
    for f in grf:
        assert f == grf.open(f.filename)
Exemple #8
0
def test_grf_iterator_has_correct_files(data_files, name, expected):
    grf = open_grf(data_files[name])
    names = {f.filename for f in grf}
    assert names == expected
Exemple #9
0
def test_grf_open_known_filetypes(data_files, name, filetype):
    grf = open_grf(data_files['filetypes.grf'])
    opened_file = grf.open(name)
    assert isinstance(opened_file, filetype)
Exemple #10
0
def test_grf_open_file_is_io_object(data_files):
    grf = open_grf(data_files['ab.grf'])
    opened_file = grf.open('b.dat')
    assert isinstance(opened_file, io.IOBase)
Exemple #11
0
def test_grf_open_file_has_correct_data(data_files, name):
    expected = open(data_files[name], 'rb').read()
    grf = open_grf(data_files['ab.grf'])
    opened_file = grf.open(name)
    assert opened_file.data == expected
Exemple #12
0
def test_grf_has_correct_length(data_files, name, expected):
    grf = open_grf(data_files[name])
    length = len(grf)
    assert length == expected
Exemple #13
0
def test_grf_open_file_has_correct_filename(data_files, name):
    grf = open_grf(data_files['ab.grf'])
    opened_file = grf.open(name)
    assert opened_file.filename == name
Exemple #14
0
def test_grf_files_has_correct_files(data_files, name, expected):
    grf = open_grf(data_files[name])
    names = set(grf.files())
    assert names == expected
Exemple #15
0
def test_grf_extract_creates_correct_file(tmpdir, data_files, name):
    expected_path = os.path.join(tmpdir.strpath, 'data', name)
    grf = open_grf(data_files['ab.grf'])
    grf.extract(name, tmpdir.strpath)
    assert os.path.exists(expected_path)
Exemple #16
0
def test_grf_iterator_has_correct_length(data_files, name, expected):
    grf = open_grf(data_files[name])
    iterator_length = len(list(grf))
    assert iterator_length == expected
Exemple #17
0
def test_grf_extract_created_file_has_correct_data(tmpdir, data_files, name):
    original_path = data_files[name]
    expected_path = os.path.join(tmpdir.strpath, 'data', name)
    grf = open_grf(data_files['ab.grf'])
    grf.extract(name, tmpdir.strpath)
    assert filecmp.cmp(original_path, expected_path, False)
Exemple #18
0
def test_grf_iterates_twice(data_files, name):
    grf = open_grf(data_files[name])
    first = {f.filename for f in grf}
    second = {f.filename for f in grf}
    assert first == second
Exemple #19
0
def test_grf_extract_raises_file_not_found_error(data_files):
    grf = open_grf(data_files['ab.grf'])
    with pytest.raises(FileNotFoundError):
        grf.extract('invalid file name')
Exemple #20
0
def test_grf_decodes_filenames(data_files):
    expected = {line.strip() for line in open(data_files['encoding.txt'])}
    grf = open_grf(data_files['encoding.grf'])
    names = {f.filename for f in grf}
    assert names == expected
Exemple #21
0
def test_grf_has_correct_version(data_files, name):
    grf = open_grf(data_files[name])
    assert grf.version == 0x200