def test_pickles(self):
     self.assertEqual(ShellBool.true, psaves('test.pkl', [[1, 2, 3], {
         4: 5
     }]))
     self.assertEqual([[1, 2, 3], {4: 5}], ploads('test.pkl'))
     self.assertEqual([[1, 2, 3]], ploads('test.pkl', limit=1))
     rm('test.pkl')
Пример #2
0
 def test_rm_with_one_nonexistant(self):
     write('existant', 'contents')
     self.assertRaises(FileNotFoundError,
                       lambda: rm('existant', 'nonexistant'))
     self.assertEqual(['existant'], ls())
     rm('existant', 'nonexistant', ignore_missing=True)
     self.assertEqual([], ls())
 def test_mv_single_file_to_existing_folder(self):
     write('file', 'contents')
     mkdir('folder')
     move_to('file', 'folder')
     self.assertEqual(['folder'], ls())
     self.assertEqual(['file'], ls('folder'))
     self.assertEqual('contents', read('folder/file'))
     rm('folder', recursively=True)
 def test_mv_single_file_to_nonexistant_folder(self):
     write('file', 'contents')
     self.assertRaises(RuntimeError, lambda: move_to('file', 'folder', create_dir=False))
     move_to('file', 'folder')
     self.assertEqual(['folder'], ls())
     self.assertEqual(['file'], ls('folder'))
     self.assertEqual('contents', read('folder/file'))
     rm('folder', recursively=True)
Пример #5
0
 def test_rm_with_one_with_contents(self):
     write('existant', 'contents')
     mkdir('folder')
     write('folder/file', 'contents')
     self.assertRaises(CannotRemoveDirectoryError,
                       lambda: rm('existant', 'folder', interactive=False))
     self.assertEqual(['existant', 'folder'], ls())
     rm('existant', 'folder', recursively=True)
     self.assertEqual([], ls())
Пример #6
0
 def test_read_fail(self):
     result = cat('nonexistant') > Collect
     self.assertEqual(False, bool(result))
     self.assertIn("No such file", result.stderr())
     mkdir('folder')
     result = cat('folder') > Collect
     self.assertEqual(False, bool(result))
     self.assertIn("Is a directory", result.stderr())
     rm('folder')
 def test_mv_dst_exists(self):
     write('src', 'abc')
     write('file', 'def')
     self.assertRaises(RuntimeError, lambda: mv('src', 'file'))
     self.assertEqual(['file', 'src'], ls())
     mv('src', 'file', overwrite=True)
     self.assertEqual(['file'], ls())
     self.assertEqual('abc', read('file'))
     rm('file')
 def test_mv_dst_folder_doesnt_exist(self):
     write('src', 'abc')
     mv('src', 'folder/file')
     self.assertEqual(['folder'], ls())
     self.assertEqual(['file'], ls('folder'))
     self.assertEqual('abc', read('folder/file'))
     mv('folder/file', 'folder/to/a/file')
     self.assertEqual(['folder'], ls())
     self.assertEqual(['to'], ls('folder'))
     self.assertEqual(['a'], ls('folder/to'))
     self.assertEqual(['file'], ls('folder/to/a'))
     self.assertEqual('abc', read('folder/to/a/file'))
     rm('folder', recursively=True)
Пример #9
0
 def test_more_complicated_cd(self):
     mkdir('path/to/folder')
     cd('path')
     self.assertEqual(join(INITIAL_PWD, 'path'), pwd())
     cd('..')
     self.assertEqual(INITIAL_PWD, pwd())
     cd('path/to')
     self.assertEqual(join(INITIAL_PWD, 'path/to'), pwd())
     cd('.')
     self.assertEqual(join(INITIAL_PWD, 'path/to'), pwd())
     cd('..')
     self.assertEqual(join(INITIAL_PWD, 'path'), pwd())
     cd('to/folder')
     self.assertEqual(join(INITIAL_PWD, 'path/to/folder'), pwd())
     write('file.txt', "hello")
     cd(3)
     self.assertEqual(join(INITIAL_PWD, 'path/to'), pwd())
     cd(1)
     self.assertEqual(INITIAL_PWD, pwd())
     cd(1)
     self.assertEqual(join(INITIAL_PWD, 'path'), pwd())
     cd(INITIAL_PWD)
     self.assertEqual(read('path/to/folder/file.txt'), "hello")
     rm('path', recursively=True)
Пример #10
0
 def test_rm_nonemptydir(self):
     mkdir('path')
     write('path/file', 'contents')
     self.assertRaises(CannotRemoveDirectoryError,
                       lambda: rm('path', interactive=False))
     self.assertEqual(['path'], ls())
     rm('path', recursively=True)
     self.assertEqual([], ls())
     mkdir('path')
     write('path/file', '')
     Interactive.ask_question = lambda _: "n"
     rm('path')
     self.assertEqual(['path'], ls())
     Interactive.ask_question = lambda _: "y"
     rm("path")
     self.assertEqual([], ls())
Пример #11
0
 def test_rmdir(self):
     mkdir('empty-folder')
     rm('empty-folder')
     self.assertEqual([], ls())
Пример #12
0
 def test_rm_dne(self):
     self.assertRaises(FileNotFoundError, lambda: rm('does-not-exist'))
     rm('does-not-exist', ignore_missing=True)
Пример #13
0
 def test_chaining(self):
     write('test', '') and write('test2', '')
     self.assertEqual(ls(), ['test', 'test2'])
     rm('test', 'test2')
 def test_pload_wrong_size(self):
     self.assertEqual(ShellBool.true, psaves('test.pkl', []))
     self.assertRaises(RuntimeError, lambda: pload('test.pkl'))
     self.assertEqual(ShellBool.true, psaves('test.pkl', [1, 2]))
     self.assertRaises(RuntimeError, lambda: pload('test.pkl'))
     rm('test.pkl')
 def test_glob_multiple(self):
     write('file', 'contents')
     write('second_file', 'contents')
     self.assertEqual(['file', 'second_file'], globs("*f*"))
     self.assertRaises(RuntimeError, lambda: glob("*f*"))
     rm('file', 'second_file')
Пример #16
0
 def test_read_succeed(self):
     write('file', 'contents\nline 2')
     self.assertEqual('contents\nline 2', (cat('file') > Collect).stdout())
     write('file', 'contents\n', clobber=True)
     self.assertEqual('contents\n', (cat('file') > Collect).stdout())
     rm('file')
Пример #17
0
 def test_mv_single_file_to_existant_file(self):
     write('file', 'contents')
     write('other_file', 'contents')
     self.assertRaises(RuntimeError, lambda: move_to('file', 'other_file'))
     rm('file', 'other_file', recursively=True)
Пример #18
0
 def test_return_code(self):
     mkdir('path')
     self.assertEqual(ShellBool.true, cd('path'))
     self.assertEqual(ShellBool.true, cd('..'))
     self.assertRaises(FileNotFoundError, lambda: cd('does-not-exist'))
     rm('path')
Пример #19
0
 def test_mv_dst_folder_doesnt_exist_create_dir_false(self):
     write('src', 'abc')
     self.assertRaises(RuntimeError, lambda: mv('src', 'folder/file', create_dir=False))
     rm('src')
Пример #20
0
 def test_mv_dst_folder(self):
     write('src', 'abc')
     mkdir('folder')
     self.assertRaises(RuntimeError, lambda: mv('src', 'folder'))
     rm('folder', 'src')
Пример #21
0
 def test_rm_symlink(self):
     write('file', 'contents')
     symlink('file', 'link')
     rm('link')
     self.assertEqual(['file'], ls())
     rm('file')
Пример #22
0
 def test_rm_symlink_to_folder(self):
     mkdir('folder')
     symlink('folder', 'link')
     rm('link')
     self.assertEqual(['folder'], ls())
     rm('folder')
 def test_pickle(self):
     self.assertEqual(ShellBool.true, psave('test.pkl', [1, 2, 3]))
     self.assertEqual(pload('test.pkl'), [1, 2, 3])
     rm('test.pkl')
 def test_mkdir(self):
     self.assertEqual(ShellBool.true, mkdir('folder'))
     self.assertEqual(ShellBool.false, mkdir('folder'))
     rm('folder')
 def test_glob_single(self):
     write('file', 'contents')
     write('second_file', 'contents')
     self.assertEqual(['file'], globs("f*"))
     self.assertEqual('file', glob("f*"))
     rm('file', 'second_file')