aboutsummaryrefslogtreecommitdiffstats
path: root/test/lib/test_naming_policy.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/lib/test_naming_policy.py')
-rw-r--r--test/lib/test_naming_policy.py158
1 files changed, 0 insertions, 158 deletions
diff --git a/test/lib/test_naming_policy.py b/test/lib/test_naming_policy.py
deleted file mode 100644
index a078fbd..0000000
--- a/test/lib/test_naming_policy.py
+++ /dev/null
@@ -1,158 +0,0 @@
-
-# standard imports
-import unittest
-
-# bsie imports
-from bsie.utils import ns, errors
-from bsie.utils.bsfs import URI
-from bsie.utils.node import Node
-
-# objects to test
-from bsie.lib.naming_policy import NamingPolicy, NamingPolicyIterator, DefaultNamingPolicy
-
-
-
-## code ##
-
-class TestDefaultNamingPolicy(unittest.TestCase):
-
- def test_handle_node(self):
- # setup
- policy = DefaultNamingPolicy('http://example.com', 'me')
- # handle_node doesn't modify existing uris
- self.assertEqual(policy.handle_node(
- Node(ns.bsn.Invalid, uri='http://example.com/you/foo#bar')).uri,
- URI('http://example.com/you/foo#bar'))
- # processes bsn:Entity
- self.assertEqual(policy.handle_node(
- Node(ns.bsn.Entity, ucid='abc123cba')).uri,
- URI('http://example.com/me/file#abc123cba'))
- # processes bsn:Preview
- self.assertEqual(policy.handle_node(
- Node(ns.bsn.Preview, ucid='abc123cba', size=123)).uri,
- URI('http://example.com/me/preview#abc123cba_s123'))
- # processes bsn:Tag
- self.assertEqual(policy.handle_node(
- Node(ns.bsn.Tag, label='hello')).uri,
- URI('http://example.com/me/tag#hello'))
- # processes bsn:Face
- self.assertEqual(policy.handle_node(
- Node(ns.bsn.Face, ucid='hello')).uri,
- URI('http://example.com/me/face#hello'))
- # raises an exception on unknown types
- self.assertRaises(errors.ProgrammingError, policy.handle_node,
- Node(ns.bsn.Invalid, ucid='abc123cba', size=123))
-
- def test_name_entity(self):
- # setup
- policy = DefaultNamingPolicy('http://example.com', 'me')
- # name_entity uses ucid
- self.assertEqual(policy.name_entity(
- Node(ns.bsn.Entity, ucid='123abc321')).uri,
- URI('http://example.com/me/file#123abc321'))
- # name_entity falls back to a random guid
- self.assertTrue(policy.name_entity(
- Node(ns.bsn.Entity)).uri.startswith('http://example.com/me/file#'))
-
- def test_name_preview(self):
- # setup
- policy = DefaultNamingPolicy('http://example.com', 'me')
- # name_preview uses ucid
- self.assertEqual(policy.name_preview(
- Node(ns.bsn.Preview, ucid='123abc321')).uri,
- URI('http://example.com/me/preview#123abc321'))
- self.assertEqual(policy.name_preview(
- Node(ns.bsn.Preview, ucid='123abc321', size=400)).uri,
- URI('http://example.com/me/preview#123abc321_s400'))
- # name_preview uses source
- self.assertEqual(policy.name_preview(
- Node(ns.bsn.Preview, source=Node(ns.bsn.Entity, ucid='123file321'))).uri,
- URI('http://example.com/me/preview#123file321'))
- self.assertEqual(policy.name_preview(
- Node(ns.bsn.Preview, source=Node(ns.bsn.Entity, ucid='123file321'), size=300)).uri,
- URI('http://example.com/me/preview#123file321_s300'))
- # name_preview falls back to a random guid
- self.assertTrue(policy.name_preview(
- Node(ns.bsn.Preview)).uri.startswith('http://example.com/me/preview#'))
- self.assertTrue(policy.name_preview(
- Node(ns.bsn.Preview, size=200)).uri.startswith('http://example.com/me/preview#'))
- self.assertTrue(policy.name_preview(
- Node(ns.bsn.Preview, size=200)).uri.endswith('_s200'))
-
- def test_name_tag(self):
- # setup
- policy = DefaultNamingPolicy('http://example.com', 'me')
- # name_tag uses label
- self.assertEqual(policy.name_tag(
- Node(ns.bsn.Tag, label='hello')).uri,
- URI('http://example.com/me/tag#hello'))
- # name_tag matches the label
- self.assertEqual(
- policy.name_tag(Node(ns.bsn.Tag, label='world')),
- policy.name_tag(Node(ns.bsn.Tag, label='world')),
- )
- self.assertNotEqual(
- policy.name_tag(Node(ns.bsn.Tag, label='hello')),
- policy.name_tag(Node(ns.bsn.Tag, label='world')),
- )
- # label can include characters that are not valid for an uri
- self.assertEqual(policy.name_tag(
- Node(ns.bsn.Preview, label='hello world { foo bar ] ')).uri,
- URI('http://example.com/me/tag#hello%20world%20%7B%20foo%20bar%20%5D%20'))
- # name_tag falls back to a random guid
- self.assertTrue(policy.name_tag(
- Node(ns.bsn.Tag,)).uri.startswith('http://example.com/me/tag#'))
-
- def test_name_face(self):
- # setup
- policy = DefaultNamingPolicy('http://example.com', 'me')
- # name_face uses ucid
- self.assertEqual(policy.name_face(
- Node(ns.bsn.Face, ucid='hello_world')).uri,
- URI('http://example.com/me/face#hello_world'))
- # name_face falls back to a random guid
- self.assertTrue(policy.name_face(
- Node(ns.bsn.Face)).uri.startswith('http://example.com/me/face#'))
-
-
-class TestNamingPolicyIterator(unittest.TestCase):
-
- def test_call(self): # NOTE: We test NamingPolicy.__call__ here
- # setup
- policy = DefaultNamingPolicy('http://example.com', 'me')
- # call accepts list
- triples = [('node', 'pred', 'value'), ('node', 'pred', 'value')]
- it = policy(triples)
- self.assertIsInstance(it, NamingPolicyIterator)
- self.assertEqual(it._iterable, triples)
- self.assertEqual(it._policy, policy)
- # call accepts iterator
- triples = iter([('node', 'pred', 'value'), ('node', 'pred', 'value')])
- it = policy(triples)
- self.assertIsInstance(it, NamingPolicyIterator)
- self.assertEqual(it._iterable, triples)
- self.assertEqual(it._policy, policy)
-
- def test_iter(self):
- # setup
- policy = DefaultNamingPolicy('http://example.com', 'me')
- triples = [
- (Node(ns.bsn.Entity, ucid='foo'), 'predA', 'hello'),
- (Node(ns.bsn.Preview, ucid='bar'), 'predB', 1234),
- (Node(ns.bsn.Preview, ucid='hello'), 'predC', Node(ns.bsn.Entity, ucid='world'))
- ]
- # handles nodes, handles values, ignores predicate
- self.assertListEqual(list(policy(triples)), [
- (Node(ns.bsn.Entity, uri='http://example.com/me/file#foo'), 'predA', 'hello'),
- (Node(ns.bsn.Preview, uri='http://example.com/me/preview#bar'), 'predB', 1234),
- (Node(ns.bsn.Preview, uri='http://example.com/me/preview#hello'), 'predC',
- Node(ns.bsn.Entity, uri='http://example.com/me/file#world')),
- ])
-
-
-## main ##
-
-if __name__ == '__main__':
- unittest.main()
-
-## EOF ##