def test_mounts(self): with self._create_test_job() as job: docker = self.test_client() info = docker.inspect_container(job.container_id) work_mount = None resources_mount = None output_mount = None for mount in info["Mounts"]: if mount["Destination"] == DockerJob.WORK_DIR: work_mount = mount elif mount["Destination"] == DockerJob.RESOURCES_DIR: resources_mount = mount elif mount["Destination"] == DockerJob.OUTPUT_DIR: output_mount = mount work_dir = self.work_dir if not is_windows() \ else nt_path_to_posix_path(self.work_dir) resource_dir = self.resources_dir if not is_windows() \ else nt_path_to_posix_path(self.resources_dir) output_dir = self.output_dir if not is_windows()\ else nt_path_to_posix_path(self.output_dir) self.assertIsNotNone(work_mount) self.assertEqual(work_mount["Source"], work_dir) self.assertTrue(work_mount["RW"]) self.assertIsNotNone(resources_mount) self.assertEqual(resources_mount["Source"], resource_dir) self.assertFalse(resources_mount["RW"]) self.assertIsNotNone(output_mount) self.assertEqual(output_mount["Source"], output_dir) self.assertTrue(output_mount["RW"])
def test_path_conversion(self): self.assertEqual(nt_path_to_posix_path("c:\\Users\\Golem"), "/c/Users/Golem") self.assertEqual(nt_path_to_posix_path(u"c:\\Users\\Golem"), "/c/Users/Golem") self.assertEqual(nt_path_to_posix_path("C:\\Program Files (x86)"), "/c/Program Files (x86)") self.assertEqual(nt_path_to_posix_path("golem\\core\\common.py"), "golem/core/common.py") self.assertEqual(nt_path_to_posix_path("C:\\"), "/c/") self.assertEqual(nt_path_to_posix_path("/var/lib"), "/var/lib") self.assertEqual(nt_path_to_posix_path(""), "")
def get_absolute_resource_path(relative_path): return posixpath.join(DockerJob.RESOURCES_DIR, nt_path_to_posix_path(relative_path))
def posix_path(path): if is_windows(): return nt_path_to_posix_path(path) return path