예제 #1
0
def test_local_file_handler_save(directory):
    handler = LocalFileHandler(base_path=directory)

    handler.save_data(filename='test.txt', data=b'contents')

    assert exists(directory, 'test.txt')
    assert get_contents(directory, 'test.txt') == b'contents'
예제 #2
0
def test_auto_create_directory(directory):
    directory = os.path.join(directory, 'folder', 'subfolder')
    handler = LocalFileHandler(base_path=directory, auto_make_dir=True)

    assert not os.path.exists(directory)
    handler.validate()

    assert os.path.exists(directory)
예제 #3
0
def test_error_when_no_directory(directory):
    directory = os.path.join(directory, 'folder', 'subfolder')
    handler = LocalFileHandler(base_path=directory)

    with pytest.raises(FilestorageConfigError) as err:
        handler.validate()

    assert directory.rstrip('/').rstrip('\\') in str(err.value)
    assert 'does not exist' in str(err.value)
예제 #4
0
def test_local_file_save_same_filename(directory):
    handler = LocalFileHandler(base_path=directory)

    first = handler.save_data(filename='test.txt', data=b'contents 1')
    second = handler.save_data(filename='test.txt', data=b'contents 2')
    third = handler.save_data(filename='test.txt', data=b'contents 3')

    assert first == 'test.txt'
    assert second == 'test-1.txt'
    assert third == 'test-2.txt'

    assert exists(directory, first)
    assert exists(directory, second)
    assert exists(directory, third)

    assert get_contents(directory, first) == b'contents 1'
    assert get_contents(directory, second) == b'contents 2'
    assert get_contents(directory, third) == b'contents 3'
예제 #5
0
def test_local_file_handler_try_save_subfolder(directory, store):
    store.handler = LocalFileHandler(base_path=directory, auto_make_dir=True)
    handler = store / 'folder' / 'subfolder'

    handler.save_data(filename='test.txt', data=b'contents')

    directory = os.path.join(directory, 'folder', 'subfolder')
    assert exists(directory, 'test.txt')
    assert get_contents(directory, 'test.txt') == b'contents'
예제 #6
0
def test_local_file_handler_get_modified_time(directory):
    handler = LocalFileHandler(base_path=directory)
    handler.save_data(filename='test.txt', data=b'contents')
    assert exists(directory, 'test.txt')

    item = handler.get_item('test.txt')
    mtime = handler.get_modified_time('test.txt')
    assert mtime == datetime.fromtimestamp(
        os.path.getmtime(handler.local_path(item))
    )