import sys from unittest import TestCase from eventlet import debug from eventlet.support import capture_stderr, six from tests import LimitedTestCase, main import eventlet 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() assert isinstance(self.tracer, debug.Spew) def test_unspew(self): debug.spew() debug.unspew() assert self.tracer is None def test_line(self): sys.stdout = six.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() assert "%s:%i" % (__name__, lineno) in output, "Didn't find line %i in %s" % (lineno, output) assert "f=