aboutsummaryrefslogtreecommitdiffstats
path: root/test/utils/filematcher/test_ast.py
diff options
context:
space:
mode:
authorMatthias Baumgartner <dev@igsor.net>2022-12-24 10:39:51 +0100
committerMatthias Baumgartner <dev@igsor.net>2022-12-24 10:39:51 +0100
commit07219685d01f803dc46c8d5465fa542c1d822cb4 (patch)
tree08e0a104758455a821305ec0b5cbe49f9f6c6788 /test/utils/filematcher/test_ast.py
parent266c2c9a072bf3289fd7f2d75278b7d59528378c (diff)
downloadbsie-07219685d01f803dc46c8d5465fa542c1d822cb4.tar.gz
bsie-07219685d01f803dc46c8d5465fa542c1d822cb4.tar.bz2
bsie-07219685d01f803dc46c8d5465fa542c1d822cb4.zip
documentation: standard vs external import
Diffstat (limited to 'test/utils/filematcher/test_ast.py')
-rw-r--r--test/utils/filematcher/test_ast.py232
1 files changed, 0 insertions, 232 deletions
diff --git a/test/utils/filematcher/test_ast.py b/test/utils/filematcher/test_ast.py
deleted file mode 100644
index ff4b86d..0000000
--- a/test/utils/filematcher/test_ast.py
+++ /dev/null
@@ -1,232 +0,0 @@
-"""
-
-Part of the bsie test suite.
-A copy of the license is provided with the project.
-Author: Matthias Baumgartner, 2022
-"""
-# imports
-import os
-import stat
-import tempfile
-import unittest
-
-# objects to test
-from bsie.utils.filematcher import matcher
-
-
-## code ##
-
-class FakeMatcher(matcher.Matcher):
- def __call__(self, *args, **kwargs):
- pass
-
-class FakeCriterion(matcher.Criterion):
- def __call__(self, *args, **kwargs):
- pass
-
-class FakeAggregate(matcher.Aggregate):
- def __call__(self, *args, **kwargs):
- pass
-
-class TestMatcher(unittest.TestCase):
- def setUp(self):
- # paths
- self.image = os.path.join(os.path.dirname(__file__), 'testimage.jpg')
- self.text= os.path.join(os.path.dirname(__file__), 'textfile.t')
- self.empty = os.path.join(os.path.dirname(__file__), 'empty')
- self.missing = os.path.join(os.path.dirname(__file__), 'missing.jpg')
-
- def test_matcher_skeleton(self):
- # node: iteration and length
- self.assertSetEqual(set(iter(FakeMatcher(1,2,3))), {1,2,3})
- self.assertSetEqual(set(iter(FakeMatcher([1,2,3]))), {1,2,3})
- self.assertEqual(len(FakeMatcher([1,2,3])), 3)
- self.assertEqual(len(FakeMatcher(1,2,3)), 3)
- self.assertEqual(len(FakeMatcher()), 0)
- self.assertIn(1, FakeMatcher(1,2,3))
- self.assertIn(3, FakeMatcher([1,2,3]))
- self.assertNotIn(0, FakeMatcher(1,2,3))
- self.assertNotIn(4, FakeMatcher([1,2,3]))
- # node: comparison
- self.assertEqual(FakeMatcher([1,2,3]), FakeMatcher([1,2,3]))
- self.assertEqual(FakeMatcher(1,2,3), FakeMatcher(1,2,3))
- self.assertEqual(FakeMatcher(1,2,3), FakeMatcher([1,2,3]))
- self.assertEqual(FakeMatcher(1,2,3), FakeMatcher((1,2,3)))
- self.assertNotEqual(FakeMatcher(1,2,3), FakeMatcher(1,2,4))
- self.assertNotEqual(FakeMatcher(1,2,3), FakeMatcher(1,2,3,4))
- self.assertNotEqual(FakeMatcher(1,2,3), FakeMatcher(1,2))
- self.assertEqual(hash(FakeMatcher([1,2,3])), hash(FakeMatcher([1,2,3])))
- self.assertEqual(hash(FakeMatcher(1,2,3)), hash(FakeMatcher(1,2,3)))
- self.assertEqual(hash(FakeMatcher(1,2,3)), hash(FakeMatcher([1,2,3])))
- self.assertEqual(hash(FakeMatcher(1,2,3)), hash(FakeMatcher((1,2,3))))
- # node: representation
- self.assertEqual(repr(FakeMatcher(1,2,3)), 'FakeMatcher({1, 2, 3})')
-
- # criterion
- self.assertEqual(repr(FakeCriterion(1,2,3)), 'FakeCriterion({1, 2, 3})')
- self.assertEqual(hash(FakeCriterion(1,2,3)), hash(FakeCriterion(1,2,3)))
- self.assertEqual(FakeCriterion(1,2,3), FakeCriterion([1,2,3]))
- self.assertNotEqual(FakeCriterion(1,2,3), FakeCriterion(1,2))
- self.assertNotEqual(FakeCriterion(1,2,3), FakeMatcher(1,2,3))
- self.assertSetEqual(FakeCriterion(1,2,3).accepted(), {1,2,3})
-
- # aggregate
- self.assertEqual(repr(FakeAggregate(1,2,3)), 'FakeAggregate({1, 2, 3})')
- self.assertNotEqual(FakeAggregate(1,2,3), FakeMatcher(1,2,3))
-
- def test_any(self):
- self.assertTrue(matcher.Any()(self.image))
- self.assertTrue(matcher.Any()(self.text))
- self.assertTrue(matcher.Any()(self.missing))
- self.assertTrue(matcher.Any()(self.empty))
-
- def test_nothing(self):
- self.assertFalse(matcher.Nothing()(self.image))
- self.assertFalse(matcher.Nothing()(self.text))
- self.assertFalse(matcher.Nothing()(self.missing))
- self.assertFalse(matcher.Nothing()(self.empty))
-
- def test_exists(self):
- self.assertTrue(matcher.Exists()(self.image))
- self.assertTrue(matcher.Exists()(self.text))
- self.assertTrue(matcher.Exists()(self.empty))
- self.assertFalse(matcher.Exists()(self.missing))
-
- def test_isfile(self):
- self.assertTrue(matcher.IsFile()(self.image))
- self.assertTrue(matcher.IsFile()(self.text))
- self.assertFalse(matcher.IsFile()(self.missing))
- self.assertFalse(matcher.IsFile()(os.path.dirname(self.image)))
-
- def test_isdir(self):
- self.assertTrue(matcher.IsDir()(os.path.dirname(self.image)))
- self.assertFalse(matcher.IsDir()(self.image))
- self.assertFalse(matcher.IsDir()(self.text))
- self.assertFalse(matcher.IsDir()(self.missing))
-
- def test_islink(self):
- self.assertFalse(matcher.IsLink()(os.path.dirname(self.image)))
- self.assertFalse(matcher.IsLink()(self.image))
- self.assertFalse(matcher.IsLink()(self.text))
- _, temp = tempfile.mkstemp(prefix='bsie-test-')
- templink = temp + '-link'
- os.symlink(temp, templink)
- self.assertTrue(matcher.IsLink()(templink))
- os.unlink(templink)
- os.unlink(temp)
-
- def test_isabs(self):
- self.assertTrue(matcher.IsAbs()(os.path.abspath(self.image)))
- self.assertTrue(matcher.IsAbs()(os.path.abspath(self.text)))
- self.assertFalse(matcher.IsAbs()(os.path.relpath(self.text, os.path.dirname(self.text))))
-
- def test_isrel(self):
- self.assertFalse(matcher.IsRel()(os.path.abspath(self.image)))
- self.assertFalse(matcher.IsRel()(os.path.abspath(self.text)))
- self.assertTrue(matcher.IsRel()(os.path.relpath(self.text, os.path.dirname(self.text))))
- self.assertTrue(matcher.IsRel()(os.path.basename(self.text)))
-
- def test_ismount(self):
- self.assertFalse(matcher.IsMount()(self.image))
- self.assertFalse(matcher.IsMount()(self.text))
- self.assertFalse(matcher.IsMount()(self.missing))
- # there's no reasonable way to test a positive case
-
- def test_isempty(self):
- self.assertTrue(matcher.IsEmpty()(self.empty))
- self.assertFalse(matcher.IsEmpty()(self.image))
- self.assertFalse(matcher.IsEmpty()(self.text))
- self.assertFalse(matcher.IsEmpty()(self.missing))
-
- def test_isreadable(self):
- self.assertTrue(matcher.IsReadable()(self.empty))
- self.assertTrue(matcher.IsReadable()(self.image))
- self.assertFalse(matcher.IsReadable()(self.missing))
- _, temp = tempfile.mkstemp(prefix='bsie-test-')
- os.chmod(temp, 0)
- self.assertFalse(matcher.IsReadable()(temp))
- os.unlink(temp)
-
- def test_iswritable(self):
- self.assertTrue(matcher.IsWritable()(self.empty))
- self.assertTrue(matcher.IsWritable()(self.image))
- self.assertFalse(matcher.IsWritable()(self.missing))
- _, temp = tempfile.mkstemp(prefix='bsie-test-')
- os.chmod(temp, 0)
- self.assertFalse(matcher.IsWritable()(temp))
- os.unlink(temp)
-
- def test_isexecutable(self):
- self.assertFalse(matcher.IsExecutable()(self.empty))
- self.assertFalse(matcher.IsExecutable()(self.image))
- self.assertFalse(matcher.IsExecutable()(self.missing))
- _, temp = tempfile.mkstemp(prefix='bsie-test-')
- os.chmod(temp, stat.S_IEXEC)
- self.assertTrue(matcher.IsExecutable()(temp))
- os.unlink(temp)
-
- def test_extension(self):
- self.assertTrue(matcher.Extension('jpg')(self.image))
- self.assertTrue(matcher.Extension('jpg', 'png')(self.image))
- self.assertTrue(matcher.Extension('jpg', 't')(self.text))
- self.assertTrue(matcher.Extension('jpg', 'png', 't')(self.missing))
- self.assertTrue(matcher.Extension('')(self.empty))
-
- self.assertFalse(matcher.Extension()(self.image))
- self.assertFalse(matcher.Extension('jpeg')(self.image))
- self.assertFalse(matcher.Extension('.t')(self.text))
- self.assertFalse(matcher.Extension('png', 't')(self.missing))
- self.assertFalse(matcher.Extension('tiff')(self.empty))
-
- def test_mime(self):
- self.assertTrue(matcher.Mime('image/jpeg')(self.image))
- self.assertTrue(matcher.Mime('image/tiff', 'image/jpeg')(self.image))
- self.assertTrue(matcher.Mime('text/plain', 'image/jpeg')(self.text))
- self.assertTrue(matcher.Mime('inode/x-empty')(self.empty))
-
- self.assertFalse(matcher.Mime()(self.image))
- self.assertFalse(matcher.Mime('image')(self.image))
- self.assertFalse(matcher.Mime('image/tiff', 'image/png')(self.image))
- self.assertFalse(matcher.Mime('')(self.text))
- self.assertFalse(matcher.Mime('text')(self.text))
- self.assertFalse(matcher.Mime('tiff')(self.empty))
- self.assertFalse(matcher.Mime()(self.empty))
- self.assertFalse(matcher.Mime('')(self.empty))
- self.assertFalse(matcher.Mime()(self.missing))
- self.assertFalse(matcher.Mime('')(self.missing))
- self.assertFalse(matcher.Mime('inode/x-empty')(self.missing))
-
- def test_not(self):
- self.assertFalse(matcher.NOT(matcher.Mime('image/jpeg'))(self.image))
- self.assertTrue(matcher.NOT(matcher.Mime('text/plain'))(self.image))
-
- def test_and(self):
- self.assertTrue(matcher.And(matcher.Mime('image/jpeg'), matcher.Extension('jpg'))(self.image))
- self.assertTrue(matcher.And(matcher.Mime('image/jpeg'), matcher.Extension('jpg', 'tiff'))(self.image))
- self.assertTrue(matcher.And(matcher.Mime('text/plain'), matcher.Extension('t', 'tiff'))(self.text))
-
- self.assertFalse(matcher.And(matcher.Mime('image/jpeg'), matcher.Extension('tiff'))(self.image))
- self.assertFalse(matcher.And(matcher.Mime('text/plain'), matcher.Extension('jpg'))(self.image))
- self.assertFalse(matcher.And(matcher.Mime('inode/x-empty'), matcher.Extension('jpg'))(self.missing))
- self.assertFalse(matcher.And(matcher.Mime('image/jpeg'), matcher.Extension('jpg', 't'))(self.text))
-
- def test_or(self):
- self.assertTrue(matcher.Or(matcher.Mime('image/jpeg'))(self.image))
- self.assertFalse(matcher.Or(matcher.Mime('text/plain'))(self.image))
-
- self.assertTrue(matcher.Or(matcher.Mime('image/jpeg'), matcher.Extension('jpg'))(self.image))
- self.assertTrue(matcher.Or(matcher.Mime('image/jpeg'), matcher.Extension('t'))(self.image))
- self.assertTrue(matcher.Or(matcher.Mime('text/plain'), matcher.Extension('jpg', 'tiff'))(self.image))
- self.assertTrue(matcher.Or(matcher.Mime('text/plain'), matcher.Extension('tiff'))(self.text))
- self.assertTrue(matcher.Or(matcher.Mime('image/jpeg'), matcher.Extension('jpg'))(self.missing))
-
- self.assertFalse(matcher.Or(matcher.Mime('text/plain'), matcher.Extension('tiff'))(self.image))
- self.assertFalse(matcher.Or(matcher.Mime('inode/x-empty'), matcher.Extension('jpg', 'tiff'))(self.text))
-
-
-## main ##
-
-if __name__ == '__main__':
- unittest.main()
-
-## EOF ##