diff options
Diffstat (limited to 'test/lib/test_naming_policy.py')
-rw-r--r-- | test/lib/test_naming_policy.py | 158 |
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 ## |