def test_writable_stream_creates_missing_directories(self): x_store = m.working_directory() / 'missing directory' / 'test-file' # create empty file with x_store.writable_stream(): pass x_read = m.working_directory() / 'missing directory' / 'test-file' self.assertEqual(b'', x_read.content)
def test_children_returns_list_of_externals_for_children(self): x_tempdir = m.working_directory() (x_tempdir / 'a').content = b'a content' (x_tempdir / 'b').content = b'b content' os.mkdir('c') x_test = m.working_directory() def name(x): return x.name children = sorted(x_test.children(), key=name) self.assertEqual(3, len(children)) self.assertEqual( ['a', 'b', 'c'], [name(child) for child in children])
def test_add_a_path_wrapped_in_slashes(self): x_tempdir = m.working_directory() # file dir-a/dir-b/file (x_tempdir / 'dir-a' / 'dir-b' / 'file').content = b'child' self.assertEqual( b'child', (x_tempdir / '/dir-a/dir-b/file/').content)
def test_set_content_creates_missing_directories_and_a_file(self): x_tempdir = m.working_directory() x_a = x_tempdir / 'a' x_ab = x_a / 'b' x_file = x_ab / 'c' x_file.content = b'content' with open('a/b/c', 'rb') as f: self.assertEqual(b'content', f.read())
def test_writable_stream_returns_an_open_file(self): x_tempdir = m.working_directory() x_store = x_tempdir / 'test-file' with x_store.writable_stream() as stream: stream.write(b's') stream.write(b'o') stream.write(b'mething4') x_read = x_tempdir / 'test-file' self.assertEqual(b'something4', x_read.content)
def test_directory_with_subdir_is_deleted(self): x_tempdir = m.working_directory() x_a = x_tempdir / 'a' x_ab = x_a / 'b' x_file = x_ab / 'c' x_file.content = b'content' x_a.delete() self.assertFalse(x_ab.exists())
def test_external_is_an_iterable_returning_children(self): x_tempdir = m.working_directory() (x_tempdir / 'a').content = b'a content' (x_tempdir / 'b').content = b'b content' os.mkdir('c') x_test = m.working_directory() children_list = [] # iterate over the external for child in x_test: children_list.append(child) def name(x): return x.name children = sorted(x_test.children(), key=name) self.assertEqual(3, len(children)) self.assertEqual( ['a', 'b', 'c'], [name(child) for child in children])
def _get_external(self): with in_temp_dir(): x = m.working_directory() / 'temporary file' x.content = b'something smallish' yield x
def test_working_directory_is_absolute(self): with in_temp_dir(): x1 = m.working_directory() with in_temp_dir(): x2 = m.working_directory() self.assertNotEqual(x1.path, x2.path)
def test_working_directory_is_an_fspath(self): self.assertIsInstance(m.working_directory(), m.File)
def test_adding_a_string_to_an_external_means_asking_for_a_child(self): x_tempdir = m.working_directory() (x_tempdir / 'a').content = b'child' self.assertEqual(b'child', (x_tempdir / 'a').content)