class TestNestedBlankManifest(unittest.TestCase): def __init__(self, *a, **k): super(TestNestedBlankManifest, self).__init__(*a, **k) self.nested_blank_manifest = ProgramManifest({ '': ProgramManifest({ '': ProgramManifest({ '': GiottoProgram(model='root', controllers=('get', )), 'prog3': GiottoProgram(model='three'), }), 'prog2': GiottoProgram(model='two', controllers=('get', )), }), 'prog1': GiottoProgram(model='one'), }) def test_lost_superformat(self): """ Superformat is lost when iterative over a blank manifest """ parsed = self.nested_blank_manifest.parse_invocation('/prog2.json/arg1/arg2', 'get') self.assertEquals(parsed['program'].model, 'two') self.assertEquals(parsed['args'], ['arg1', 'arg2']) self.assertEquals(parsed['name'], 'prog2') self.assertEquals(parsed['superformat'], 'json') def test_blank(self): parsed = self.nested_blank_manifest.parse_invocation('/', 'get') self.assertEquals(parsed['program'].model, 'root') self.assertEquals(parsed['args'], []) self.assertEquals(parsed['name'], '') self.assertEquals(parsed['superformat'], None) def test_follow(self): parsed = self.nested_blank_manifest.parse_invocation('prog2', 'get') self.assertEquals(parsed['program'].model, "two") self.assertEquals(parsed['args'], []) self.assertEquals(parsed['name'], 'prog2') self.assertEquals(parsed['superformat'], None) def test_follow_with_args(self): parsed = self.nested_blank_manifest.parse_invocation('prog2/arg1/arg2', 'get') self.assertEquals(parsed['program'].model, 'two') self.assertEquals(parsed['args'], ['arg1', 'arg2']) self.assertEquals(parsed['name'], 'prog2') self.assertEquals(parsed['superformat'], None) def test_root_with_args(self): parsed = self.nested_blank_manifest.parse_invocation('/args1/args2', 'get') self.assertEquals(parsed['program'].model, 'root') self.assertEquals(parsed['args'], ['args1', 'args2']) self.assertEquals(parsed['name'], '') self.assertEquals(parsed['superformat'], None)
def __init__(self, *a, **k): super(ControllerTagTest, self).__init__(*a, **k) self.manifest = ProgramManifest({ '': GiottoProgram(model="root"), 'prog1': [ GiottoProgram(model="one", controllers=('get', )), GiottoProgram(model="two", controllers=('post', )), ] })
def __init__(self, *a, **k): super(TestNestedBlankManifest, self).__init__(*a, **k) self.nested_blank_manifest = ProgramManifest({ '': ProgramManifest({ '': ProgramManifest({ '': GiottoProgram(model='root', controllers=('get', )), 'prog3': GiottoProgram(model='three'), }), 'prog2': GiottoProgram(model='two', controllers=('get', )), }), 'prog1': GiottoProgram(model='one'), })
class ControllerTagTest(unittest.TestCase): def __init__(self, *a, **k): super(ControllerTagTest, self).__init__(*a, **k) self.manifest = ProgramManifest({ '': GiottoProgram(model="root"), 'prog1': [ GiottoProgram(model="one", controllers=('get', )), GiottoProgram(model="two", controllers=('post', )), ] }) def test_one(self): parsed = self.manifest.parse_invocation('prog1', 'get') self.assertEquals(parsed['program'].model, 'one') self.assertEquals(parsed['args'], []) self.assertEquals(parsed['name'], 'prog1') self.assertEquals(parsed['superformat'], None) def test_two(self): parsed = self.manifest.parse_invocation('prog1', 'post') self.assertEquals(parsed['program'].model, 'two') self.assertEquals(parsed['args'], []) self.assertEquals(parsed['name'], 'prog1') self.assertEquals(parsed['superformat'], None)
def __init__(self, *a, **k): super(ManifestTest, self).__init__(*a, **k) self.manifest = ProgramManifest({ '': GiottoProgram(model="root", controllers=('get', )), 'prog1': GiottoProgram(model="one", controllers=('get', )), 'path1': { 'prog2': GiottoProgram(model="two", controllers=('get', )), 'path2': { 'prog3': GiottoProgram(model="three"), 'path3': { '': GiottoProgram(model="root", controllers=('get', )), 'prog4': GiottoProgram(model="four", controllers=('get', )), }, }, }, })
class ManifestTest(unittest.TestCase): def __init__(self, *a, **k): super(ManifestTest, self).__init__(*a, **k) self.manifest = ProgramManifest({ '': GiottoProgram(model="root", controllers=('get', )), 'prog1': GiottoProgram(model="one", controllers=('get', )), 'path1': { 'prog2': GiottoProgram(model="two", controllers=('get', )), 'path2': { 'prog3': GiottoProgram(model="three"), 'path3': { '': GiottoProgram(model="root", controllers=('get', )), 'prog4': GiottoProgram(model="four", controllers=('get', )), }, }, }, }) def test_simple_program(self): parsed = self.manifest.parse_invocation('prog1.xml', 'get') self.assertEquals(parsed['program'].model, 'one') self.assertEquals(parsed['args'], []) self.assertEquals(parsed['name'], 'prog1') self.assertEquals(parsed['superformat'], 'xml') def test_args(self): parsed = self.manifest.parse_invocation('prog1.json/arg1/arg2', 'get') self.assertEquals(parsed['program'].model, "one") self.assertEquals(parsed['args'], ['arg1', 'arg2']) self.assertEquals(parsed['name'], 'prog1') self.assertEquals(parsed['superformat'], 'json') def test_path_and_arg(self): parsed = self.manifest.parse_invocation('path1/prog2.html/arg1', 'get') self.assertEquals(parsed['program'].model, "two") self.assertEquals(parsed['args'], ['arg1']) self.assertEquals(parsed['name'], 'prog2') self.assertEquals(parsed['superformat'], 'html') def test_long_path(self): parsed = self.manifest.parse_invocation('path1/path2/path3/prog4/arg1/arg2', 'get') self.assertEquals(parsed['program'].model, "four") self.assertEquals(parsed['args'], ['arg1', 'arg2']) self.assertEquals(parsed['name'], 'prog4') self.assertEquals(parsed['superformat'], None) def test_root(self): parsed = self.manifest.parse_invocation('path1/path2/path3/arg1/arg2', 'get') self.assertEquals(parsed['program'].model, 'root') self.assertEquals(parsed['args'], ['arg1', 'arg2']) self.assertEquals(parsed['name'], '') self.assertEquals(parsed['superformat'], None) def test_trailing_slash(self): parsed = self.manifest.parse_invocation('/prog1/', 'get') self.assertEquals(parsed['program'].model, 'one') self.assertEquals(parsed['args'], []) def test_single_root(self): parsed = self.manifest.parse_invocation('/', 'get') self.assertEquals(parsed['program'].model, 'root') self.assertEquals(parsed['args'], []) self.assertEquals(parsed['name'], '') self.assertEquals(parsed['superformat'], None) def test_not_found(self): self.assertRaises(ProgramNotFound, lambda: self.manifest.parse_invocation('path1/path2/fakearg', 'get')) def test_no_program(self): self.assertRaises(ProgramNotFound, lambda: self.manifest.parse_invocation('path1/path2', 'get')) def test_no_matching_controller_tag(self): self.assertRaises(ProgramNotFound, lambda: self.manifest.parse_invocation('path1/prog2', 'post')) def test_every_controller(self): """ If no controller tags are defined for a program, then whitelist all controllers. """ parsed = self.manifest.parse_invocation('/path1/path2/prog3', 'post') self.assertEquals(parsed['program'].model, 'three')