Пример #1
0
def test_fs_path():
    item = FileItem(filename='foo.txt', path=('folder', 'subfolder'))

    if os.name == 'nt':
        assert item.fs_path == 'folder\\subfolder\\foo.txt'
    else:
        assert item.fs_path == 'folder/subfolder/foo.txt'
Пример #2
0
async def test_async_fileitem_reader():
    item = FileItem(filename='foo.txt', data=BytesIO(b'contents'))
    item.data.seek(3)

    async with item as f:
        assert await f.read() == b'contents'
        await f.seek(3)
        assert await f.read() == b'tents'
Пример #3
0
 def assert_get_modified_time(
     self, filename: str, path: Tuple[str, ...], date: datetime
 ) -> None:
     """Assert that given file modification time is equal to the anticipated time."""
     assert (
         self._get_modified_time(FileItem(filename=filename, path=path))
         == date
     )
Пример #4
0
def test_copy_all():
    item = FileItem(
        filename='foo.txt',
        path=('folder', ),
        data=BytesIO(b'contents'),
        media_type='stuff',
    )

    new_item = item.copy()

    # Identical tuples are identical
    assert new_item == item
    assert new_item.data is item.data
Пример #5
0
def test_copy_new_data():
    item = FileItem(
        filename='foo.txt',
        path=('folder', ),
        data=BytesIO(b'contents'),
        media_type='stuff',
    )

    new_item = item.copy(data=BytesIO(b'other'))

    # Tuple is no longer identical as the data is different
    assert new_item != item
    assert new_item.filename == item.filename
    assert new_item.path == item.path
    assert new_item.media_type == item.media_type
def item():
    return FileItem(
        filename='file.txt', path=('folder',), data=BytesIO(b'content')
    )
Пример #7
0
def test_has_data():
    item1 = FileItem(filename='foo.txt')
    item2 = FileItem(filename='foo.txt', data=BytesIO(b''))

    assert not item1.has_data
    assert item2.has_data
Пример #8
0
def test_url_path():
    item = FileItem(filename='foo.txt', path=('folder', 'subfolder'))

    assert item.url_path == 'folder/subfolder/foo.txt'
Пример #9
0
def text_content_type_fixed():
    item = FileItem(filename='foo.txt', media_type='wacky')

    assert item.content_type == 'wacky'
Пример #10
0
def test_content_type_guess(filename, mediatype):
    item = FileItem(filename=filename)

    assert item.content_type == mediatype
Пример #11
0
def test_get_item():
    handler = DummyHandler(path=['foo'])
    item = handler.get_item('file.txt')

    assert isinstance(item, FileItem)
    assert item == FileItem(filename='file.txt', path=('foo', ))
Пример #12
0
 def assert_get_size(
     self, filename: str, path: Tuple[str, ...], size: int
 ) -> None:
     """Assert that given file size is equal to the anticipated size."""
     assert self._get_size(FileItem(filename=filename, path=path)) == size
Пример #13
0
 def assert_exists(self, filename: str, path: Tuple[str, ...]) -> None:
     """Assert that the given file exists in the dummy file system."""
     assert self._exists(FileItem(filename=filename, path=path))
Пример #14
0
 def assert_file_contains(
     self, filename: str, path: Tuple[str, ...], data: bytes
 ) -> None:
     """Assert that the given file contains the given data."""
     item = FileItem(filename=filename, path=path)
     assert self.files[item.url_path] == data