예제 #1
0
 def cmp_listitem(self, ser, exp_fmt):
     ser_ = ser
     for i in xrange(0, 5):
         ser = xmlser.make_serializer(ser_ % dict(idx=i))
         for o in (None, 1, "a", u"ä"):
             l = [None]*i + [o]
             self.assertEqual(ser(l), exp_fmt % dict(obj=o))
예제 #2
0
 def test_root(self):
     ser = xmlser.make_serializer("<root>")
     exp = "<root></root>"
     self.cmp_none(ser, exp)
예제 #3
0
 def cmp_dictitem(self, fmt_or_ser, exp_fmt):
     ser = fmt_or_ser if callable(fmt_or_ser) else xmlser.make_serializer(fmt_or_ser)
     self.assertEqual(ser({'item':None}), exp_fmt % None)
     self.assertEqual(ser({'item':1}), exp_fmt % 1)
     self.assertEqual(ser({'item':"a"}), exp_fmt % "a")
     self.assertEqual(ser({'item':u"ä"}), exp_fmt % u"ä")
예제 #4
0
 def cmp_ser(self, lser, rser, obj):
     lser = xmlser.make_serializer(lser)
     rser = xmlser.make_serializer(rser)
     self.assertEqual(lser(obj), rser(obj))
예제 #5
0
 def test_content_lit(self):
     ser = xmlser.make_serializer("<root&\"test\">")
     exp = u"<root>test</root>"
     self.cmp_none(ser, exp)
예제 #6
0
 def test_rep_list(self):
     ser = xmlser.make_serializer("<root<sub*?>>")
     self.assertEqual(ser(['a', 'b']), "<root><sub></sub><sub></sub></root>")
예제 #7
0
 def test_empty_dictkeyrep(self):
     ser = xmlser.make_serializer('<root<.0*?&.1><a>>')
     self.assertEqual(ser({}), '<root><a></a></root>')
예제 #8
0
 def test_attr_obj(self):
     ser = xmlser.make_serializer("<root<sub=attr?>>")
     exp = u"<root><sub attr=\"%s\"></sub></root>"
     self.cmp_obj(ser, exp)
예제 #9
0
 def test_ind_attr(self):
     ser = xmlser.make_serializer('<root=?"test">')
     self.assertEqual(ser('a'), '<root a="test"></root>')
예제 #10
0
 def test_empty_dictrep(self):
     ser = xmlser.make_serializer('<root<sub*?><a>>')
     self.assertEqual(ser({}), '<root><a></a></root>')
예제 #11
0
 def test_ind_tag(self):
     ser = xmlser.make_serializer("<?>")
     self.assertEqual(ser('a'), "<a></a>")
예제 #12
0
 def test_sub_dicttag(self):
     ser = xmlser.make_serializer("<root<.0*?>>")
     self.assertEqual(ser({'a':1}), "<root><a></a></root>")
예제 #13
0
 def test_rep_dict(self):
     ser = xmlser.make_serializer("<root<sub*?>>")
     self.assertEqual(ser({'a':1, 'b':2}),
                      '<root><sub></sub><sub></sub></root>')
예제 #14
0
 def test_3sub(self):
     ser = xmlser.make_serializer("<root<sub*3>>")
     exp = "<root><sub></sub><sub></sub><sub></sub></root>"
     self.cmp_none(ser, exp)
예제 #15
0
 def test_badobj_noattr(self):
     ser = xmlser.make_serializer('<root&.attr>')
     for o, e in [([], AttributeError), ({}, KeyError), (None, AttributeError)]:
         self.assertRaises(e, ser, o)
예제 #16
0
 def test_attr_lit(self):
     ser = xmlser.make_serializer("<root<sub=attr\"test\">>")
     exp = "<root><sub attr=\"test\"></sub></root>"
     self.cmp_none(ser, exp)
예제 #17
0
 def cmp_none(self, fmt_or_ser, exp_fmt):
     ser = fmt_or_ser if callable(fmt_or_ser) else xmlser.make_serializer(fmt_or_ser)
     self.assertEqual(ser(None), exp_fmt)
     self.assertEqual(ser([]), exp_fmt)
     self.assertEqual(ser(1), exp_fmt)
     self.assertEqual(ser([1]), exp_fmt)
예제 #18
0
 def test_attr_dictitem(self):
     ser = xmlser.make_serializer("<root<sub=attr.item>>")
     exp = u"<root><sub attr=\"%s\"></sub></root>"
     self.cmp_dictitem(ser, exp)
예제 #19
0
 def cmp_obj(self, fmt_or_ser, exp_fmt):
     ser = fmt_or_ser if callable(fmt_or_ser) else xmlser.make_serializer(fmt_or_ser)
     self.assertEqual(ser(None), exp_fmt % None)
     self.assertEqual(ser(1), exp_fmt % 1)
     self.assertEqual(ser("a"), exp_fmt % "a")
     self.assertEqual(ser(u"ä"), exp_fmt % u"ä")
예제 #20
0
 def test_content_obj(self):
     ser = xmlser.make_serializer("<root&?>")
     exp = u"<root>%s</root>"
     self.cmp_obj(ser, exp)
예제 #21
0
 def test_content_dictitem(self):
     ser = xmlser.make_serializer("<root&.item>")
     exp = u"<root>%s</root>"
     self.cmp_dictitem(ser, exp)