1from __future__ import unicode_literals
2import os
3
4
5def test_read_hello(datadir):
6    assert set(os.listdir(str(datadir))) == {'local_directory', 'hello.txt', 'over.txt', 'a' * 250 + '.txt'}
7    with (datadir/'hello.txt').open() as fp:
8        contents = fp.read()
9    assert contents == 'Hello, world!\n'
10
11
12def test_change_test_files(datadir, original_datadir, shared_datadir, request):
13    filename = datadir / 'hello.txt'
14    with filename.open('w') as fp:
15        fp.write('Modified text!\n')
16
17    original_filename = original_datadir / 'hello.txt'
18    with original_filename.open() as fp:
19        assert fp.read() == 'Hello, world!\n'
20
21    with filename.open() as fp:
22        assert fp.read() == 'Modified text!\n'
23
24    shared_filename = shared_datadir/'over.txt'
25    with shared_filename.open('w') as fp:
26        fp.write('changed')
27    shared_original = os.path.join(request.fspath.dirname, 'data', 'over.txt')
28    with open(shared_original) as fp:
29        assert fp.read().strip() == '8000'
30
31
32
33def test_read_spam_from_other_dir(shared_datadir):
34    filename = shared_datadir / 'spam.txt'
35    with filename.open() as fp:
36        contents = fp.read()
37    assert contents == 'eggs\n'
38
39
40def test_file_override(shared_datadir, datadir):
41    """ The same file is in the module dir and global data.
42        Shared files are kept in a different temp directory"""
43    shared_filepath = shared_datadir/'over.txt'
44    private_filepath = datadir/'over.txt'
45    assert shared_filepath.is_file()
46    assert private_filepath.is_file()
47    assert shared_filepath != private_filepath
48
49
50def test_local_directory(datadir):
51    directory = datadir/'local_directory'
52    assert directory.is_dir()
53    filename = directory/'file.txt'
54    assert filename.is_file()
55    with filename.open() as fp:
56        contents = fp.read()
57    assert contents == 'local contents'
58
59
60def test_shared_directory(shared_datadir):
61    assert shared_datadir.is_dir()
62    filename = shared_datadir/'shared_directory'/'file.txt'
63    assert filename.is_file()
64    with filename.open() as fp:
65        contents = fp.read()
66    assert contents == 'global contents'
67
68