def test_main_push_path(self): self._populate(self.local1_base) os.chdir(self.local1_base) sys.argv[1:] = ["push", "remote", "-u", "-p", "dir"] synkrotron.main() self.assertEqual(("dir",), tuple(os.listdir(self.remote))) self.assertEqual(("file_ä",), tuple(os.listdir(os.path.join(self.remote, "dir"))))
def test_main_push_clear_delta(self): self._populate(self.local4_base) os.chdir(os.path.join(self.local4_base, "dir")) sys.argv[1:] = ["push", "remote", "-u", "--path=file_ä", "--delta=%s" % self.delta] synkrotron.main() # "clear/dir/file_ä" should be unencrypted self.assertTrue(os.path.exists(os.path.join(self.delta, "clear/dir/file_ä")))
def test_main_mount_push(self): self._populate(self.local3_base) os.chdir(self.local3_base) sys.argv[1:] = ["push", "remote"] synkrotron.main() Remote("remote", self.remote_host, self.local3_ms, key=self.key, mount_point=self.mount_point).umount() self.assertEqual(3, len(os.listdir(self.remote)))
def test_main_mount_pull_umount(self): self._populate(self.remote) os.chdir(self.local2_base) sys.argv[1:] = ["pull", "remote", "-u"] synkrotron.main() remote = Remote("remote", self.remote, self.local2_ms) self.assertFalse(os.path.exists(remote._sync_path("sshfs"))) self.assertEqual(3, len(os.listdir(self.local2_base)))
def test_main_mount(self): os.chdir(self.local3_base) sys.argv[1:] = ["mount", "remote"] synkrotron.main() self.assertTrue(os.path.islink(self.mount_point)) self._populate(self.mount_point) Remote("remote", self.remote_host, self.local3_ms, key=self.key, mount_point=self.mount_point).umount() self.assertEqual(3, len(os.listdir(self.remote)))
def test_main_umount(self): remote = Remote("remote", self.remote_host, self.local3_ms, key=self.key, mount_point=self.mount_point) remote.mount() os.chdir(self.local3_base) sys.argv[1:] = ["umount", "remote"] synkrotron.main() self.assertFalse(os.path.exists(self.mount_point)) self.assertFalse(os.path.exists(remote._sync_path("sshfs"))) self.assertFalse(os.path.exists(remote._sync_path("encfs")))
def test_main_push_clear(self): self._populate(self.local4_base) os.chdir(self.local4_base) sys.argv[1:] = ["push", "remote", "-u"] synkrotron.main() # "dir/file_ä" should be unencrypted self.assertListEqual(["file_ä"], os.listdir(os.path.join(self.remote, "clear/dir"))) # "file_ä" should be encrypted r = Remote("remote", self.remote_host, self.local4_ms, key=self.key) r.mount() files = [f for f in os.listdir(self.remote) if f != ".encfs6.xml" and f != "clear"] self.assertListEqual(["file_ä"], r.decrypt_names(files)) r.umount()
def _main_push_delta_key(self, path=None): self._populate(self.local3_base) os.chdir(self.local3_base) # push files to remote sys.argv[1:] = ["push", "remote", "-u"] synkrotron.main() os.makedirs(os.path.join(self.local3_base, "dir", "new")) # push changes to delta sys.argv[1:] = ["push", "remote", "-u", "--delta=%s" % self.delta] if path: sys.argv.append("--path=" + path) synkrotron.main() # check delta files r = Remote("remote", self.remote_host, self.local3_ms, key=self.key, mount_point=self.mount_point) r.mount() files = [f for f in os.listdir(self.delta) if f != ".encfs6.xml" and f != ".synkrotron"] self.assertListEqual(["dir"], r.decrypt_names(files)) path = os.path.join(self.delta, files[0]) self.assertListEqual(["new"], r.decrypt_names(os.listdir(path))) # push delta to remote os.chdir(self.delta) sys.argv[1:] = ["push", "remote", "-u"] synkrotron.main() # check remote files (should be the same now (encrypted of course) as the ones in self.local3_base) self.assertEqual(0, len(Diff(Repo(self.local3_base), Repo(r)).compute())) r.umount()
def test_main_push_sshfs_encfs_content(self): self._populate(self.local3_base) os.chdir(self.local3_base) sys.argv[1:] = ["push", "remote"] synkrotron.main() file_local = os.path.join(self.local3_base, "file_ä") file_remote = os.path.join(self.mount_point, "file_ä") with io.open(file_local, "w") as f: f.write("xontent") os.utime(file_local, (os.path.getatime(file_remote), os.path.getmtime(file_remote))) sys.argv[1:] = ["push", "remote", "--force"] synkrotron.main() with io.open(file_remote, "r") as f: self.assertEqual("content", f.read()) sys.argv[1:] = ["push", "remote", "--content", "--force", "--verbose"] synkrotron.main() with io.open(file_remote, "r") as f: self.assertEqual("xontent", f.read()) sys.argv[1:] = ["umount", "remote"] synkrotron.main()