From 34171a348bac1b5427618dcfb203dd4c6c48b8d0 Mon Sep 17 00:00:00 2001 From: Chris AtLee Date: Sun, 21 Feb 2010 21:23:32 -0500 Subject: [PATCH] Improve coverage of debug module --- eventlet/debug.py | 4 +- eventlet/support/greenlets.py | 1 + tests/debug_test.py | 83 ++++++++++++++++++++++++++++++++++- 3 files changed, 86 insertions(+), 2 deletions(-) diff --git a/eventlet/debug.py b/eventlet/debug.py index 937e6af..5e44eeb 100644 --- a/eventlet/debug.py +++ b/eventlet/debug.py @@ -4,6 +4,8 @@ debugging Eventlet-powered applications.""" import os import sys import linecache +import string +import inspect __all__ = ['spew', 'unspew', 'format_hub_listeners', 'hub_listener_stacks', 'hub_exceptions', 'tpool_exceptions'] @@ -122,4 +124,4 @@ def tpool_exceptions(state): functions that are executed in it, in addition to raising them like it normally does.""" from eventlet import tpool - tpool.QUIET = not state \ No newline at end of file + tpool.QUIET = not state diff --git a/eventlet/support/greenlets.py b/eventlet/support/greenlets.py index 25bb60d..cb75667 100644 --- a/eventlet/support/greenlets.py +++ b/eventlet/support/greenlets.py @@ -4,6 +4,7 @@ try: GreenletExit = greenlet.GreenletExit greenlet = greenlet.greenlet except ImportError, e: + raise try: from py.magic import greenlet getcurrent = greenlet.getcurrent diff --git a/tests/debug_test.py b/tests/debug_test.py index 4afa349..db5e329 100644 --- a/tests/debug_test.py +++ b/tests/debug_test.py @@ -4,12 +4,90 @@ import eventlet from eventlet import debug from eventlet import api from tests import LimitedTestCase, main +from unittest import TestCase try: from cStringIO import StringIO except ImportError: from StringIO import StringIO +class TestSpew(TestCase): + def setUp(self): + self.orig_trace = sys.settrace + sys.settrace = self._settrace + self.tracer = None + + def tearDown(self): + sys.settrace = self.orig_trace + sys.stdout = sys.__stdout__ + + def _settrace(self, cb): + self.tracer = cb + + def test_spew(self): + debug.spew() + self.failUnless(isinstance(self.tracer, debug.Spew)) + + def test_unspew(self): + debug.spew() + debug.unspew() + self.failUnlessEqual(self.tracer, None) + + def test_line(self): + sys.stdout = StringIO() + s = debug.Spew() + f = sys._getframe() + s(f, "line", None) + lineno = f.f_lineno - 1 # -1 here since we called with frame f in the line above + output = sys.stdout.getvalue() + self.failUnless("debug_test:%i" % lineno in output, "Didn't find line %i in %s" % (lineno, output)) + self.failUnless("f=