# Copyright 2017 Canonical Ltd. # Licensed under the LGPLv3, see LICENCE file for details. from unittest import TestCase import macaroonbakery.checkers as checkers class TestNamespace(TestCase): def test_serialize(self): tests = [ ('empty namespace', None, b''), ('standard namespace', {'std': ''}, b'std:'), ('several elements', { 'std': '', 'http://blah.blah': 'blah', 'one': 'two', 'foo.com/x.v0.1': 'z', }, b'foo.com/x.v0.1:z http://blah.blah:blah one:two std:'), ('sort by URI not by field', { 'a': 'one', 'a1': 'two', }, b'a:one a1:two') ] for test in tests: ns = checkers.Namespace(test[1]) data = ns.serialize_text() self.assertEquals(data, test[2]) self.assertEquals(str(ns), test[2].decode('utf-8')) # Check that it can be deserialize to the same thing: ns1 = checkers.deserialize_namespace(data) self.assertEquals(ns1, ns) # TODO(rogpeppe) add resolve tests def test_register(self): ns = checkers.Namespace(None) ns.register('testns', 't') prefix = ns.resolve('testns') self.assertEquals(prefix, 't') ns.register('other', 'o') prefix = ns.resolve('other') self.assertEquals(prefix, 'o') # If we re-register the same URL, it does nothing. ns.register('other', 'p') prefix = ns.resolve('other') self.assertEquals(prefix, 'o') def test_register_bad_uri(self): ns = checkers.Namespace(None) with self.assertRaises(KeyError): ns.register('', 'x') def test_register_bad_prefix(self): ns = checkers.Namespace(None) with self.assertRaises(ValueError): ns.register('std', 'x:1')
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
__pycache__ | Folder | 0755 |
|
|
__init__.py | File | 91 B | 0644 |
|
common.py | File | 3.2 KB | 0644 |
|
test_agent.py | File | 15.33 KB | 0644 |
|
test_authorizer.py | File | 4.79 KB | 0644 |
|
test_bakery.py | File | 9.5 KB | 0644 |
|
test_checker.py | File | 35.75 KB | 0644 |
|
test_checkers.py | File | 15.28 KB | 0644 |
|
test_client.py | File | 25.25 KB | 0644 |
|
test_codec.py | File | 7.56 KB | 0644 |
|
test_discharge.py | File | 21.06 KB | 0644 |
|
test_discharge_all.py | File | 5.72 KB | 0644 |
|
test_httpbakery.py | File | 1.26 KB | 0644 |
|
test_keyring.py | File | 3.45 KB | 0644 |
|
test_macaroon.py | File | 8.23 KB | 0644 |
|
test_namespace.py | File | 1.87 KB | 0644 |
|
test_oven.py | File | 5.03 KB | 0644 |
|
test_store.py | File | 546 B | 0644 |
|
test_time.py | File | 4.65 KB | 0644 |
|
test_utils.py | File | 3.36 KB | 0644 |
|