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'
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'
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 )
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
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') )
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
def test_url_path(): item = FileItem(filename='foo.txt', path=('folder', 'subfolder')) assert item.url_path == 'folder/subfolder/foo.txt'
def text_content_type_fixed(): item = FileItem(filename='foo.txt', media_type='wacky') assert item.content_type == 'wacky'
def test_content_type_guess(filename, mediatype): item = FileItem(filename=filename) assert item.content_type == mediatype
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', ))
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
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))
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