From d6a5c0f596a212f0e1d4e4b351b5b0e6857d74f7 Mon Sep 17 00:00:00 2001 From: Matthias Baumgartner Date: Wed, 26 Jul 2023 12:48:54 +0200 Subject: refactored naming policy into uri matcher --- test/extractor/generic/test_constant.py | 5 +++-- test/extractor/generic/test_path.py | 7 ++++--- test/extractor/generic/test_stat.py | 5 +++-- test/extractor/image/face/test_detect.py | 8 +++++--- test/extractor/image/face/test_identify.py | 15 +++++++++------ test/extractor/image/test_colors_spatial.py | 5 +++-- test/extractor/image/test_iptc.py | 21 +++++++++++---------- test/extractor/image/test_photometrics.py | 5 +++-- test/extractor/test_preview.py | 5 +++-- 9 files changed, 44 insertions(+), 32 deletions(-) (limited to 'test/extractor') diff --git a/test/extractor/generic/test_constant.py b/test/extractor/generic/test_constant.py index 77ee02b..ea18385 100644 --- a/test/extractor/generic/test_constant.py +++ b/test/extractor/generic/test_constant.py @@ -3,7 +3,8 @@ import unittest # bsie imports -from bsie.utils import node as _node, ns +from bsie.matcher import nodes +from bsie.utils import ns # objects to test from bsie.extractor.generic.constant import Constant @@ -28,7 +29,7 @@ class TestConstant(unittest.TestCase): (ns.bse.comment, 'the quick brown fox jumps over the lazy dog.'), ] ext = Constant(schema, tuples) - node = _node.Node(ns.bsn.Entity, '') # Blank node + node = nodes.Entity(ucid='abc123') # Blank node p_author = ext.schema.predicate(ns.bse.author) p_comment = ext.schema.predicate(ns.bse.comment) entity = ext.schema.node(ns.bsfs.Node).child(ns.bsn.Entity) diff --git a/test/extractor/generic/test_path.py b/test/extractor/generic/test_path.py index 569703d..132b670 100644 --- a/test/extractor/generic/test_path.py +++ b/test/extractor/generic/test_path.py @@ -5,7 +5,8 @@ import unittest # bsie imports from bsie.extractor import base -from bsie.utils import bsfs, node as _node, ns +from bsie.matcher import nodes +from bsie.utils import bsfs, ns # objects to test from bsie.extractor.generic.path import Path @@ -40,7 +41,7 @@ class TestPath(unittest.TestCase): def test_extract(self): ext = Path() - node = _node.Node(ns.bsn.Entity, '') # Blank node + node = nodes.Entity(ucid='abc123') content = '/tmp/foo/bar' p_filename = ext.schema.predicate(ns.bse.filename) p_dirname = ext.schema.predicate(ns.bse.dirname) @@ -68,7 +69,7 @@ class TestPath(unittest.TestCase): self.assertSetEqual(set(ext.extract(node, '', (p_filename, p_dirname))), {(node, p_filename, ''), (node, p_dirname, os.path.dirname(os.getcwd()))}) # errors are suppressed - self.assertSetEqual(set(ext.extract(node, None, (p_filename, ))), set()) + self.assertSetEqual(set(ext.extract(node, None, (p_filename, p_dirname))), set()) ## main ## diff --git a/test/extractor/generic/test_stat.py b/test/extractor/generic/test_stat.py index 0e83e24..38a9c0c 100644 --- a/test/extractor/generic/test_stat.py +++ b/test/extractor/generic/test_stat.py @@ -5,7 +5,8 @@ import unittest # bsie imports from bsie.extractor import base -from bsie.utils import bsfs, node as _node, ns +from bsie.matcher import nodes +from bsie.utils import bsfs, ns # objects to test from bsie.extractor.generic.stat import Stat @@ -34,7 +35,7 @@ class TestStat(unittest.TestCase): def test_extract(self): ext = Stat() - node = _node.Node(ns.bsn.Entity, '') # Blank node + node = nodes.Entity(ucid='abc123') content = os.stat(__file__) p_filesize = ext.schema.predicate(ns.bse.filesize) entity = ext.schema.node(ns.bsfs.Node).child(ns.bsn.Entity) diff --git a/test/extractor/image/face/test_detect.py b/test/extractor/image/face/test_detect.py index 92375a2..89a3461 100644 --- a/test/extractor/image/face/test_detect.py +++ b/test/extractor/image/face/test_detect.py @@ -8,8 +8,9 @@ import unittest # bsie imports from bsie.extractor import base +from bsie.matcher import nodes from bsie.reader.face import FaceExtract -from bsie.utils import bsfs, node as _node, ns +from bsie.utils import bsfs, ns # objects to test from bsie.extractor.image.face.detect import FaceDetect, bsf @@ -31,10 +32,11 @@ class TestFaceDetect(unittest.TestCase): # setup rdr = FaceExtract() ext = FaceDetect() - subject = _node.Node(ns.bsfs.Entity) + subject = nodes.Entity(ucid='abc123') content = rdr(os.path.join(os.path.dirname(__file__), 'testface1.jpg')) principals = set(ext.principals) - face = _node.Node(ns.bsn.Face, ucid='2a7203c1515e0caa66a7461452c0b4552f1433a613cb3033e59ed2361790ad45') + face = nodes.Face( + ucid='2a7203c1515e0caa66a7461452c0b4552f1433a613cb3033e59ed2361790ad45') triples = list(ext.extract(subject, content, principals)) # principals is bse:face self.assertSetEqual(principals, {ext.schema.predicate(ns.bse.face)}) diff --git a/test/extractor/image/face/test_identify.py b/test/extractor/image/face/test_identify.py index dde41db..2d52353 100644 --- a/test/extractor/image/face/test_identify.py +++ b/test/extractor/image/face/test_identify.py @@ -10,8 +10,9 @@ import requests # bsie imports from bsie.extractor import base +from bsie.matcher import nodes from bsie.reader.face import FaceExtract -from bsie.utils import bsfs, node as _node, ns +from bsie.utils import bsfs, ns # objects to test from bsie.extractor.image.face.identify import FaceIdentify, bsf @@ -106,11 +107,12 @@ class TestFaceIdentify(unittest.TestCase): os.path.join(os.path.dirname(__file__), 'ref_embeds.npy'), os.path.join(os.path.dirname(__file__), 'ref_mapping.csv'), ) - subject = _node.Node(ns.bsfs.Entity) + subject = nodes.Entity(ucid='abc123') content = rdr(os.path.join(os.path.dirname(__file__), 'testface1.jpg')) principals = set(ext.principals) - face = _node.Node(ns.bsn.Face, ucid='2a7203c1515e0caa66a7461452c0b4552f1433a613cb3033e59ed2361790ad45') - person = _node.Node(ns.bsn.Person, uri='https://example.com/user/Angelina_Jolie') + face = nodes.Face( + ucid='2a7203c1515e0caa66a7461452c0b4552f1433a613cb3033e59ed2361790ad45') + person = nodes.Person(uri='https://example.com/user/Angelina_Jolie') triples = list(ext.extract(subject, content, principals)) # principls is bse:face, bsf:depicts self.assertSetEqual(set(ext.principals), { @@ -128,10 +130,11 @@ class TestFaceIdentify(unittest.TestCase): self.assertListEqual(list(ext.extract(subject, content, principals)), []) # identifies the correct person despite somewhat similar options content = rdr(os.path.join(os.path.dirname(__file__), 'testface3.jpg')) - face = _node.Node(ns.bsn.Face, ucid='f61fac01ef686ee05805afef1e7a10ba54c30dc1aa095d9e77d79ccdfeb40dc5') + face = nodes.Face( + ucid='f61fac01ef686ee05805afef1e7a10ba54c30dc1aa095d9e77d79ccdfeb40dc5') triples = list(ext.extract(subject, content, principals)) self.assertEqual(len(triples), 2) - person = _node.Node(ns.bsn.Person, uri='https://example.com/user/Paul_Rudd') + person = nodes.Person(uri='https://example.com/user/Paul_Rudd') self.assertIn((subject, ext.schema.predicate(ns.bse.face), face), triples) self.assertIn((face, ext.schema.predicate(bsf.depicts), person), triples) # no triples on principal mismatch diff --git a/test/extractor/image/test_colors_spatial.py b/test/extractor/image/test_colors_spatial.py index 902ab6d..1c87bb7 100644 --- a/test/extractor/image/test_colors_spatial.py +++ b/test/extractor/image/test_colors_spatial.py @@ -8,7 +8,8 @@ import PIL.Image # bsie imports from bsie.extractor import base -from bsie.utils import bsfs, ns, node as _node +from bsie.matcher import nodes +from bsie.utils import bsfs, ns # objects to test from bsie.extractor.image.colors_spatial import ColorsSpatial @@ -73,7 +74,7 @@ class TestColorsSpatial(unittest.TestCase): def test_extract(self): ext = ColorsSpatial(2,2,2) img = PIL.Image.open(os.path.join(os.path.dirname(__file__), 'testimage.jpg')) - node = _node.Node(ns.bsn.Entity, bsfs.URI('http://example.com/entity#1234')) + node = nodes.Entity(ucid='1234') principals = set(ext.principals) self.assertEqual(len(principals), 1) # valid invocation yields feature diff --git a/test/extractor/image/test_iptc.py b/test/extractor/image/test_iptc.py index 5fa763d..7efbdfe 100644 --- a/test/extractor/image/test_iptc.py +++ b/test/extractor/image/test_iptc.py @@ -4,7 +4,8 @@ import unittest # bsie imports from bsie.extractor import base -from bsie.utils import bsfs, node as _node, ns +from bsie.matcher import nodes +from bsie.utils import bsfs, ns # objects to test from bsie.extractor.image.iptc import Iptc @@ -36,29 +37,29 @@ class TestIptc(unittest.TestCase): def test_extract(self): ext = Iptc() - node = _node.Node(ns.bsfs.File, '') # Blank node + subject = nodes.Entity(ucid='abc123') content = { 'Iptc.Application2.Keywords': ['hello', 'world'], 'Iptc.Application2.RecordVersion': '4', } # target tags - t_hello = _node.Node(ns.bsn.Tag, label='hello') - t_world = _node.Node(ns.bsn.Tag, label='world') + t_hello = nodes.Tag(label='hello') + t_world = nodes.Tag(label='world') # invalid principals are ignored - self.assertSetEqual(set(ext.extract(node, content, {ns.bse.filename})), set()) + self.assertSetEqual(set(ext.extract(subject, content, {ns.bse.filename})), set()) # extract finds all relevant information - self.assertSetEqual(set(ext.extract(node, content, {ext.schema.predicate(ns.bse.tag)})), { - (node, ext.schema.predicate(ns.bse.tag), t_hello), - (node, ext.schema.predicate(ns.bse.tag), t_world), + self.assertSetEqual(set(ext.extract(subject, content, {ext.schema.predicate(ns.bse.tag)})), { + (subject, ext.schema.predicate(ns.bse.tag), t_hello), + (subject, ext.schema.predicate(ns.bse.tag), t_world), (t_hello, ext.schema.predicate(ns.bst.label), 'hello'), (t_world, ext.schema.predicate(ns.bst.label), 'world'), }) # empty content is acceptable - self.assertSetEqual(set(ext.extract(node, {}, set(ext.principals))), set()) + self.assertSetEqual(set(ext.extract(subject, {}, set(ext.principals))), set()) # no principals is acceptable - self.assertSetEqual(set(ext.extract(node, content, set())), set()) + self.assertSetEqual(set(ext.extract(subject, content, set())), set()) ## main ## diff --git a/test/extractor/image/test_photometrics.py b/test/extractor/image/test_photometrics.py index fb219e2..1316618 100644 --- a/test/extractor/image/test_photometrics.py +++ b/test/extractor/image/test_photometrics.py @@ -4,7 +4,8 @@ import unittest # bsie imports from bsie.extractor import base -from bsie.utils import bsfs, node as _node, ns +from bsie.matcher import nodes +from bsie.utils import bsfs, ns # objects to test from bsie.extractor.image.photometrics import Exif, _gps_to_dec @@ -55,7 +56,7 @@ class TestExif(unittest.TestCase): def test_extract(self): ext = Exif() - node = _node.Node(ns.bsfs.File, '') # Blank node + node = nodes.Entity(ucid='abc123') content = { 'Exif.Photo.ExposureTime': '10/600', 'Exif.Photo.FNumber': '48/10', diff --git a/test/extractor/test_preview.py b/test/extractor/test_preview.py index 6526783..7b60520 100644 --- a/test/extractor/test_preview.py +++ b/test/extractor/test_preview.py @@ -9,7 +9,8 @@ import PIL.Image # bsie imports from bsie.extractor import base -from bsie.utils import bsfs, node as _node, ns +from bsie.matcher import nodes +from bsie.utils import bsfs, ns from bsie.reader.preview import Preview as Reader # objects to test @@ -69,7 +70,7 @@ class TestPreview(unittest.TestCase): def test_extract(self): # setup dependents rdr = Reader() - subject = _node.Node(ns.bsn.Entity) + subject = nodes.Entity(ucid='abc123') path = os.path.join(os.path.dirname(__file__), 'testimage.jpg') # setup extractor -- cgit v1.2.3