summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorThomas Feldmann <mail@tfeldmann.de>2022-01-28 17:47:03 +0100
committerThomas Feldmann <mail@tfeldmann.de>2022-01-28 17:47:03 +0100
commit111e6bdce5535fc0e564075c8233f7beee6b2926 (patch)
tree828907c42c6b0e4ed469053d00522ea4bbbeb578 /tests
parent2d992f5e940d774468136dd59caf6159dcfe93ab (diff)
update tests
Diffstat (limited to 'tests')
-rw-r--r--tests/filters/test_extension.py26
-rw-r--r--tests/filters/test_filename.py119
-rw-r--r--tests/filters/test_filesize.py38
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)