Exemplo n.º 1
0
    def test_paths(self):
        d = NamespaceDict()
        self.assertSetEqual(set(["/"]), d._paths("/"))

        self.assertSetEqual(set(["/", "/f", "/f/o", "/f/o/o"]), d._paths("/f/o/o/"))

        self.assertSetEqual(set(["/", "/f", "/f/o", "/f/o/o"]), d._paths("/f/o/o"))
Exemplo n.º 2
0
    def test_leaves(self):
        d = NamespaceDict()
        self.assertSetEqual(set(), d._leaves())
        d["/f/o/o/r"] = "bar"
        self.assertSetEqual(set(["/f/o/o/r"]), d._leaves())

        d["/f/o/o/z"] = "baz"
        self.assertSetEqual(set(["/f/o/o/r", "/f/o/o/z"]), d._leaves())
Exemplo n.º 3
0
    def test_normalize_names_with_trailing_sep(self):
        d = NamespaceDict({"/foo/bar/": "baz"})

        self.assertTrue("/foo/bar" in d)
        self.assertTrue("/foo/bar/" in d)
        self.assertSetEqual(set(["/foo/bar", "/foo", "/"]), d.keys())

        self.assertEqual("baz", d["/foo/bar/"])
Exemplo n.º 4
0
 def test_pop_everything(self):
     d = NamespaceDict({"/foo/bar": "baz"})
     popped_val = d.pop("/")
     self.assertEqual(1, len(d))
     self.assertIsInstance(popped_val, NamespaceDict)
     self.assertDictEqual({"/foo/bar": "baz"}, popped_val)
     self.assertDictEqual({}, d)
     self.assertSetEqual(set(["/"]), d.keys())
Exemplo n.º 5
0
    def test_pop_item_with_default(self):
        d = NamespaceDict({"/foo/bar": "baz", "/foo/baz": "bar"})
        popped_val = d.pop("/foo/baz/", "foobar")
        self.assertEqual("bar", popped_val)
        self.assertDictEqual({"/foo/bar": "baz"}, d)
        self.assertEqual(3, len(d))

        self.assertTrue("foobar", d.pop("/foo/baz/", "foobar"))
        self.assertEqual(3, len(d))
Exemplo n.º 6
0
    def test_get_func(self):
        d = NamespaceDict([("/foo/bar", "baz"), ("/foo/baz", "bar")])

        self.assertEqual("baz", d.get("/foo/bar"))
        self.assertEqual("bar", d.get("/foo/baz"))
        self.assertEqual("foobar", d.get("bad_key", "foobar"))

        with self.assertRaises(KeyError):
            d.get("bad_key")
Exemplo n.º 7
0
    def test_iter_paths(self):
        d = NamespaceDict()
        paths = [path for path in d._iter_paths("/")]
        self.assertListEqual(["/"], paths)

        paths = [path for path in d._iter_paths("/f/o/o/")]
        self.assertListEqual(["/", "/f", "/f/o", "/f/o/o"], paths)

        paths = [path for path in d._iter_paths("/f/o/o")]
        self.assertListEqual(["/", "/f", "/f/o", "/f/o/o"], paths)
Exemplo n.º 8
0
    def test_sub_paths(self):
        d = NamespaceDict()
        d["/f/o/o/b/a/r"] = "baz"
        d["/f/o/o/b/a/z"] = "bar"
        self.assertSetEqual(
            set(
                [
                    "",
                    "f",
                    "f/o",
                    "f/o/o",
                    "f/o/o/b",
                    "f/o/o/b/a",
                    "f/o/o/b/a/r",
                    "f/o/o/b/a/z",
                ]
            ),
            set(d._sub_paths("/")),
        )
        self.assertSetEqual(
            set(["", "b", "b/a", "b/a/r", "b/a/z"]), set(d._sub_paths("/f/o/o"))
        )
        self.assertSetEqual(set([]), set(d._sub_paths("/foo")))

        d = NamespaceDict({"/foo/bar": "baz", "/foo/baz": "bar"})
        self.assertSetEqual(set(["", "bar", "baz"]), set(d._sub_paths("/foo")))
        d = NamespaceDict({"/f/r": "baz", "/f/z": "bar"})
        self.assertSetEqual(set(["", "f", "f/r", "f/z"]), set(d._sub_paths("/")))
        self.assertSetEqual(set(["", "f", "f/r", "f/z"]), set(d._sub_paths("")))
Exemplo n.º 9
0
    def test_deep_names(self):
        d = NamespaceDict()
        d["/f/o/o/b/a/r"] = "baz"
        d["/f/o/o/b/a/z"] = "bar"

        self.assertEqual(8, len(d))

        d["/b/a/z/b/a/r"] = "foo"
        self.assertEqual(14, len(d))

        popped_val = d.pop("/f/o/o/")
        self.assertDictEqual({"/b/a/r": "baz", "/b/a/z": "bar"}, popped_val)
        self.assertEqual(5, len(popped_val))

        self.assertDictEqual({"/b/a/z/b/a/r": "foo"}, d)
        self.assertEqual(7, len(d))
Exemplo n.º 10
0
    def test_pop_item(self):
        d = NamespaceDict({"/foo/bar": "baz", "/foo/baz": "bar"})
        val = d.pop("/foo/bar/")
        self.assertEqual("baz", val)
        self.assertDictEqual({"/foo/baz": "bar"}, d)
        self.assertSetEqual(set(["/", "/foo", "/foo/baz"]), d.keys())
        self.assertEqual(3, len(d))

        val = d.pop("/foo/baz")
        self.assertEqual("bar", val)
        self.assertDictEqual({}, d)
        self.assertEqual(1, len(d))

        val = d.pop("/foo", "foobar")
        self.assertEqual("foobar", val)
        self.assertDictEqual({}, d)
        self.assertEqual(1, len(d))
Exemplo n.º 11
0
 def test_repr(self):
     d = NamespaceDict({'/foo/bar': 'baz', '/foo/baz': 'bar'})
     new_d = eval(repr(d))
     self.assertTrue(isinstance(new_d, NamespaceDict))
     self.assertDictEqual({'/foo/bar': 'baz', '/foo/baz': 'bar'}, new_d)
Exemplo n.º 12
0
    def test_sub_paths(self):
        d = NamespaceDict()
        d['/f/o/o/b/a/r'] = 'baz'
        d['/f/o/o/b/a/z'] = 'bar'
        self.assertSetEqual(
            set([
                '',
                'f',
                'f/o',
                'f/o/o',
                'f/o/o/b',
                'f/o/o/b/a',
                'f/o/o/b/a/r',
                'f/o/o/b/a/z',
            ]), set(d._sub_paths('/')))
        self.assertSetEqual(set([
            '',
            'b',
            'b/a',
            'b/a/r',
            'b/a/z',
        ]), set(d._sub_paths('/f/o/o')))
        self.assertSetEqual(set([]), set(d._sub_paths('/foo')))

        d = NamespaceDict({'/foo/bar': 'baz', '/foo/baz': 'bar'})
        self.assertSetEqual(set(['', 'bar', 'baz']), set(d._sub_paths('/foo')))
        d = NamespaceDict({'/f/r': 'baz', '/f/z': 'bar'})
        self.assertSetEqual(set([
            '',
            'f',
            'f/r',
            'f/z',
        ]), set(d._sub_paths('/')))
        self.assertSetEqual(set([
            '',
            'f',
            'f/r',
            'f/z',
        ]), set(d._sub_paths('')))
Exemplo n.º 13
0
 def test_split(self):
     d = NamespaceDict()
     self.assertListEqual(['foo', 'bar'], d._split('/foo/bar'))
     self.assertListEqual(['foo', 'bar', 'baz'], d._split('/foo/bar/baz/'))
     self.assertListEqual(['foo', 'bar'], d._split('foo//bar'))
     self.assertListEqual([], d._split('/'))
Exemplo n.º 14
0
 def test_init_with_no_seps(self):
     d = NamespaceDict({'bar': 'baz', 'baz': 'bar'})
     self.assertDictEqual({'/bar': 'baz', '/baz': 'bar'}, d)
Exemplo n.º 15
0
 def test_split(self):
     d = NamespaceDict()
     self.assertListEqual(["foo", "bar"], d._split("/foo/bar"))
     self.assertListEqual(["foo", "bar", "baz"], d._split("/foo/bar/baz/"))
     self.assertListEqual(["foo", "bar"], d._split("foo//bar"))
     self.assertListEqual([], d._split("/"))
Exemplo n.º 16
0
 def test_join(self):
     d = NamespaceDict()
     self.assertEqual("/foo", d._join("", "foo"))
Exemplo n.º 17
0
 def test_norm(self):
     d = NamespaceDict()
     self.assertEqual('/', d._norm('/'))
     self.assertEqual('/foo', d._norm('/foo'))
     self.assertEqual('/foo', d._norm('/foo/'))
     self.assertEqual('/foo/bar', d._norm('/foo//////bar//'))
Exemplo n.º 18
0
 def test_join(self):
     d = NamespaceDict()
     self.assertEqual('/foo', d._join('', 'foo'))
Exemplo n.º 19
0
    def test_get_item_that_is_a_dict(self):
        d = NamespaceDict({'/foo/bar': 'baz', '/foo/baz': 'bar'})

        self.assertEqual({'/bar': 'baz', '/baz': 'bar'}, d['/foo'])
        self.assertEqual({'/bar': 'baz', '/baz': 'bar'}, d['/foo/'])
        self.assertEqual({'/foo/bar': 'baz', '/foo/baz': 'bar'}, d['/'])
Exemplo n.º 20
0
 def test_normalize_names_double_seps(self):
     d = NamespaceDict({'/foo//bar/': 'baz'})
     self.assertDictEqual({'/foo/bar': 'baz'}, d)
     self.assertEqual('baz', d['/foo//bar'])
Exemplo n.º 21
0
 def test_normalize_names_without_leading_sep(self):
     d = NamespaceDict({'foo/bar/': 'baz'})
     self.assertDictEqual({'/foo/bar': 'baz'}, d)
     self.assertEqual('baz', d['foo/bar'])
Exemplo n.º 22
0
    def test_has_key(self):
        d = NamespaceDict({'/foo/bar': 'baz'})

        self.assertTrue(d.has_key('/foo/bar'))
        self.assertTrue(d.has_key('/foo/bar/'))
Exemplo n.º 23
0
 def test_init_without_args(self):
     d = NamespaceDict()
     self.assertDictEqual({}, d)
Exemplo n.º 24
0
    def test_keys(self):
        d = NamespaceDict()
        self.assertSetEqual(set(["/"]), d.keys())

        d = NamespaceDict({"/foo/bar": "baz", "/foo/baz": "bar"})
        self.assertSetEqual(set(["/", "/foo", "/foo/bar", "/foo/baz"]), d.keys())
Exemplo n.º 25
0
 def test_init_with_dict(self):
     d = NamespaceDict({'/foo/bar': 'baz', '/foo/baz': 'bar'})
     self.assertDictEqual({'/foo/bar': 'baz', '/foo/baz': 'bar'}, d)
Exemplo n.º 26
0
 def test_norm(self):
     d = NamespaceDict()
     self.assertEqual("/", d._norm("/"))
     self.assertEqual("/foo", d._norm("/foo"))
     self.assertEqual("/foo", d._norm("/foo/"))
     self.assertEqual("/foo/bar", d._norm("/foo//////bar//"))
Exemplo n.º 27
0
    def test_has_key(self):
        d = NamespaceDict({"/foo/bar": "baz"})

        self.assertTrue("/foo/bar" in d)
        self.assertTrue("/foo/bar/" in d)
Exemplo n.º 28
0
 def test_repr(self):
     d = NamespaceDict({"/foo/bar": "baz", "/foo/baz": "bar"})
     new_d = eval(repr(d))
     self.assertTrue(isinstance(new_d, NamespaceDict))
     self.assertDictEqual({"/foo/bar": "baz", "/foo/baz": "bar"}, new_d)
Exemplo n.º 29
0
 def test_init_with_tuples(self):
     d = NamespaceDict([('/foo/bar', 'baz'), ('/foo/baz', 'bar')])
     self.assertDictEqual({'/foo/bar': 'baz', '/foo/baz': 'bar'}, d)
Exemplo n.º 30
0
    def test_update(self):
        d = NamespaceDict({"/foo/bar": "baz"})
        d.update({"/foo/baz": "bar"})
        self.assertDictEqual({"/foo/bar": "baz", "/foo/baz": "bar"}, d)

        d.update({"/foo/bar/": "bar"})
        self.assertDictEqual({"/foo/bar": "bar", "/foo/baz": "bar"}, d)

        d = NamespaceDict()
        d.update((("/foo/bar/", "baz"),))
        self.assertDictEqual({"/foo/bar": "baz"}, d)

        d.update(NamespaceDict({"/foo/baz/": "bar"}))
        self.assertDictEqual({"/foo/bar": "baz", "/foo/baz": "bar"}, d)
Exemplo n.º 31
0
    def test_update(self):
        d = NamespaceDict({'/foo/bar': 'baz'})
        d.update({'/foo/baz': 'bar'})
        self.assertDictEqual({'/foo/bar': 'baz', '/foo/baz': 'bar'}, d)

        d.update({'/foo/bar/': 'bar'})
        self.assertDictEqual({'/foo/bar': 'bar', '/foo/baz': 'bar'}, d)

        d = NamespaceDict()
        d.update((('/foo/bar/', 'baz'), ))
        self.assertDictEqual({'/foo/bar': 'baz'}, d)

        d.update(NamespaceDict({'/foo/baz/': 'bar'}))
        self.assertDictEqual({'/foo/bar': 'baz', '/foo/baz': 'bar'}, d)