aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorMatthias Baumgartner <dev@igsor.net>2022-10-31 14:14:57 +0100
committerMatthias Baumgartner <dev@igsor.net>2022-10-31 14:14:57 +0100
commit9389c741bdbbca9adbff6099d440706cd63deac4 (patch)
tree48ee0e912e2f19f51bd684d790f0bcc2d906e887 /test
parentd4023fa972af379a4235f51783954671de974372 (diff)
parent2da348c638ac5058d5acf09ab5df323ee04503d5 (diff)
downloadbsie-9389c741bdbbca9adbff6099d440706cd63deac4.tar.gz
bsie-9389c741bdbbca9adbff6099d440706cd63deac4.tar.bz2
bsie-9389c741bdbbca9adbff6099d440706cd63deac4.zip
Merge branch 'mb/extractors' into develop
Diffstat (limited to 'test')
-rw-r--r--test/__init__.py0
-rw-r--r--test/extractor/__init__.py0
-rw-r--r--test/extractor/generic/__init__.py0
-rw-r--r--test/extractor/generic/test_constant.py63
-rw-r--r--test/extractor/generic/test_path.py45
-rw-r--r--test/extractor/generic/test_stat.py43
-rw-r--r--test/reader/__init__.py0
7 files changed, 151 insertions, 0 deletions
diff --git a/test/__init__.py b/test/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/__init__.py
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 ##
diff --git a/test/reader/__init__.py b/test/reader/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/reader/__init__.py