Beispiel #1
0
    def test_find_model(self):
        from happy.traversal import find_model as f
        root = DummyModel()
        a = root['a'] = DummyModel()
        b = root['b'] = DummyModel()
        c = b['c'] = DummyModel()
        d = a['d'] = DummyLeaf()
        e = root['e'] = DummyModel()
        g = e['g'] = DummyModel()
        h = e['h'] = DummyModel()

        self.assertEqual(f(root, ''), root)
        self.assertEqual(f(root, '/'), root)
        self.assertEqual(f(root, '/a'), a)
        self.assertEqual(f(root, '/a/'), a)
        self.assertRaises(KeyError, f, root, '/a/d/f')
        self.assertEqual(f(root, '/b/c'), c)
        self.assertRaises(KeyError, f, root, '/b/c/d/e')
Beispiel #2
0
    def test_traverse(self):
        from happy.traversal import traverse as f
        root = DummyModel()
        a = root['a'] = DummyModel()
        b = root['b'] = DummyModel()
        c = b['c'] = DummyModel()
        d = a['d'] = DummyLeaf()
        e = root['e'] = DummyModel()
        g = e['g'] = DummyModel()
        h = e['h'] = DummyModel()

        self.assertEqual(f(root, ''), (root, []))
        self.assertEqual(f(root, '/'), (root, []))
        self.assertEqual(f(root, '/a'), (a, []))
        self.assertEqual(f(root, '/a/'), (a, []))
        self.assertEqual(f(root, '/a/d/f'), (d, ['f']))
        self.assertEqual(f(root, '/b/c'), (c, []))
        self.assertEqual(f(root, '/b/c/d/e'), (c, ['d', 'e']))
        self.assertNotEqual(f(root, '/e/g'), (h, []))