Exemple #1
0
 def test_symlink(self) -> None:
     _symlink = self._tmpfile + "_symlink"  # pyre-ignore
     assert PathManager.symlink(self._tmpfile, _symlink)  # pyre-ignore
     with PathManager.open(_symlink) as f:
         self.assertEqual(f.read(), self._tmpfile_contents)
     assert os.readlink(_symlink) == self._tmpfile
     os.remove(_symlink)
Exemple #2
0
 def test_isfile(self) -> None:
     self.assertTrue(PathManager.isfile(self._tmpfile))  # pyre-ignore
     # This is a directory, not a file, so it should fail
     self.assertFalse(PathManager.isfile(self._tmpdir))  # pyre-ignore
     # This is a non-existing path, so it should fail
     fake_path = os.path.join(self._tmpdir, uuid.uuid4().hex)  # pyre-ignore
     self.assertFalse(PathManager.isfile(fake_path))
Exemple #3
0
 def test_copy(self) -> None:
     _tmpfile_2 = self._tmpfile + "2"  # pyre-ignore
     _tmpfile_2_contents = "something else"
     with open(_tmpfile_2, "w") as f:
         f.write(_tmpfile_2_contents)
         f.flush()
     # pyre-ignore
     assert PathManager.copy(self._tmpfile, _tmpfile_2, True)
     with PathManager.open(_tmpfile_2, "r") as f:
         self.assertEqual(f.read(), self._tmpfile_contents)
Exemple #4
0
 def test_open_args(self) -> None:
     PathManager.set_strict_kwargs_checking(True)
     f = PathManager.open(
         self._tmpfile,  # type: ignore
         mode="r",
         buffering=1,
         encoding="UTF-8",
         errors="ignore",
         newline=None,
         closefd=True,
         opener=None,
     )
     f.close()
Exemple #5
0
    def test_ls(self) -> None:
        # Create some files in the tempdir to ls out.
        root_dir = os.path.join(self._tmpdir, "ls")  # pyre-ignore
        os.makedirs(root_dir, exist_ok=True)
        files = sorted(["foo.txt", "bar.txt", "baz.txt"])
        for f in files:
            open(os.path.join(root_dir, f), "a").close()

        children = sorted(PathManager.ls(root_dir))
        self.assertListEqual(children, files)

        # Cleanup the tempdir
        shutil.rmtree(root_dir)
Exemple #6
0
 def test_rm(self) -> None:
     # pyre-ignore
     with open(os.path.join(self._tmpdir, "test_rm.txt"), "w") as f:
         rm_file = f.name
         f.write(self._tmpfile_contents)
         f.flush()
     self.assertTrue(PathManager.exists(rm_file))
     self.assertTrue(PathManager.isfile(rm_file))
     PathManager.rm(rm_file)
     self.assertFalse(PathManager.exists(rm_file))
     self.assertFalse(PathManager.isfile(rm_file))
Exemple #7
0
 def test_exists(self) -> None:
     # pyre-ignore
     self.assertTrue(PathManager.exists(self._tmpfile))
     # pyre-ignore
     fake_path = os.path.join(self._tmpdir, uuid.uuid4().hex)
     self.assertFalse(PathManager.exists(fake_path))
Exemple #8
0
 def test_get_local_path(self) -> None:
     self.assertEqual(
         # pyre-ignore
         PathManager.get_local_path(self._tmpfile),
         self._tmpfile,
     )
Exemple #9
0
 def test_open(self) -> None:
     # pyre-ignore
     with PathManager.open(self._tmpfile, "r") as f:
         self.assertEqual(f.read(), self._tmpfile_contents)
Exemple #10
0
 def test_PathManager(self) -> None:
     x = LazyPath(lambda: "./")
     output = PathManager.ls(x)  # pyre-ignore
     output_gt = PathManager.ls("./")
     self.assertEqual(sorted(output), sorted(output_gt))
Exemple #11
0
    def test_bad_args(self) -> None:
        with self.assertRaises(NotImplementedError):
            PathManager.copy(self._remote_uri, self._remote_uri, foo="foo")  # type: ignore
        with self.assertRaises(NotImplementedError):
            PathManager.exists(self._remote_uri, foo="foo")  # type: ignore
        with self.assertRaises(ValueError):
            PathManager.get_local_path(self._remote_uri, foo="foo")  # type: ignore
        with self.assertRaises(NotImplementedError):
            PathManager.isdir(self._remote_uri, foo="foo")  # type: ignore
        with self.assertRaises(NotImplementedError):
            PathManager.isfile(self._remote_uri, foo="foo")  # type: ignore
        with self.assertRaises(NotImplementedError):
            PathManager.ls(self._remote_uri, foo="foo")  # type: ignore
        with self.assertRaises(NotImplementedError):
            PathManager.mkdirs(self._remote_uri, foo="foo")  # type: ignore
        with self.assertRaises(ValueError):
            PathManager.open(self._remote_uri, foo="foo")  # type: ignore
        with self.assertRaises(NotImplementedError):
            PathManager.rm(self._remote_uri, foo="foo")  # type: ignore

        PathManager.set_strict_kwargs_checking(False)

        PathManager.get_local_path(self._remote_uri, foo="foo")  # type: ignore
        f = PathManager.open(self._remote_uri, foo="foo")  # type: ignore
        f.close()
        PathManager.set_strict_kwargs_checking(True)
Exemple #12
0
 def test_open_writes(self) -> None:
     # HTTPURLHandler does not support writing, only reading.
     with self.assertRaises(AssertionError):
         with PathManager.open(self._remote_uri, "w") as f:
             f.write("foobar")  # pyre-ignore
Exemple #13
0
 def test_open(self) -> None:
     with self._patch_download():
         with PathManager.open(self._remote_uri, "rb") as f:
             self.assertTrue(os.path.exists(f.name))
             self.assertTrue(os.path.isfile(f.name))
             self.assertTrue(f.read() != "")
Exemple #14
0
 def test_get_local_path(self) -> None:
     with self._patch_download():
         local_path = PathManager.get_local_path(self._remote_uri)
         self.assertTrue(os.path.exists(local_path))
         self.assertTrue(os.path.isfile(local_path))
Exemple #15
0
    def test_bad_args(self) -> None:
        # TODO (T58240718): Replace with dynamic checks
        with self.assertRaises(ValueError):
            PathManager.copy(self._tmpfile, self._tmpfile, foo="foo")  # type: ignore
        with self.assertRaises(ValueError):
            PathManager.exists(self._tmpfile, foo="foo")  # type: ignore
        with self.assertRaises(ValueError):
            PathManager.get_local_path(self._tmpfile, foo="foo")  # type: ignore
        with self.assertRaises(ValueError):
            PathManager.isdir(self._tmpfile, foo="foo")  # type: ignore
        with self.assertRaises(ValueError):
            PathManager.isfile(self._tmpfile, foo="foo")  # type: ignore
        with self.assertRaises(ValueError):
            PathManager.ls(self._tmpfile, foo="foo")  # type: ignore
        with self.assertRaises(ValueError):
            PathManager.mkdirs(self._tmpfile, foo="foo")  # type: ignore
        with self.assertRaises(ValueError):
            PathManager.open(self._tmpfile, foo="foo")  # type: ignore
        with self.assertRaises(ValueError):
            PathManager.rm(self._tmpfile, foo="foo")  # type: ignore

        PathManager.set_strict_kwargs_checking(False)

        PathManager.copy(self._tmpfile, self._tmpfile, foo="foo")  # type: ignore
        PathManager.exists(self._tmpfile, foo="foo")  # type: ignore
        PathManager.get_local_path(self._tmpfile, foo="foo")  # type: ignore
        PathManager.isdir(self._tmpfile, foo="foo")  # type: ignore
        PathManager.isfile(self._tmpfile, foo="foo")  # type: ignore
        PathManager.ls(self._tmpdir, foo="foo")  # type: ignore
        PathManager.mkdirs(self._tmpdir, foo="foo")  # type: ignore
        f = PathManager.open(self._tmpfile, foo="foo")  # type: ignore
        f.close()
        # pyre-ignore
        with open(os.path.join(self._tmpdir, "test_rm.txt"), "w") as f:
            rm_file = f.name
            f.write(self._tmpfile_contents)
            f.flush()
        PathManager.rm(rm_file, foo="foo")  # type: ignore
Exemple #16
0
 def test_mkdirs(self) -> None:
     # pyre-ignore
     new_dir_path = os.path.join(self._tmpdir, "new", "tmp", "dir")
     self.assertFalse(PathManager.exists(new_dir_path))
     PathManager.mkdirs(new_dir_path)
     self.assertTrue(PathManager.exists(new_dir_path))