1313_ROOT = os .path .abspath (os .path .dirname (__file__ ))
1414
1515
16- if sys . version_info [ 0 ] < 3 :
17- # python2
16+ class XMLTest ( unittest . TestCase ) :
17+
1818 def assertXmlEqual (self , got , want ):
1919 from lxml .doctestcompare import LXMLOutputChecker
2020 from doctest import Example
@@ -25,10 +25,6 @@ def assertXmlEqual(self, got, want):
2525 message = checker .output_difference (Example ("" , want ), got , 0 )
2626 raise AssertionError (message )
2727
28- unittest .TestCase .assertXmlEqual = assertXmlEqual
29- else :
30- # python3
31- unittest .TestCase .assertXmlEqual = unittest .TestCase .assertEqual
3228
3329class Cd (XmlModel ):
3430
@@ -109,11 +105,10 @@ def test_update_attributes(self):
109105 self .assertEqual (self .field .element ().items (), [('uom' , 'kg' )])
110106
111107
112- class TestModel (unittest . TestCase ):
108+ class TestModel (XMLTest ):
113109
114110 def setUp (self ):
115- self .xml = "<?xml version='1.0' encoding='UTF-8'?>\n "
116- self .xml += re .sub ('\s+<' , '<' , """
111+ self .xml = re .sub ('\s+<' , '<' , """
117112<CATALOG>
118113 <CD>
119114 <ARTIST>Bob Dylan</ARTIST>
@@ -174,21 +169,16 @@ def setUp(self):
174169 self .catalog .build_tree ()
175170
176171 def test_xml (self ):
177- with open ('/tmp/x1.xml' , 'wb' ) as f :
178- f .write (self .xml .encode ('utf8' ))
179- with open ('/tmp/x2.xml' , 'wb' ) as f :
180- f .write (self .catalog .serialize ())
181- self .assertXmlEqual (self .xml .encode ('utf8' ), self .catalog .serialize ())
172+ self .assertXmlEqual (self .xml , str (self .catalog ))
182173
183174
184- class TestEmpty (unittest . TestCase ):
175+ class TestEmpty (XMLTest ):
185176
186177 def setUp (self ):
187- self .xml = "<?xml version='1.0' encoding='UTF-8'?> \n < feed>"
178+ self .xml = "<feed>"
188179 self .xml += "<test>foo</test><link href=\" http://example.com\" />"
189180 self .xml += "<entry><val>1</val></entry><entry><val>2</val></entry>"
190181 self .xml += "</feed>"
191- self .xml = self .xml .encode ('utf8' )
192182
193183 def test_empty (self ):
194184
@@ -219,10 +209,10 @@ def __init__(self):
219209
220210 feed .build_tree ()
221211
222- self .assertXmlEqual (self .xml , feed . serialize ( ))
212+ self .assertXmlEqual (self .xml , str ( feed ))
223213
224214
225- class TestValue (unittest . TestCase ):
215+ class TestValue (XMLTest ):
226216 value = None
227217
228218 def _test_drop (self , drop_empty = False , xml = None ):
@@ -253,74 +243,67 @@ def __init__(self):
253243
254244 feed .build_tree ()
255245
256- self .assertXmlEqual (xml , feed . serialize ( ))
246+ self .assertXmlEqual (xml , str ( feed ))
257247
258248
259249class TestZeroValue (TestValue ):
260250 value = 0
261251
262252 def test_drop_empty_disabled (self ):
263- xml = "<?xml version='1.0' encoding='UTF-8'?> \n < feed>"
253+ xml = "<feed>"
264254 xml += "<test>foo</test><link href=\" http://example.com\" />"
265255 xml += "<entry><val>1</val></entry><entry><val>0</val></entry>"
266256 xml += "</feed>"
267- xml = xml .encode ('utf8' )
268257 self ._test_drop (False , xml )
269258
270259 def test_drop_empty_enabled (self ):
271- xml = "<?xml version='1.0' encoding='UTF-8'?> \n < feed>"
260+ xml = "<feed>"
272261 xml += "<test>foo</test>"
273262 xml += "<entry><val>1</val></entry><entry><val>0</val></entry>"
274263 xml += "</feed>"
275- xml = xml .encode ('utf8' )
276264 self ._test_drop (True , xml )
277265
278266
279267class TestFalseValue (TestValue ):
280268 value = False
281269
282270 def test_false_drop_empty_disabled (self ):
283- xml = "<?xml version='1.0' encoding='UTF-8'?> \n < feed>"
271+ xml = "<feed>"
284272 xml += "<test>foo</test><link href=\" http://example.com\" />"
285273 xml += "<entry><val>1</val></entry><entry/>"
286274 xml += "</feed>"
287- xml = xml .encode ('utf8' )
288275 self ._test_drop (False , xml )
289276
290277 def test_false_drop_empty_enabled (self ):
291- xml = "<?xml version='1.0' encoding='UTF-8'?> \n < feed>"
278+ xml = "<feed>"
292279 xml += "<test>foo</test>"
293280 xml += "<entry><val>1</val></entry>"
294281 xml += "</feed>"
295- xml = xml .encode ('utf8' )
296282 self ._test_drop (True , xml )
297283
298284
299285class TestNoneValue (TestValue ):
300286 value = None
301287
302288 def test_drop_empty_disabled (self ):
303- xml = "<?xml version='1.0' encoding='UTF-8'?> \n < feed>"
289+ xml = "<feed>"
304290 xml += "<test>foo</test><link href=\" http://example.com\" />"
305291 xml += "<entry><val>1</val></entry><entry/>"
306292 xml += "</feed>"
307- xml = xml .encode ('utf8' )
308293 self ._test_drop (False , xml )
309294
310295 def test_drop_empty_enabled (self ):
311- xml = "<?xml version='1.0' encoding='UTF-8'?> \n < feed>"
296+ xml = "<feed>"
312297 xml += "<test>foo</test>"
313298 xml += "<entry><val>1</val></entry>"
314299 xml += "</feed>"
315- xml = xml .encode ('utf8' )
316300 self ._test_drop (True , xml )
317301
318- class RootWithAttributes (unittest .TestCase ):
302+
303+ class RootWithAttributes (XMLTest ):
319304
320305 def setUp (self ):
321- self .xml = "<?xml version='1.0' encoding='UTF-8'?>\n "
322- self .xml += "<link href=\" http://example.com\" />"
323- self .xml = self .xml .encode ('utf8' )
306+ self .xml = "<link href=\" http://example.com\" />"
324307
325308 def test_root_with_attributes (self ):
326309
@@ -336,13 +319,12 @@ def __init__(self):
336319 l .tag .attributes .update ({'href' : 'http://example.com' })
337320 l .build_tree ()
338321
339- self .assertXmlEqual (self .xml , l . serialize ( ))
322+ self .assertXmlEqual (self .xml , str ( l ))
340323
341324
342- class Namespaces (unittest . TestCase ):
325+ class Namespaces (XMLTest ):
343326 def setUp (self ):
344- self .xml = "<?xml version='1.0' encoding='UTF-8'?>\n "
345- self .xml += "<rss "
327+ self .xml = "<rss "
346328 self .xml += "xmlns:atom=\" http://www.w3.org/2005/Atom\" "
347329 self .xml += "xmlns:opensearch=\" http://a9.com/-/spec/opensearch/1.1/\" "
348330 self .xml += "version=\" 2.0\" >"
@@ -354,7 +336,6 @@ def setUp(self):
354336 self .xml += "<opensearch:totalResults>4230000</opensearch:totalResults>"
355337 self .xml += "</channel>"
356338 self .xml += "</rss>"
357- self .xml = self .xml .encode ('utf8' )
358339
359340 def test_namesapces_root (self ):
360341
@@ -404,6 +385,6 @@ def __init__(self):
404385 rss .build_tree ()
405386
406387 self .assertXmlEqual (
407- self .xml , rss . serialize ( )
388+ self .xml , str ( rss )
408389 )
409390
0 commit comments