def test_folder_conflict(self): # delete a folder on one side, but change content on other side # Note: currently # raise SkipTest _write_test_file("local/folder1/file1_1.txt", dt="2014-01-01 13:00:00", content="local 13:00") _remove_test_folder("remote/folder1") opts = {} stats = _sync_test_folders(opts) # pprint(stats) self.assertEqual(stats["files_written"], 0) self.assertEqual(stats["download_files_written"], 0) self.assertEqual(stats["upload_files_written"], 0) self.assertEqual(stats["files_deleted"], 0) self.assertEqual(stats["dirs_deleted"], 1) self.assertEqual(stats["conflict_files"], 0) expect_local = { 'file1.txt': {'content': 'local1', 'date': '2014-01-01 12:00:00'}, 'file2.txt': {'content': 'local2', 'date': '2014-01-01 12:00:00'}, 'file3.txt': {'content': 'local3', 'date': '2014-01-01 12:00:00'}, 'file4.txt': {'content': 'local4', 'date': '2014-01-01 12:00:00'}, 'file5.txt': {'content': 'local5', 'date': '2014-01-01 12:00:00'}, 'file6.txt': {'content': 'local6', 'date': '2014-01-01 12:00:00'}, 'file7.txt': {'content': 'local7', 'date': '2014-01-01 12:00:00'}, 'file8.txt': {'content': 'local8', 'date': '2014-01-01 12:00:00'}, # 'folder1/file1_1.txt': {'content': 'local1_1', 'date': '2014-01-01 12:00:00'}, 'folder2/file2_1.txt': {'content': 'local2_1', 'date': '2014-01-01 12:00:00'}, 'folder3/file3_1.txt': {'content': 'local3_1', 'date': '2014-01-01 12:00:00'}, 'folder4/file4_1.txt': {'content': 'local4_1', 'date': '2014-01-01 12:00:00'}, } self.assertDictEqual(_get_test_folder("local"), expect_local) self.assertDictEqual(_get_test_folder("remote"), expect_local)
def test_resolve_local(self): # raise SkipTest opts = {"resolve": "local"} stats = self._do_run_suite(opts) self.assertEqual(stats["files_written"], 9) self.assertEqual(stats["download_files_written"], 3) self.assertEqual(stats["upload_files_written"], 6) self.assertEqual(stats["files_deleted"], 3) self.assertEqual(stats["dirs_deleted"], 2) self.assertEqual(stats["conflict_files"], 4) expect_local = { 'file1.txt': {'content': 'local 13:00', 'date': '2014-01-01 13:00:00'}, 'file3.txt': {'content': 'remote 13:00', 'date': '2014-01-01 13:00:00'}, 'file5.txt': {'content': 'local 13:00', 'date': '2014-01-01 13:00:00'}, # resolved conflict 'file6.txt': {'content': 'local 13:00:05', 'date': '2014-01-01 13:00:05'}, # resolved conflict 'file8.txt': {'content': 'local 13:00', 'date': '2014-01-01 13:00:00'}, # resolved conflict 'folder1/file1_1.txt': {'content': 'local 13:00', 'date': '2014-01-01 13:00:00'}, 'folder3/file3_1.txt': {'content': 'remote 13:00', 'date': '2014-01-01 13:00:00'}, 'new_file1.txt': {'content': 'local 13:00', 'date': '2014-01-01 13:00:00'}, 'new_file2.txt': {'content': 'remote 13:00', 'date': '2014-01-01 13:00:00'}, } self.assertDictEqual(_get_test_folder("local"), expect_local) self.assertDictEqual(_get_test_folder("remote"), expect_local)
def test_setUp(self): # Test that setUp code worked # raise SkipTest # Set should have created a copy of /local in /remote... self.assertTrue(_is_test_file("local/" + DirMetadata.META_FILE_NAME)) self.assertTrue(not _is_test_file("remote/" + DirMetadata.META_FILE_NAME)) # self.assertEqual(stats["files_written"], 8) self.assertDictEqual(_get_test_folder("local"), _get_test_folder("remote"))
def test_default(self): # raise SkipTest opts = {} # default options, i.e. 'skip' conflicts # Default options: expect 4 unresolved conflicts stats = self._do_run_suite(opts) # pprint(stats) # pprint(_get_test_folder("local")) # pprint(_get_test_folder("remote")) self.assertEqual(stats["files_written"], 6) self.assertEqual(stats["download_files_written"], 3) self.assertEqual(stats["upload_files_written"], 3) self.assertEqual(stats["files_deleted"], 2) self.assertEqual(stats["dirs_deleted"], 2) self.assertEqual(stats["conflict_files"], 4) expect_local = { 'file1.txt': {'content': 'local 13:00', 'date': '2014-01-01 13:00:00'}, 'file3.txt': {'content': 'remote 13:00', 'date': '2014-01-01 13:00:00'}, 'file5.txt': {'content': 'local 13:00', 'date': '2014-01-01 13:00:00'}, # unresolved conflict 'file6.txt': {'content': 'local 13:00:05', 'date': '2014-01-01 13:00:05'}, # unresolved conflict 'file8.txt': {'content': 'local 13:00', 'date': '2014-01-01 13:00:00'}, # unresolved conflict 'folder1/file1_1.txt': {'content': 'local 13:00', 'date': '2014-01-01 13:00:00'}, 'folder3/file3_1.txt': {'content': 'remote 13:00', 'date': '2014-01-01 13:00:00'}, 'new_file1.txt': {'content': 'local 13:00', 'date': '2014-01-01 13:00:00'}, 'new_file2.txt': {'content': 'remote 13:00', 'date': '2014-01-01 13:00:00'}, } expect_remote = { 'file1.txt': {'content': 'local 13:00', 'date': '2014-01-01 13:00:00'}, 'file3.txt': {'content': 'remote 13:00', 'date': '2014-01-01 13:00:00'}, 'file5.txt': {'content': 'remote 13:00:05', 'date': '2014-01-01 13:00:05'}, # unresolved conflict 'file6.txt': {'content': 'remote 13:00', 'date': '2014-01-01 13:00:00'}, # unresolved conflict 'file7.txt': {'content': 'remote 13:00', 'date': '2014-01-01 13:00:00'}, # unresolved conflict 'folder1/file1_1.txt': {'content': 'local 13:00', 'date': '2014-01-01 13:00:00'}, 'folder3/file3_1.txt': {'content': 'remote 13:00', 'date': '2014-01-01 13:00:00'}, 'new_file1.txt': {'content': 'local 13:00', 'date': '2014-01-01 13:00:00'}, 'new_file2.txt': {'content': 'remote 13:00', 'date': '2014-01-01 13:00:00'}, } self.assertDictEqual(_get_test_folder("local"), expect_local) self.assertDictEqual(_get_test_folder("remote"), expect_remote)