Fix debug_test to use module name and line numbers determined at runtime.

This fixes version-specific values in test_line_nofile, and also makes it
possible to run debug_test.py directly (not under nose).
This commit is contained in:
Chris AtLee
2010-02-25 13:11:00 -05:00
parent 4d9ef644c2
commit c3ae82d374

View File

@@ -39,7 +39,7 @@ class TestSpew(TestCase):
s(f, "line", None) s(f, "line", None)
lineno = f.f_lineno - 1 # -1 here since we called with frame f in the line above lineno = f.f_lineno - 1 # -1 here since we called with frame f in the line above
output = sys.stdout.getvalue() output = sys.stdout.getvalue()
self.failUnless("debug_test:%i" % lineno in output, "Didn't find line %i in %s" % (lineno, output)) self.failUnless("%s:%i" % (__name__, lineno) in output, "Didn't find line %i in %s" % (lineno, output))
self.failUnless("f=<frame object at" in output) self.failUnless("f=<frame object at" in output)
def test_line_nofile(self): def test_line_nofile(self):
@@ -48,13 +48,10 @@ class TestSpew(TestCase):
g = globals().copy() g = globals().copy()
del g['__file__'] del g['__file__']
f = eval("sys._getframe()", g) f = eval("sys._getframe()", g)
lineno = f.f_lineno
s(f, "line", None) s(f, "line", None)
output = sys.stdout.getvalue() output = sys.stdout.getvalue()
# version-dependent output here self.failUnless("[unknown]:%i" % lineno in output, "Didn't find [unknown]:%i in %s" % (lineno, output))
if sys.version_info >= (2,5):
self.failUnless("[unknown]:1" in output, "Didn't find [unknown]:1 in %s" % (output))
else:
self.failUnless("[unknown]:0" in output, "Didn't find [unknown]:0 in %s" % (output))
self.failUnless("VM instruction #" in output, output) self.failUnless("VM instruction #" in output, output)
def test_line_global(self): def test_line_global(self):
@@ -65,7 +62,7 @@ class TestSpew(TestCase):
GLOBAL_VAR(f, "line", None) GLOBAL_VAR(f, "line", None)
lineno = f.f_lineno - 1 # -1 here since we called with frame f in the line above lineno = f.f_lineno - 1 # -1 here since we called with frame f in the line above
output = sys.stdout.getvalue() output = sys.stdout.getvalue()
self.failUnless("debug_test:%i" % lineno in output, "Didn't find line %i in %s" % (lineno, output)) self.failUnless("%s:%i" % (__name__, lineno) in output, "Didn't find line %i in %s" % (lineno, output))
self.failUnless("f=<frame object at" in output) self.failUnless("f=<frame object at" in output)
self.failUnless("GLOBAL_VAR" in f.f_globals) self.failUnless("GLOBAL_VAR" in f.f_globals)
self.failUnless("GLOBAL_VAR=<eventlet.debug.Spew object at" in output) self.failUnless("GLOBAL_VAR=<eventlet.debug.Spew object at" in output)
@@ -78,7 +75,7 @@ class TestSpew(TestCase):
s(f, "line", None) s(f, "line", None)
lineno = f.f_lineno - 1 # -1 here since we called with frame f in the line above lineno = f.f_lineno - 1 # -1 here since we called with frame f in the line above
output = sys.stdout.getvalue() output = sys.stdout.getvalue()
self.failUnless("debug_test:%i" % lineno in output, "Didn't find line %i in %s" % (lineno, output)) self.failUnless("%s:%i" % (__name__, lineno) in output, "Didn't find line %i in %s" % (lineno, output))
self.failIf("f=<frame object at" in output) self.failIf("f=<frame object at" in output)
def test_line_nooutput(self): def test_line_nooutput(self):