diff options
author | Matthias Baumgartner <dev@igsor.net> | 2022-12-18 14:17:44 +0100 |
---|---|---|
committer | Matthias Baumgartner <dev@igsor.net> | 2022-12-18 14:17:44 +0100 |
commit | 12d95ed8bda18f2ef9d36190919cb838bfb5efcf (patch) | |
tree | 84202e614a9f477e9bff3a4f20456ebc8c000321 /test | |
parent | 8ed8dbb4010a9a75cf6e61d185327825fe783776 (diff) | |
download | bsfs-12d95ed8bda18f2ef9d36190919cb838bfb5efcf.tar.gz bsfs-12d95ed8bda18f2ef9d36190919cb838bfb5efcf.tar.bz2 bsfs-12d95ed8bda18f2ef9d36190919cb838bfb5efcf.zip |
bsfs lib and builders
Diffstat (limited to 'test')
-rw-r--r-- | test/front/__init__.py | 0 | ||||
-rw-r--r-- | test/front/test_bsfs.py | 38 | ||||
-rw-r--r-- | test/front/test_builder.py | 64 |
3 files changed, 102 insertions, 0 deletions
diff --git a/test/front/__init__.py b/test/front/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/front/__init__.py diff --git a/test/front/test_bsfs.py b/test/front/test_bsfs.py new file mode 100644 index 0000000..0d7f383 --- /dev/null +++ b/test/front/test_bsfs.py @@ -0,0 +1,38 @@ +""" + +Part of the bsfs test suite. +A copy of the license is provided with the project. +Author: Matthias Baumgartner, 2022 +""" +# imports +import unittest + +# bsie imports +from bsfs.graph import Graph +from bsfs.triple_store import SparqlStore +from bsfs.utils import errors, URI + +# objects to test +from bsfs.front.bsfs import Open + + +## code ## + +class TestBSFS(unittest.TestCase): + def test_open(self): + # valid config produces a valid graph + config = {'Graph': {'backend': {'SparqlStore': {}}, 'user': 'http://example.com/me'}} + graph = Open(config) + self.assertIsInstance(graph, Graph) + self.assertIsInstance(graph._backend, SparqlStore) + self.assertEqual(graph._user, URI('http://example.com/me')) + # invalid config raises an error + self.assertRaises(errors.ConfigError, Open, {}) + + +## main ## + +if __name__ == '__main__': + unittest.main() + +## EOF ## diff --git a/test/front/test_builder.py b/test/front/test_builder.py new file mode 100644 index 0000000..08f2027 --- /dev/null +++ b/test/front/test_builder.py @@ -0,0 +1,64 @@ +""" + +Part of the bsfs test suite. +A copy of the license is provided with the project. +Author: Matthias Baumgartner, 2022 +""" +# imports +import unittest + +# bsie imports +from bsfs.graph import Graph +from bsfs.triple_store import SparqlStore +from bsfs.utils import errors, URI + +# objects to test +from bsfs.front.builder import build_backend, build_graph + + +## code ## + +class TestBuilder(unittest.TestCase): + def test_build_backend(self): + # valid config produces a valid store + store = build_backend({'SparqlStore': {}}) + self.assertIsInstance(store, SparqlStore) + self.assertIsNone(store.uri) + # cannot create an invalid store + self.assertRaises(errors.ConfigError, build_backend, {'MyStore': {}}) + # must pass a dict + self.assertRaises(TypeError, build_backend, 1234) + self.assertRaises(TypeError, build_backend, 'hello world') + self.assertRaises(TypeError, build_backend, [1,2,3]) + # cannot create a store from an invalid config + self.assertRaises(errors.ConfigError, build_backend, {}) + self.assertRaises(errors.ConfigError, build_backend, {'SparqlStore': {}, 'OtherStore': {}}) + self.assertRaises(TypeError, build_backend, {'SparqlStore': {'hello': 'world'}}) + + def test_build_graph(self): + # valid config produces a valid graph + graph = build_graph({'Graph': {'backend': {'SparqlStore': {}}, 'user': 'http://example.com/me'}}) + self.assertIsInstance(graph, Graph) + self.assertIsInstance(graph._backend, SparqlStore) + self.assertEqual(graph._user, URI('http://example.com/me')) + # cannot create an invalid graph + self.assertRaises(errors.ConfigError, build_graph, {'MyGraph': {}}) + # must pass a dict + self.assertRaises(TypeError, build_graph, 1234) + self.assertRaises(TypeError, build_graph, 'hello world') + self.assertRaises(TypeError, build_graph, [1,2,3]) + # cannot create a graph from an invalid config + self.assertRaises(errors.ConfigError, build_graph, {}) + self.assertRaises(errors.ConfigError, build_graph, {'Graph': {}, 'Graph2': {}}) + self.assertRaises(errors.ConfigError, build_graph, {'Graph': {}}) + self.assertRaises(errors.ConfigError, build_graph, {'Graph': {'user': 'http://example.com/me'}}) + self.assertRaises(errors.ConfigError, build_graph, {'Graph': {'backend': 'Hello world'}}) + self.assertRaises(TypeError, build_graph, {'Graph': {'user': 'http://example.com/me', 'backend': 'Hello world'}}) + + +## main ## + +if __name__ == '__main__': + unittest.main() + +## EOF ## |