From 2da348c638ac5058d5acf09ab5df323ee04503d5 Mon Sep 17 00:00:00 2001 From: Matthias Baumgartner Date: Mon, 31 Oct 2022 14:14:42 +0100 Subject: constant, filesize, and filename extractors --- test/extractor/generic/test_path.py | 45 +++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 test/extractor/generic/test_path.py (limited to 'test/extractor/generic/test_path.py') 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 ## -- cgit v1.2.3 From e174a25585e64eb1b0759440cad48d642dd31829 Mon Sep 17 00:00:00 2001 From: Matthias Baumgartner Date: Fri, 25 Nov 2022 14:31:29 +0100 Subject: use schema and predicate types in extractors --- test/extractor/generic/test_path.py | 53 +++++++++++++++++++++++++++++-------- 1 file changed, 42 insertions(+), 11 deletions(-) (limited to 'test/extractor/generic/test_path.py') diff --git a/test/extractor/generic/test_path.py b/test/extractor/generic/test_path.py index 8623490..9376c7c 100644 --- a/test/extractor/generic/test_path.py +++ b/test/extractor/generic/test_path.py @@ -8,7 +8,9 @@ Author: Matthias Baumgartner, 2022 import unittest # bsie imports +from bsie import base from bsie.utils import ns +from bsie.utils.bsfs import schema from bsie.utils.node import Node # objects to test @@ -18,23 +20,52 @@ from bsie.extractor.generic.path import Path ## code ## class TestPath(unittest.TestCase): + def test_eq(self): + # distinct instances, same data + self.assertEqual(Path(), Path()) + # different classes + class Foo(): pass + self.assertNotEqual(Path(), Foo()) + self.assertNotEqual(Path(), 123) + self.assertNotEqual(Path(), None) + + def test_schema(self): + self.assertEqual(Path().schema, + schema.Schema.from_string(base.extractor.SCHEMA_PREAMBLE + ''' + bse:filename rdfs:subClassOf bsfs:Predicate ; + rdfs:domain bsfs:Entity ; + rdfs:range xsd:string ; + owl:maxCardinality "INF"^^xsd:number . + ''')) + def test_extract(self): - node = Node(ns.bsfs.Entity, '') # Blank node ext = Path() + node = Node(ns.bsfs.Entity, '') # Blank node + content = '/tmp/foo/bar' + p_filename = ext.schema.predicate(ns.bse.filename) + entity = ext.schema.node(ns.bsfs.Node).get_child(ns.bsfs.Entity) + string = ext.schema.literal(ns.bsfs.Literal).get_child(ns.xsd.string) # baseline - self.assertSetEqual(set(ext.extract(node, '/tmp/foo/bar', (ns.bse.filename, ))), - {(node, ns.bse.filename, 'bar')}) + self.assertSetEqual(set(ext.extract(node, content, (p_filename, ))), + {(node, p_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()) + p_foo = ext.schema.predicate(ns.bsfs.Predicate).get_child(ns.bse.foo, domain=entity, range=string) # unsupported predicate + self.assertSetEqual(set(ext.extract(node, content, (p_filename, p_foo))), + {(node, p_filename, 'bar')}) + self.assertSetEqual(set(ext.extract(node, content, (p_foo, ))), set()) + # predicates are validated + p_bar = p_foo.get_child(ns.bse.filename) # same URI but different hierarchy + self.assertSetEqual(set(ext.extract(node, content, (p_filename, p_bar))), + {(node, p_filename, 'bar')}) + self.assertSetEqual(set(ext.extract(node, content, (p_bar, ))), 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()) + self.assertSetEqual(set(ext.extract(node, 'bar', (p_filename, ))), + {(node, p_filename, 'bar')}) + self.assertSetEqual(set(ext.extract(node, '', (p_filename, ))), + {(node, p_filename, '')}) + # errors are suppressed + self.assertSetEqual(set(ext.extract(node, None, (p_filename, ))), set()) ## main ## -- cgit v1.2.3 From edc747252a04675c46059215751719b6666a77f9 Mon Sep 17 00:00:00 2001 From: Matthias Baumgartner Date: Sat, 3 Dec 2022 18:57:58 +0100 Subject: adapt to schema interface update: owl:maxCardinality changed to bsfs:unique --- test/extractor/generic/test_path.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'test/extractor/generic/test_path.py') diff --git a/test/extractor/generic/test_path.py b/test/extractor/generic/test_path.py index 9376c7c..aa21b04 100644 --- a/test/extractor/generic/test_path.py +++ b/test/extractor/generic/test_path.py @@ -35,7 +35,7 @@ class TestPath(unittest.TestCase): bse:filename rdfs:subClassOf bsfs:Predicate ; rdfs:domain bsfs:Entity ; rdfs:range xsd:string ; - owl:maxCardinality "INF"^^xsd:number . + bsfs:unique "false"^^xsd:boolean . ''')) def test_extract(self): -- cgit v1.2.3 From 49cf03fc212c813862453de5352436dc90d1e458 Mon Sep 17 00:00:00 2001 From: Matthias Baumgartner Date: Thu, 15 Dec 2022 16:50:53 +0100 Subject: imports and init files --- test/extractor/generic/test_path.py | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'test/extractor/generic/test_path.py') diff --git a/test/extractor/generic/test_path.py b/test/extractor/generic/test_path.py index aa21b04..d2b6c61 100644 --- a/test/extractor/generic/test_path.py +++ b/test/extractor/generic/test_path.py @@ -8,10 +8,8 @@ Author: Matthias Baumgartner, 2022 import unittest # bsie imports -from bsie import base -from bsie.utils import ns -from bsie.utils.bsfs import schema -from bsie.utils.node import Node +from bsie.base import extractor +from bsie.utils import bsfs, node as _node, ns # objects to test from bsie.extractor.generic.path import Path @@ -31,7 +29,7 @@ class TestPath(unittest.TestCase): def test_schema(self): self.assertEqual(Path().schema, - schema.Schema.from_string(base.extractor.SCHEMA_PREAMBLE + ''' + bsfs.schema.Schema.from_string(extractor.SCHEMA_PREAMBLE + ''' bse:filename rdfs:subClassOf bsfs:Predicate ; rdfs:domain bsfs:Entity ; rdfs:range xsd:string ; @@ -40,7 +38,7 @@ class TestPath(unittest.TestCase): def test_extract(self): ext = Path() - node = Node(ns.bsfs.Entity, '') # Blank node + node = _node.Node(ns.bsfs.File, '') # Blank node content = '/tmp/foo/bar' p_filename = ext.schema.predicate(ns.bse.filename) entity = ext.schema.node(ns.bsfs.Node).get_child(ns.bsfs.Entity) -- cgit v1.2.3 From 8e6d27ea75d2c8d68f6dd8b3d529aaa278f291cc Mon Sep 17 00:00:00 2001 From: Matthias Baumgartner Date: Thu, 15 Dec 2022 17:12:56 +0100 Subject: file node class in default schema --- test/extractor/generic/test_path.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'test/extractor/generic/test_path.py') diff --git a/test/extractor/generic/test_path.py b/test/extractor/generic/test_path.py index d2b6c61..820f402 100644 --- a/test/extractor/generic/test_path.py +++ b/test/extractor/generic/test_path.py @@ -31,7 +31,7 @@ class TestPath(unittest.TestCase): self.assertEqual(Path().schema, bsfs.schema.Schema.from_string(extractor.SCHEMA_PREAMBLE + ''' bse:filename rdfs:subClassOf bsfs:Predicate ; - rdfs:domain bsfs:Entity ; + rdfs:domain bsfs:File ; rdfs:range xsd:string ; bsfs:unique "false"^^xsd:boolean . ''')) -- cgit v1.2.3