def xtest_text_key_custom_03(self): doc = Elem() doc.a = 1 doc.a.b = 2 doc.a.b.c = 3 doc.a.b.c.d = 4 doc.a.b.c.d.e = 5 # Integer rather than text text_key = 123 expected = {'a': {'b': {'c': {'d': {text_key: 4, 'e': 5}, text_key: 3}, text_key: 2}, text_key: 1}} out = doc.to_dict(text_key) self.assertDictEqual(expected, out) expected = {'a': {'b': {'c': {'d': {'e': 5, text_key: 4}, text_key: 3}, text_key: 2}, text_key: 1}} out = doc.a.to_dict(text_key) self.assertDictEqual(expected, out) expected = {'b': {'c': {text_key: 3, 'd': {'e': 5, text_key: 4}}, text_key: 2}} out = doc.a.b.to_dict(text_key) self.assertDictEqual(expected, out) expected = {'c': {'d': {'e': 5, text_key: 4}, text_key: 3}} out = doc.a.b.c.to_dict(text_key) self.assertDictEqual(expected, out) expected = {'d': {text_key: 4, 'e': 5}} out = doc.a.b.c.d.to_dict(text_key) self.assertDictEqual(expected, out) expected = {'e': 5} out = doc.a.b.c.d.e.to_dict(text_key) self.assertDictEqual(expected, out)
def xtest_nested_basic_06(self): doc = Elem() doc.a = 1 doc.a.bb = 2 doc.a.b.cc = 3 doc.a.b.c.dd = 4 doc.a.b.c.d.e = 5 doc.a.b.c.d.ee = 6 out = bunchify(doc.to_dict()) self.assertEquals(out.a.text, 1) self.assertEquals(getattr(out.a.b, 'text', does_not_exist), does_not_exist) self.assertEquals(out.a.bb, 2) self.assertEquals(out.a.b.cc, 3) self.assertEquals(out.a.b.c.dd, 4) self.assertEquals(out.a.b.c.d.e, 5) self.assertEquals(out.a.b.c.d.ee, 6) out = bunchify(doc.a.to_dict()) self.assertEquals(out.a.text, 1) self.assertEquals(getattr(out.a.b, 'text', does_not_exist), does_not_exist) self.assertEquals(out.a.bb, 2) self.assertEquals(out.a.b.cc, 3) self.assertEquals(out.a.b.c.dd, 4) self.assertEquals(out.a.b.c.d.e, 5) self.assertEquals(out.a.b.c.d.ee, 6)
def xtest_text_key_default(self): doc = Elem() doc.a = 1 doc.a.b = 2 doc.a.b.c = 3 doc.a.b.c.d = 4 doc.a.b.c.d.e = 5 expected = {'a': {'b': {'c': {'d': {'text': 4, 'e': 5}, 'text': 3}, 'text': 2}, 'text': 1}} out = doc.to_dict() self.assertDictEqual(expected, out) expected = {'a': {'b': {'c': {'d': {'e': 5, 'text': 4}, 'text': 3}, 'text': 2}, 'text': 1}} out = doc.a.to_dict() self.assertDictEqual(expected, out) expected = {'b': {'c': {'text': 3, 'd': {'e': 5, 'text': 4}}, 'text': 2}} out = doc.a.b.to_dict() self.assertDictEqual(expected, out) expected = {'c': {'d': {'e': 5, 'text': 4}, 'text': 3}} out = doc.a.b.c.to_dict() self.assertDictEqual(expected, out) expected = {'d': {'text': 4, 'e': 5}} out = doc.a.b.c.d.to_dict() self.assertDictEqual(expected, out) expected = {'e': 5} out = doc.a.b.c.d.e.to_dict() self.assertDictEqual(expected, out)
def xtest_attr_prefix_custom_len1(self): doc = Elem() doc.a = 123 doc.a._b = 456 expected = {'a': {'%b': 456, u'text': 123}} out = doc.to_dict(attr_prefix='%') self.assertDictEqual(expected, out)
def xtest_top_level_elems_no_ns(self): doc = Elem() doc.a = 'a' doc.b = 'b' expected = {'a':'a', 'b':'b'} out = doc.to_dict() self.assertDictEqual(expected, out)
def xtest_nested_basic_03(self): doc = Elem() doc.a = 1 doc.a.bb = 2 doc.a.b.c = 3 doc.a.b.c.d = 4 doc.a.b.c.d.e = 5 out = bunchify(doc.to_dict()) self.assertEquals(out.a.text, 1) self.assertEquals(getattr(out.a.b, 'text', does_not_exist), does_not_exist) self.assertEquals(out.a.bb, 2) self.assertEquals(out.a.b.c.text, 3) self.assertEquals(out.a.b.c.d.text, 4) self.assertEquals(out.a.b.c.d.e, 5) out = bunchify(doc.a.to_dict()) self.assertEquals(out.a.text, 1) self.assertEquals(out.a.bb, 2) self.assertEquals(out.a.b.c.text, 3) self.assertEquals(out.a.b.c.d.text, 4) self.assertEquals(out.a.b.c.d.e, 5) out = bunchify(doc.a.bb.to_dict()) self.assertEquals(out.bb, 2) expected = {'bb': 2} self.assertDictEqual(expected, out) out = bunchify(doc.a.b.to_dict()) self.assertEquals(getattr(out.b, 'text', does_not_exist), does_not_exist) self.assertEquals(out.b.c.text, 3) self.assertEquals(out.b.c.d.text, 4) self.assertEquals(out.b.c.d.e, 5) out = bunchify(doc.a.b.c.to_dict()) self.assertEquals(out.c.text, 3) self.assertEquals(out.c.d.text, 4) self.assertEquals(out.c.d.e, 5) out = bunchify(doc.a.b.c.d.to_dict()) self.assertEquals(out.d.text, 4) self.assertEquals(out.d.e, 5) expected = {'d': {'e': 5, 'text': 4}} self.assertDictEqual(expected, out) out = bunchify(doc.a.b.c.d.e.to_dict()) self.assertEquals(out.e, 5) expected = {'e': 5} self.assertDictEqual(expected, out)
def xtest_attr_prefix_default(self): doc = Elem() doc.a = 123 doc.a._b = 456 expected = {'a': {'#b': 456, u'text': 123}} out = doc.to_dict() self.assertDictEqual(expected, out)
def xtest_simple_03(self): doc = Elem() doc.a = 123 doc.a._b = 456 expected = {'a': {'#b': 456, u'text': 123}} out = doc.to_dict() self.assertDictEqual(expected, out)
def xtest_ns_elems_default(self): doc = Elem() doc.ns_map += {'x':'example.com/1'} doc.a = 123 doc.x_b = 456 expected = {'a': 123, 'b': 456} out = doc.to_dict() self.assertDictEqual(expected, out)
def xtest_ns_attrs_default_simple(self): doc = Elem() doc.ns_map += {'x':'example.com/1'} doc.a = 123 doc.a._x_b = 456 expected = {'a': {'#b': 456, 'text': 123}} out = doc.to_dict() self.assertDictEqual(expected, out)
def xtest_ns_attrs_include_ns_true_nested(self): doc = Elem() doc.ns_map += {'x':'example.com/1'} doc.a = 123 doc.a.q._x_b = 456 expected = {'a': {'q': {'#x_b': 456}, 'text': 123}} out = doc.to_dict(include_ns=True) self.assertDictEqual(expected, out)
def xtest_ns_elems_include_ns_true(self): doc = Elem() doc.ns_map += {'x':'example.com/1'} doc.a = 123 doc.x_b = 456 expected = {'a': 123, 'x_b': 456} out = doc.to_dict(include_ns=True) self.assertDictEqual(expected, out)
def test_sub1(self): doc1 = Elem() doc2 = Elem() doc2.b = 123 doc1.a = doc2 expected = {'a': {'b': 123}} out = doc1.to_dict() self.assertDictEqual(expected, out)
def xtest_ns_elems_attrs_ns_true(self): doc = Elem() doc.ns_map += {'x':'example.com/1'} doc.a = 123 doc.a.x_b = 456 doc.a._x_b = 789 expected = {'a': {'#x_b': 789, 'text': 123, 'x_b': 456}} out = doc.to_dict(include_ns=True) self.assertDictEqual(expected, out)
def xtest_ns_elems_attrs_default_nested(self): doc = Elem() doc.ns_map += {'x':'example.com/1'} doc.a = 123 doc.a.q.x_b = 456 doc.a.q._x_b = 789 expected = {'a': {'q': {'b': 456, '#b': 789}, 'text': 123}} out = doc.to_dict() self.assertDictEqual(expected, out)
def xtest_top_level_attrs_elems_attrs_no_ns(self): doc = Elem() doc.a = 'a' doc.b = 'b' doc._a = 'a2' doc._b = 'b2' expected = {'a':'a', 'b':'b', '#a':'a2', '#b':'b2'} out = doc.to_dict() self.assertDictEqual(expected, out)
def xtest_top_level_mixed_all_types(self): doc = Elem() doc.a = 'a-value' doc.b[0] = 'b0-value' doc.b[1] = 'b1-value' doc.b[1].c[0].d = 'd-value' expected = {'a': 'a-value', 'b': ['b0-value', {'c': [{'d': 'd-value'}], 'text': 'b1-value'}]} out = doc.to_dict() self.assertDictEqual(expected, out)
def xtest_simple_01(self): doc = Elem() doc.a = 123 expected = {'a': 123} out = doc.to_dict() self.assertDictEqual(expected, out) expected = {'a': 123} out = doc.a.to_dict() self.assertDictEqual(expected, out)
def xtest_top_level_elems_ns(self): doc = Elem() doc.ns_map += {'x':'example.com/1'} doc.a = 'a' doc.b = 'b' doc.x_a = 'a2' doc.x_b = 'b2' expected = {'a':'a', 'b':'b', 'x_a':'a2', 'x_b':'b2'} out = doc.to_dict(include_ns=True) self.assertDictEqual(expected, out)
def xtest_simple_07(self): doc = Elem() doc.a = 123 doc.a._b expected = {'a': {'#b': None, 'text': 123}} out = doc.to_dict() self.assertDictEqual(expected, out) expected = {'a': {'#b': None, 'text': 123}} out = doc.a.to_dict() self.assertDictEqual(expected, out)
def xtest_simple_06(self): doc = Elem() doc.a = 123 doc.a.b expected = {'a': {u'text': 123, 'b': None}} out = doc.to_dict() self.assertDictEqual(expected, out) expected = {'a': {u'text': 123, 'b': None}} out = doc.a.to_dict() self.assertDictEqual(expected, out) expected = {'b':None} out = doc.a.b.to_dict() self.assertDictEqual(expected, out)
def xtest_simple_02(self): doc = Elem() doc.a = 123 doc.a.b = 456 expected = {'a': {'text':123, 'b':456}} out = doc.to_dict() self.assertDictEqual(expected, out) expected = {'a': {'text':123, 'b':456}} out = doc.a.to_dict() self.assertDictEqual(expected, out) expected = {'b':456} out = doc.a.b.to_dict() self.assertDictEqual(expected, out)
def xtest_simple_10(self): doc = Elem() doc.a = 123 doc.a.b doc.a._b = 789 expected = {'a': {'#b': 789, 'b': None, 'text': 123}} out = doc.to_dict() self.assertDictEqual(expected, out) expected = {'a': {'#b': 789, 'b': None, 'text': 123}} out = doc.a.to_dict() self.assertDictEqual(expected, out) expected = {'b': None} out = doc.a.b.to_dict() self.assertDictEqual(expected, out)
def xtest_simple_04(self): doc = Elem() doc.a = 123 doc.a.b = 456 doc.a._b = 789 expected = {'a': {u'text': 123, 'b': 456, '#b': 789}} out = doc.to_dict() self.assertDictEqual(expected, out) expected = {'a': {u'text': 123, 'b': 456, '#b': 789}} out = doc.a.to_dict() self.assertDictEqual(expected, out) expected = {'b':456} out = doc.a.b.to_dict() self.assertDictEqual(expected, out)