Пример #1
0
 def test_pedantic(self):
     self.assertRaises(TypeError,
                       lambda: namespace.Namespace({'a': set([1, 2, 3])}))
     self.patch(namespace, "pedantic", False)
     # should not crash if pendentic disabled
     n = namespace.Namespace({'a': set([1, 2, 3])})
     self.assertRaises(TypeError, lambda: repr(n))
Пример #2
0
    def test_basic(self):
        n = namespace.Namespace({'a': {'b': {'c': 1}}})

        self.assertEqual(n.a.b.c, 1)
        self.assertEqual(n['a']['b']['c'], 1)
        self.assertEqual(n['a'].b['c'], 1)
        self.assertEqual(n['a']['b'].c, 1)
        self.assertEqual(n['a'].b.c, 1)
        self.assertEqual(list(n.keys()), ['a'])
        self.assertEqual(list(n.a.b.values()), [1])
        self.assertEqual(list(n.a.b.items()), [('c', 1)])
        n.a.b.c = 2
        self.assertEqual(n.has_key('a'), True)
        self.assertEqual(n.has_key('b'), False)

        self.assertEqual(n['a']['b']['c'], 2)
        n.a.b = {'d': 3}
        self.assertEqual(n.a.b.d, 3)
        n.a.b = namespace.Namespace({'e': 4})
        self.assertEqual(n.a.b.e, 4)
        self.assertRaises(KeyError, lambda: n.a.b.d == 3)
        self.assertEqual(namespace.Namespace(1), 1)
        self.assertEqual(namespace.Namespace([1]), [1])
        self.assertEqual(namespace.Namespace("1"), "1")
        self.assertEqual(namespace.Namespace(["1"]), ["1"])

        self.assertRaises(KeyError, lambda: n["__getitem__"])
        n.a['b'] = {'f': 5}
        self.assertEqual(n.a.b.f, 5)
Пример #3
0
 def test_list(self):
     n = namespace.Namespace([{
         'a': {
             'b': {
                 'c': 1
             }
         }
     }, {
         'a': {
             'b': {
                 'c': 2
             }
         }
     }])
     self.assertEqual(n[0].a.b.c, 1)
     self.assertEqual(n[1].a.b.c, 2)
     for i in n:
         self.assertEqual(i.a.b.c, i.a.b.c)
Пример #4
0
    def test_prettyprint(self):
        n = namespace.Namespace({'a': [{'b': {'c': 1}}]})
        expected = """\
{
    "a": [
        {
            "b": {
                "c": 1
            }
        }
    ]
}"""
        self.assertEqual(repr(n), expected)
        expected = """\
a -> list
a[i] -> dict
a[i].b -> dict
a[i].b.c -> int
"""
        self.assertEqual(namespace.documentNamespace(n), expected)
Пример #5
0
 def test_pickle(self):
     n = namespace.Namespace([{
         'a': {
             'b': {
                 'c': 1
             }
         }
     }, {
         'a': {
             'b': {
                 'c': 2
             }
         }
     }])
     s = pickle.dumps(n)
     n = pickle.loads(s)
     self.assertEqual(n[0].a.b.c, 1)
     self.assertEqual(n[1].a.b.c, 2)
     for i in n:
         self.assertEqual(i.a.b.c, i.a.b.c)
Пример #6
0
 def test_jsondump(self):
     s = '[{"a": {"b": {"c": 1}}}, {"a": {"b": {"c": 2}}}]'
     n = namespace.Namespace(json.loads(s))
     self.assertEqual(json.dumps(n), s)
Пример #7
0
 def test_nonzero(self):
     n = namespace.Namespace({'a': {'b': {'c': 1}}})
     self.failUnless(n)
     n = namespace.Namespace({})
     self.failIf(n)