diff options
author | Thomas Feldmann <mail@tfeldmann.de> | 2022-01-28 17:47:03 +0100 |
---|---|---|
committer | Thomas Feldmann <mail@tfeldmann.de> | 2022-01-28 17:47:03 +0100 |
commit | 111e6bdce5535fc0e564075c8233f7beee6b2926 (patch) | |
tree | 828907c42c6b0e4ed469053d00522ea4bbbeb578 /tests | |
parent | 2d992f5e940d774468136dd59caf6159dcfe93ab (diff) |
update tests
Diffstat (limited to 'tests')
-rw-r--r-- | tests/filters/test_extension.py | 26 | ||||
-rw-r--r-- | tests/filters/test_filename.py | 119 | ||||
-rw-r--r-- | tests/filters/test_filesize.py | 38 |
3 files changed, 93 insertions, 90 deletions
diff --git a/tests/filters/test_extension.py b/tests/filters/test_extension.py index 516b57d..ca7ed1e 100644 --- a/tests/filters/test_extension.py +++ b/tests/filters/test_extension.py @@ -1,27 +1,33 @@ -from pathlib import Path +from fs import open_fs +from fs.path import dirname from organize.filters import Extension def test_extension(): extension = Extension("JPG", ".gif", "pdf") testpathes = [ - (Path("~/somefile.pdf"), True), - (Path("/home/test/somefile.pdf.jpeg"), False), - (Path("/home/test/gif.TXT"), False), - (Path("/home/test/txt.GIF"), True), - (Path("~/somefile.pdf"), True), + ("/somefile.pdf", True), + ("/home/test/somefile.pdf.jpeg", False), + ("/home/test/gif.TXT", False), + ("/home/test/txt.GIF", True), + ("/somefile.pdf", True), ] - for path, match in testpathes: - assert bool(extension.matches(path)) == match + with open_fs("mem://", writeable=True, create=True) as mem: + for f, match in testpathes: + mem.makedirs(dirname(f), recreate=True) + mem.touch(f) + assert extension.run(fs=mem, fs_path=f).matches == match def test_extension_empty(): + fs = open_fs("mem://") + fs.touch("test.txt") extension = Extension() - assert extension.matches(Path("~/test.txt")) + assert extension.run(fs=fs, fs_path="test.txt").matches def test_extension_result(): - path = Path("~/somefile.TxT") + path = "~/somefile.TxT" extension = Extension("txt") assert extension.matches(path) result = extension.run(path=path)["extension"] diff --git a/tests/filters/test_filename.py b/tests/filters/test_filename.py index 43efcc6..c7557e4 100644 --- a/tests/filters/test_filename.py +++ b/tests/filters/test_filename.py @@ -1,102 +1,99 @@ -from pathlib import Path -from organize.filters import Filename +from organize.filters import Name def test_filename_startswith(): - filename = Filename(startswith="begin") - assert filename.matches(Path("~/here/beginhere.pdf")) - assert not filename.matches(Path("~/here/.beginhere.pdf")) - assert not filename.matches(Path("~/here/herebegin.begin")) + filename = Name(startswith="begin") + assert filename.matches("~/here/beginhere.pdf") + assert not filename.matches("~/here/.beginhere.pdf") + assert not filename.matches("~/here/herebegin.begin") def test_filename_contains(): - filename = Filename(contains="begin") - assert filename.matches(Path("~/here/beginhere.pdf")) - assert filename.matches(Path("~/here/.beginhere.pdf")) - assert filename.matches(Path("~/here/herebegin.begin")) - assert not filename.matches(Path("~/here/other.begin")) + filename = Name(contains="begin") + assert filename.matches("~/here/beginhere.pdf") + assert filename.matches("~/here/.beginhere.pdf") + assert filename.matches("~/here/herebegin.begin") + assert not filename.matches("~/here/other.begin") def test_filename_endswith(): - filename = Filename(endswith="end") - assert filename.matches(Path("~/here/hereend.pdf")) - assert not filename.matches(Path("~/here/end.tar.gz")) - assert not filename.matches(Path("~/here/theendishere.txt")) + filename = Name(endswith="end") + assert filename.matches("~/here/hereend.pdf") + assert not filename.matches("~/here/end.tar.gz") + assert not filename.matches("~/here/theendishere.txt") def test_filename_multiple(): - filename = Filename(startswith="begin", contains="con", endswith="end") - assert filename.matches(Path("~/here/begin_somethgin_con_end.pdf")) - assert not filename.matches(Path("~/here/beginend.pdf")) - assert not filename.matches(Path("~/here/begincon.begin")) - assert not filename.matches(Path("~/here/conend.begin")) - assert filename.matches(Path("~/here/beginconend.begin")) + filename = Name(startswith="begin", contains="con", endswith="end") + assert filename.matches("~/here/begin_somethgin_con_end.pdf") + assert not filename.matches("~/here/beginend.pdf") + assert not filename.matches("~/here/begincon.begin") + assert not filename.matches("~/here/conend.begin") + assert filename.matches("~/here/beginconend.begin") def test_filename_case(): - filename = Filename( + filename = Name( startswith="star", contains="con", endswith="end", case_sensitive=False ) - assert filename.matches(Path("~/STAR_conEnD.dpf")) - assert not filename.matches(Path("~/here/STAREND.pdf")) - assert not filename.matches(Path("~/here/STARCON.begin")) - assert not filename.matches(Path("~/here/CONEND.begin")) - assert filename.matches(Path("~/here/STARCONEND.begin")) + assert filename.matches("~/STAR_conEnD.dpf") + assert not filename.matches("~/here/STAREND.pdf") + assert not filename.matches("~/here/STARCON.begin") + assert not filename.matches("~/here/CONEND.begin") + assert filename.matches("~/here/STARCONEND.begin") def test_filename_list(): - filename = Filename( + filename = Name( startswith="_", contains=["1", "A", "3", "6"], endswith=["5", "6"], case_sensitive=False, ) - assert filename.matches(Path("~/_15.dpf")) - assert filename.matches(Path("~/_A5.dpf")) - assert filename.matches(Path("~/_A6.dpf")) - assert filename.matches(Path("~/_a6.dpf")) - assert filename.matches(Path("~/_35.dpf")) - assert filename.matches(Path("~/_36.dpf")) - assert filename.matches(Path("~/_somethinga56")) - assert filename.matches(Path("~/_6")) - assert not filename.matches(Path("~/")) - assert not filename.matches(Path("~/a_5")) + assert filename.matches("~/_15.dpf") + assert filename.matches("~/_A5.dpf") + assert filename.matches("~/_A6.dpf") + assert filename.matches("~/_a6.dpf") + assert filename.matches("~/_35.dpf") + assert filename.matches("~/_36.dpf") + assert filename.matches("~/_somethinga56") + assert filename.matches("~/_6") + assert not filename.matches("~/") + assert not filename.matches("~/a_5") def test_filename_list_case_sensitive(): - filename = Filename( + filename = Name( startswith="_", contains=["1", "A", "3", "7"], endswith=["5", "6"], case_sensitive=True, ) - assert filename.matches(Path("~/_15.dpf")) - assert filename.matches(Path("~/_A5.dpf")) - assert filename.matches(Path("~/_A6.dpf")) - assert not filename.matches(Path("~/_a6.dpf")) - assert filename.matches(Path("~/_35.dpf")) - assert filename.matches(Path("~/_36.dpf")) - assert filename.matches(Path("~/_somethingA56")) - assert not filename.matches(Path("~/_6")) - assert not filename.matches(Path("~/_a5.dpf")) - assert not filename.matches(Path("~/-A5.dpf")) - assert not filename.matches(Path("~/")) - assert not filename.matches(Path("~/_a5")) + assert filename.matches("~/_15.dpf") + assert filename.matches("~/_A5.dpf") + assert filename.matches("~/_A6.dpf") + assert not filename.matches("~/_a6.dpf") + assert filename.matches("~/_35.dpf") + assert filename.matches("~/_36.dpf") + assert filename.matches("~/_somethingA56") + assert not filename.matches("~/_6") + assert not filename.matches("~/_a5.dpf") + assert not filename.matches("~/-A5.dpf") + assert not filename.matches("~/") + assert not filename.matches("~/_a5") def test_filename_match(): - fn = Filename("Invoice_*_{year:int}_{month}_{day}") + fn = Name("Invoice_*_{year:int}_{month}_{day}") p = "~/Documents/Invoice_RE1001_2021_01_31.pdf" - assert fn.matches(Path(p)) - assert fn.run(path=Path(p)) == { - "filename": {"year": 2021, "month": "01", "day": "31"} - } + assert fn.matches(p) + assert fn.run(p) == {"filename": {"year": 2021, "month": "01", "day": "31"}} def test_filename_match_case_insensitive(): - case = Filename("upper_{m1}_{m2}", case_sensitive=True) - icase = Filename("upper_{m1}_{m2}", case_sensitive=False) + case = Name("upper_{m1}_{m2}", case_sensitive=True) + icase = Name("upper_{m1}_{m2}", case_sensitive=False) p = "~/Documents/UPPER_MiXed_lower.pdf" - assert icase.matches(Path(p)) - assert icase.run(path=Path(p)) == {"filename": {"m1": "MiXed", "m2": "lower"}} - assert not case.matches(Path(p)) + assert icase.matches(p) + assert icase.run(path=p) == {"filename": {"m1": "MiXed", "m2": "lower"}} + assert not case.matches(p) diff --git a/tests/filters/test_filesize.py b/tests/filters/test_filesize.py index fa03a89..1bbd41e 100644 --- a/tests/filters/test_filesize.py +++ b/tests/filters/test_filesize.py @@ -1,28 +1,28 @@ -from organize.filters import FileSize +from organize.filters import Size def test_constrains_mope1(): - assert not FileSize("<1b,>2b").matches(1) - assert FileSize(">=1b,<2b").matches(1) - assert not FileSize(">1.000001b").matches(1) - assert FileSize("<1.000001B").matches(1) - assert FileSize("<1.000001").matches(1) - assert FileSize("<=1,>=0.001kb").matches(1) - assert FileSize("<1").matches(0) - assert not FileSize(">1").matches(0) - assert not FileSize("<1,>1b").matches(0) - assert FileSize(">99.99999GB").matches(100000000000) - assert FileSize("0").matches(0) + assert not Size("<1b,>2b").matches(1) + assert Size(">=1b,<2b").matches(1) + assert not Size(">1.000001b").matches(1) + assert Size("<1.000001B").matches(1) + assert Size("<1.000001").matches(1) + assert Size("<=1,>=0.001kb").matches(1) + assert Size("<1").matches(0) + assert not Size(">1").matches(0) + assert not Size("<1,>1b").matches(0) + assert Size(">99.99999GB").matches(100000000000) + assert Size("0").matches(0) def test_constrains_base(): - assert FileSize(">1kb,<1kib").matches(1010) - assert FileSize(">1k,<1ki").matches(1010) - assert FileSize("1k").matches(1000) - assert FileSize("1000").matches(1000) + assert Size(">1kb,<1kib").matches(1010) + assert Size(">1k,<1ki").matches(1010) + assert Size("1k").matches(1000) + assert Size("1000").matches(1000) def test_other(): - assert FileSize("<100 Mb").matches(20) - assert FileSize("<100 Mb, <10 mb, <1 mb, > 0").matches(20) - assert FileSize(["<100 Mb", ">= 0 Tb"]).matches(20) + assert Size("<100 Mb").matches(20) + assert Size("<100 Mb, <10 mb, <1 mb, > 0").matches(20) + assert Size(["<100 Mb", ">= 0 Tb"]).matches(20) |