diff options
author | Matthias Baumgartner <dev@igsor.net> | 2022-10-31 14:14:42 +0100 |
---|---|---|
committer | Matthias Baumgartner <dev@igsor.net> | 2022-10-31 14:14:42 +0100 |
commit | 2da348c638ac5058d5acf09ab5df323ee04503d5 (patch) | |
tree | 48ee0e912e2f19f51bd684d790f0bcc2d906e887 /test/extractor | |
parent | d4023fa972af379a4235f51783954671de974372 (diff) | |
download | bsie-2da348c638ac5058d5acf09ab5df323ee04503d5.tar.gz bsie-2da348c638ac5058d5acf09ab5df323ee04503d5.tar.bz2 bsie-2da348c638ac5058d5acf09ab5df323ee04503d5.zip |
constant, filesize, and filename extractors
Diffstat (limited to 'test/extractor')
-rw-r--r-- | test/extractor/__init__.py | 0 | ||||
-rw-r--r-- | test/extractor/generic/__init__.py | 0 | ||||
-rw-r--r-- | test/extractor/generic/test_constant.py | 63 | ||||
-rw-r--r-- | test/extractor/generic/test_path.py | 45 | ||||
-rw-r--r-- | test/extractor/generic/test_stat.py | 43 |
5 files changed, 151 insertions, 0 deletions
diff --git a/test/extractor/__init__.py b/test/extractor/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/extractor/__init__.py diff --git a/test/extractor/generic/__init__.py b/test/extractor/generic/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/extractor/generic/__init__.py diff --git a/test/extractor/generic/test_constant.py b/test/extractor/generic/test_constant.py new file mode 100644 index 0000000..f3ab0a3 --- /dev/null +++ b/test/extractor/generic/test_constant.py @@ -0,0 +1,63 @@ +""" + +Part of the bsie test suite. +A copy of the license is provided with the project. +Author: Matthias Baumgartner, 2022 +""" +# imports +import unittest + +# bsie imports +from bsie.utils import ns +from bsie.utils.node import Node + +# objects to test +from bsie.extractor.generic.constant import Constant + + +## code ## + +class TestConstant(unittest.TestCase): + def test_extract(self): + schema = ''' + bse:author a bsfs:Predicate ; + rdfs:domain bsfs:Entity ; + rdfs:range xsd:string ; + owl:maxCardinality "1"^^xsd:number . + + bse:comment a bsfs:Predicate ; + rdfs:domain bsfs:Entity ; + rdfs:range xsd:string ; + owl:maxCardinality "INF"^^xsd:number . + + ''' + tuples = [ + (ns.bse.author, 'Me, myself, and I'), + (ns.bse.comment, 'the quick brown fox jumps over the lazy dog.'), + ] + node = Node(ns.bsfs.Entity, '') # Blank node + predicates = (ns.bse.author, ns.bse.comment) + ext = Constant(schema, tuples) + # baseline + self.assertSetEqual(set(ext.extract(node, None, predicates)), + {(node, pred, value) for pred, value in tuples}) + # predicates is respected + self.assertSetEqual(set(ext.extract(node, None, (ns.bse.author, ns.bse.foobar))), + {(node, ns.bse.author, 'Me, myself, and I')}) + self.assertSetEqual(set(ext.extract(node, None, (ns.bse.comment, ns.bse.foobar))), + {(node, ns.bse.comment, 'the quick brown fox jumps over the lazy dog.')}) + self.assertSetEqual(set(ext.extract(node, None, (ns.bse.foobar, ns.bse.barfoo))), set()) + + # FIXME: should change! + # for now: no schema compliance + ext = Constant('', tuples) + self.assertSetEqual(set(ext.extract(node, None, predicates)), + {(node, pred, value) for pred, value in tuples}) + + +## main ## + +if __name__ == '__main__': + unittest.main() + +## EOF ## diff --git a/test/extractor/generic/test_path.py b/test/extractor/generic/test_path.py new file mode 100644 index 0000000..8623490 --- /dev/null +++ b/test/extractor/generic/test_path.py @@ -0,0 +1,45 @@ +""" + +Part of the bsie test suite. +A copy of the license is provided with the project. +Author: Matthias Baumgartner, 2022 +""" +# imports +import unittest + +# bsie imports +from bsie.utils import ns +from bsie.utils.node import Node + +# objects to test +from bsie.extractor.generic.path import Path + + +## code ## + +class TestPath(unittest.TestCase): + def test_extract(self): + node = Node(ns.bsfs.Entity, '') # Blank node + ext = Path() + + # baseline + self.assertSetEqual(set(ext.extract(node, '/tmp/foo/bar', (ns.bse.filename, ))), + {(node, ns.bse.filename, 'bar')}) + # predicates parameter is respected + self.assertSetEqual(set(ext.extract(node, '/tmp/foo/bar', (ns.bse.filename, ns.bse.foo))), + {(node, ns.bse.filename, 'bar')}) + self.assertSetEqual(set(ext.extract(node, '/tmp/foo/bar', (ns.bse.foo, ))), set()) + # path variations + self.assertSetEqual(set(ext.extract(node, 'bar', (ns.bse.filename, ))), + {(node, ns.bse.filename, 'bar')}) + self.assertSetEqual(set(ext.extract(node, '', (ns.bse.filename, ))), + {(node, ns.bse.filename, '')}) + self.assertSetEqual(set(ext.extract(node, None, (ns.bse.filename, ))), set()) + + +## main ## + +if __name__ == '__main__': + unittest.main() + +## EOF ## diff --git a/test/extractor/generic/test_stat.py b/test/extractor/generic/test_stat.py new file mode 100644 index 0000000..f89b053 --- /dev/null +++ b/test/extractor/generic/test_stat.py @@ -0,0 +1,43 @@ +""" + +Part of the bsie test suite. +A copy of the license is provided with the project. +Author: Matthias Baumgartner, 2022 +""" +# imports +import os +import unittest + +# bsie imports +from bsie.utils import ns +from bsie.utils.node import Node + +# objects to test +from bsie.extractor.generic.stat import Stat + + +## code ## + +class TestConstant(unittest.TestCase): + def test_extract(self): + node = Node(ns.bsfs.Entity, '') # Blank node + content = os.stat(__file__) + ext = Stat() + + # baseline + self.assertSetEqual(set(ext.extract(node, content, (ns.bse.filesize, ))), + {(node, ns.bse.filesize, content.st_size)}) + # predicates parameter is respected + self.assertSetEqual(set(ext.extract(node, content, (ns.bse.filesize, ns.bse.foo))), + {(node, ns.bse.filesize, content.st_size)}) + self.assertSetEqual(set(ext.extract(node, content, (ns.bse.foo, ))), set()) + # content variations + self.assertSetEqual(set(ext.extract(node, None, (ns.bse.filesize, ))), set()) + + +## main ## + +if __name__ == '__main__': + unittest.main() + +## EOF ## |