Mercurial > p > roundup > code
comparison test/test_misc.py @ 7967:70703d22c79a
test: fix test_html for different html structure for extra info.
Fix normalization of python version/path.
However there are so many changes in formating under python3 depending
on version, I am now just checking for 3 key strings rather than
equality for a block of html.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Tue, 14 May 2024 23:06:38 -0400 |
| parents | 6763813d9d34 |
| children | d54f4261cd87 |
comparison
equal
deleted
inserted
replaced
| 7966:1e38ca6fb16e | 7967:70703d22c79a |
|---|---|
| 252 <table width="100%" bgcolor="white" cellspacing=0 cellpadding=0 border=0> | 252 <table width="100%" bgcolor="white" cellspacing=0 cellpadding=0 border=0> |
| 253 <tr><td><tt><small><font color="#909090"> XX</font></small> d = a + 4<br> | 253 <tr><td><tt><small><font color="#909090"> XX</font></small> d = a + 4<br> |
| 254 </tt></td></tr></table> | 254 </tt></td></tr></table> |
| 255 <tt><small> </small> </tt><small><font color="#909090"><strong>d</strong> = <em>undefined</em>, <em>global</em> <strong>a</strong> = <em>undefined</em></font></small><br><p> </p>""" | 255 <tt><small> </small> </tt><small><font color="#909090"><strong>d</strong> = <em>undefined</em>, <em>global</em> <strong>a</strong> = <em>undefined</em></font></small><br><p> </p>""" |
| 256 | 256 |
| 257 expected3 = """\n<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">\n<tr bgcolor="#777777">\n<td valign=bottom> <br>\n<font color="#ffffff" face="helvetica, arial"> <br><font size=+1><strong>NameError</strong>: name \'a\' is not defined</font></font></td\n><td align=right valign=bottom\n><font color="#ffffff" face="helvetica, arial">Python XX</font></td></tr></table>\n <p>A problem occurred while running a Python script. Here is the sequence of function calls leading up to the error, with the most recent (innermost) call first. The exception attributes are:<br><tt><small> </small> </tt>__cause__ = None <br><tt><small> </small> </tt>__class__ = <class \'NameError\'> <br><tt><small> </small> </tt>__context__ = None <br><tt><small> </small> </tt>__delattr__ = <method-wrapper \'__delattr__\' of NameError object> <br><tt><small> </small> </tt>__dict__ = {} <br><tt><small> </small> </tt>__dir__ = <built-in method __dir__ of NameError object> <br><tt><small> </small> </tt>__doc__ = \'Name not found globally.\' <br><tt><small> </small> </tt>__eq__ = <method-wrapper \'__eq__\' of NameError object> <br><tt><small> </small> </tt>__format__ = <built-in method __format__ of NameError object> <br><tt><small> </small> </tt>__ge__ = <method-wrapper \'__ge__\' of NameError object> <br><tt><small> </small> </tt>__getattribute__ = <method-wrapper \'__getattribute__\' of NameError object> <br><tt><small> </small> </tt>__gt__ = <method-wrapper \'__gt__\' of NameError object> <br><tt><small> </small> </tt>__hash__ = <method-wrapper \'__hash__\' of NameError object> <br><tt><small> </small> </tt>__init__ = <method-wrapper \'__init__\' of NameError object> <br><tt><small> </small> </tt>__init_subclass__ = <built-in method __init_subclass__ of type object> <br><tt><small> </small> </tt>__le__ = <method-wrapper \'__le__\' of NameError object> <br><tt><small> </small> </tt>__lt__ = <method-wrapper \'__lt__\' of NameError object> <br><tt><small> </small> </tt>__ne__ = <method-wrapper \'__ne__\' of NameError object> <br><tt><small> </small> </tt>__new__ = <built-in method __new__ of type object> <br><tt><small> </small> </tt>__reduce__ = <built-in method __reduce__ of NameError object> <br><tt><small> </small> </tt>__reduce_ex__ = <built-in method __reduce_ex__ of NameError object> <br><tt><small> </small> </tt>__repr__ = <method-wrapper \'__repr__\' of NameError object> <br><tt><small> </small> </tt>__setattr__ = <method-wrapper \'__setattr__\' of NameError object> <br><tt><small> </small> </tt>__setstate__ = <built-in method __setstate__ of NameError object> <br><tt><small> </small> </tt>__sizeof__ = <built-in method __sizeof__ of NameError object> <br><tt><small> </small> </tt>__str__ = <method-wrapper \'__str__\' of NameError object> <br><tt><small> </small> </tt>__subclasshook__ = <built-in method __subclasshook__ of type object> <br><tt><small> </small> </tt>__suppress_context__ = False <br><tt><small> </small> </tt>__traceback__ = <traceback object> <br><tt><small> </small> </tt>args = ("name \'a\' is not defined",) <br><tt><small> </small> </tt>with_traceback = <built-in method with_traceback of NameError object><p>\n<table width="100%" bgcolor="#dddddd" cellspacing=0 cellpadding=2 border=0>\n<tr><td><a href="file:XX/test/test_misc.py">XX/test/test_misc.py</a> in <strong>test_html</strong>(self=<test.test_misc.CgiTbCheck testMethod=test_html>)</td></tr></table>\n<tt><small><font color="#909090"> XX</font></small> f = 5<br>\n</tt>\n\n\n<table width="100%" bgcolor="white" cellspacing=0 cellpadding=0 border=0>\n<tr><td><tt><small><font color="#909090"> XX</font></small> d = a + 4<br>\n</tt></td></tr></table>\n<tt><small> </small> </tt><small><font color="#909090"><strong>d</strong> = <em>undefined</em>, <em>global</em> <strong>a</strong> = <em>undefined</em></font></small><br><p> </p>""" | 257 expected1_3 ="""NameError""" |
| 258 expected2_3 =""": name \'a\' is not defined""" | |
| 259 expected3_3 ="""built-in method __dir__ of NameError object>""" | |
| 258 | 260 |
| 259 # strip file path prefix from href and text | 261 # strip file path prefix from href and text |
| 260 # /home/user/develop/roundup/test/test_misc.py in test_html | 262 # /home/user/develop/roundup/test/test_misc.py in test_html |
| 261 h = re.sub(r'(file:)/.*/(test/test_misc.py")', r'\1XX/\2', h) | 263 h = re.sub(r'(file:)/.*/(test/test_misc.py")', r'\1XX/\2', h) |
| 262 h = re.sub(r'(/test_misc.py">)/.*/(test/test_misc.py</a>)', | 264 h = re.sub(r'(/test_misc.py">)/.*/(test/test_misc.py</a>)', |
| 263 r'\1XX/\2', h) | 265 r'\1XX/\2', h) |
| 264 # replace code line numbers with XX | 266 # replace code line numbers with XX |
| 265 h = re.sub(r'( )\d*(</font>)', r'\1XX\2', h) | 267 h = re.sub(r'( )\d*(</font>)', r'\1XX\2', h) |
| 266 # normalize out python version/path | 268 # normalize out python version/path |
| 267 h = re.sub(r'(Python )[\d.]*<br>[^<]*(</font><)', r'\1XX\2', h) | 269 h = re.sub(r'(Python )[\d.]*<br>[^<]*/python[23]?', r'\1XX', h) |
| 268 | 270 |
| 269 print(h) | 271 print(h) |
| 270 | 272 |
| 271 if sys.version_info > (3, 0, 0): | 273 if sys.version_info > (3, 0, 0): |
| 272 self.assertEqual(expected3, h) | 274 self.assertIn(expected1_3, h) |
| 275 self.assertIn(expected2_3, h) | |
| 276 self.assertIn(expected3_3, h) | |
| 273 else: | 277 else: |
| 274 self.assertEqual(expected2, h) | 278 self.assertEqual(expected2, h) |
