Example #1
0
 def test_capture_as_context_manager(self):
     """{CaptureTracer}s can be used as context managers."""
     conn = StubConnection()
     with CaptureTracer() as tracer:
         self.assertEqual([tracer], get_tracers())
         tracer.connection_raw_execute(conn, "cursor", "select", [])
     self.assertEqual([], get_tracers())
     self.assertEqual(["select"], tracer.queries)
Example #2
0
 def test_capture_as_context_manager(self):
     """{CaptureTracer}s can be used as context managers."""
     conn = StubConnection()
     with CaptureTracer() as tracer:
         self.assertEqual([tracer], get_tracers())
         tracer.connection_raw_execute(conn, "cursor", "select", [])
     self.assertEqual([], get_tracers())
     self.assertEqual(["select"], tracer.queries)
Example #3
0
 def test_remove_tracer_type(self):
     class C(object): pass
     class D(C): pass
     c = C()
     d1 = D()
     d2 = D()
     install_tracer(d1)
     install_tracer(c)
     install_tracer(d2)
     remove_tracer_type(C)
     self.assertEquals(get_tracers(), [d1, d2])
     remove_tracer_type(D)
     self.assertEquals(get_tracers(), [])
 def test_disable_timeout_tracer(self):
     """disable_timeout_tracer removes the tracer."""
     enable_timeout_tracer()
     disable_timeout_tracer()
     timeout_tracers = [t for t in tracer.get_tracers()
                        if isinstance(t, StorageTimeoutTracer)]
     self.assertEqual(timeout_tracers, [])
 def test_enable_timeout_tracer(self):
     """enable_timeout_tracer adds the tracer."""
     enable_timeout_tracer()
     timeout_tracers = [t for t in tracer.get_tracers()
                        if isinstance(t, StorageTimeoutTracer)]
     self.assertNotEqual(timeout_tracers, [])
     self.assertEqual(timeout_tracers[0].max_time, 20)
def current_timeout_tracer():
    """Get the current timeout tracer."""
    timeout_tracers = [t for t in get_tracers()
                       if isinstance(t, StorageTimeoutTracer)]
    try:
        return timeout_tracers[0]
    except IndexError:
        raise NoTimeoutTracer('No timeout tracer registered')
Example #7
0
def test_remove_tracer(cleanup_tracers):
    """The C{remote_tracer} function removes a specific tracer."""
    tracer1 = object()
    tracer2 = object()
    install_tracer(tracer1)
    install_tracer(tracer2)
    remove_tracer(tracer1)
    assert get_tracers() == [tracer2]
Example #8
0
    def test_remove_tracer_type(self):
        class C(object):
            pass

        class D(C):
            pass

        c = C()
        d1 = D()
        d2 = D()
        install_tracer(d1)
        install_tracer(c)
        install_tracer(d2)
        remove_tracer_type(C)
        self.assertEquals(get_tracers(), [d1, d2])
        remove_tracer_type(D)
        self.assertEquals(get_tracers(), [])
Example #9
0
 def test_remove_tracer(self):
     """The C{remote_tracer} function removes a specific tracer."""
     tracer1 = object()
     tracer2 = object()
     install_tracer(tracer1)
     install_tracer(tracer2)
     remove_tracer(tracer1)
     self.assertEquals(get_tracers(), [tracer2])
Example #10
0
def test_remove_tracer_type(cleanup_tracers):
    class C(object):
        pass

    class D(C):
        pass

    c = C()
    d1 = D()
    d2 = D()
    install_tracer(d1)
    install_tracer(c)
    install_tracer(d2)
    remove_tracer_type(C)
    assert get_tracers() == [d1, d2]
    remove_tracer_type(D)
    assert get_tracers() == []
Example #11
0
 def test_remove_tracer(self):
     """The C{remote_tracer} function removes a specific tracer."""
     tracer1 = object()
     tracer2 = object()
     install_tracer(tracer1)
     install_tracer(tracer2)
     remove_tracer(tracer1)
     self.assertEquals(get_tracers(), [tracer2])
Example #12
0
 def test_enable_timeout_tracer(self):
     """enable_timeout_tracer adds the tracer."""
     enable_timeout_tracer()
     timeout_tracers = [
         t for t in tracer.get_tracers()
         if isinstance(t, StorageTimeoutTracer)
     ]
     self.assertNotEqual(timeout_tracers, [])
     self.assertEqual(timeout_tracers[0].max_time, 20)
Example #13
0
 def test_disable_timeout_tracer(self):
     """disable_timeout_tracer removes the tracer."""
     enable_timeout_tracer()
     disable_timeout_tracer()
     timeout_tracers = [
         t for t in tracer.get_tracers()
         if isinstance(t, StorageTimeoutTracer)
     ]
     self.assertEqual(timeout_tracers, [])
    def test_gets_current_timeout_tracer(self):
        """Test that we're able to get the current timeout tracer."""
        enable_timeout_tracer()
        timeout_tracers = [t for t in tracer.get_tracers()
                           if isinstance(t, StorageTimeoutTracer)]
        expected_tracer = timeout_tracers[0]
        actual_tracer = current_timeout_tracer()

        self.assertEqual(actual_tracer, expected_tracer)
Example #15
0
    def test_gets_current_timeout_tracer(self):
        """Test that we're able to get the current timeout tracer."""
        enable_timeout_tracer()
        timeout_tracers = [
            t for t in tracer.get_tracers()
            if isinstance(t, StorageTimeoutTracer)
        ]
        expected_tracer = timeout_tracers[0]
        actual_tracer = current_timeout_tracer()

        self.assertEqual(actual_tracer, expected_tracer)
Example #16
0
 def test_capture_with_exception(self):
     """
     L{CaptureTracer}s re-raise any error when used as context managers.
     """
     errors = []
     try:
         with CaptureTracer():
             raise RuntimeError("boom")
     except RuntimeError as error:
         errors.append(error)
     [error] = errors
     self.assertEqual("boom", str(error))
     self.assertEqual([], get_tracers())
Example #17
0
    def test_capture(self):
        """
        Using the L{CaptureTracer} fixture starts capturing queries and stops
        removes the tracer upon cleanup.
        """
        tracer = self.useFixture(CaptureTracer())
        self.assertEqual([tracer], get_tracers())
        conn = StubConnection()
        conn.param_mark = '%s'
        var = MockVariable(u"var")
        tracer.connection_raw_execute(conn, "cursor", "select %s", [var])
        self.assertEqual(["select 'var'"], tracer.queries)

        def check():
            self.assertEqual([], get_tracers())

        self.addCleanup(check)
Example #18
0
    def test_capture(self):
        """
        Using the L{CaptureTracer} fixture starts capturing queries and stops
        removes the tracer upon cleanup.
        """
        tracer = self.useFixture(CaptureTracer())
        self.assertEqual([tracer], get_tracers())
        conn = StubConnection()
        conn.param_mark = '%s'
        var = MockVariable(u"var")
        tracer.connection_raw_execute(conn, "cursor", "select %s", [var])
        self.assertEqual(["select 'var'"], tracer.queries)

        def check():
            self.assertEqual([], get_tracers())

        self.addCleanup(check)
Example #19
0
    def test_capture_multiple(self):
        """L{CaptureTracer}s can be used as nested context managers."""

        conn = StubConnection()

        def trace(statement):
            for tracer in get_tracers():
                tracer.connection_raw_execute(conn, "cursor", statement, [])

        with CaptureTracer() as tracer1:
            trace("one")
            with CaptureTracer() as tracer2:
                trace("two")
            trace("three")

        self.assertEqual([], get_tracers())
        self.assertEqual(["one", "two", "three"], tracer1.queries)
        self.assertEqual(["two"], tracer2.queries)
Example #20
0
    def test_capture_multiple(self):
        """L{CaptureTracer}s can be used as nested context managers."""

        conn = StubConnection()

        def trace(statement):
            for tracer in get_tracers():
                tracer.connection_raw_execute(conn, "cursor", statement, [])

        with CaptureTracer() as tracer1:
            trace("one")
            with CaptureTracer() as tracer2:
                trace("two")
            trace("three")

        self.assertEqual([], get_tracers())
        self.assertEqual(["one", "two", "three"], tracer1.queries)
        self.assertEqual(["two"], tracer2.queries)
Example #21
0
 def test_remove_debug(self):
     debug(True)
     debug(True)
     debug(False)
     self.assertEquals(get_tracers(), [])
Example #22
0
 def test_wb_install_debug_with_custom_stream(self):
     marker = object()
     debug(True, marker)
     [tracer] = get_tracers()
     self.assertEquals(tracer._stream, marker)
Example #23
0
 def test_install_debug(self):
     debug(True)
     debug(True)
     self.assertEquals([type(x) for x in get_tracers()], [DebugTracer])
Example #24
0
 def test_remove_debug(self):
     debug(True)
     debug(True)
     debug(False)
     self.assertEquals(get_tracers(), [])
Example #25
0
def test_install_debug(cleanup_tracers):
    debug(True)
    debug(True)
    assert [type(x) for x in get_tracers()] == [DebugTracer]
Example #26
0
def test_remove_tracer_with_not_installed_tracer():
    """C{remote_tracer} exits gracefully if the tracer is not installed."""
    tracer = object()
    remove_tracer(tracer)
    assert get_tracers() == []
Example #27
0
 def trace(statement):
     for tracer in get_tracers():
         tracer.connection_raw_execute(conn, "cursor", statement, [])
Example #28
0
def test_remove_all_tracers(cleanup_tracers):
    install_tracer(object())
    remove_all_tracers()
    assert get_tracers() == []
Example #29
0
def test_remove_debug(cleanup_tracers):
    debug(True)
    debug(True)
    debug(False)
    assert get_tracers() == []
Example #30
0
 def test_install_debug(self):
     debug(True)
     debug(True)
     self.assertEquals([type(x) for x in get_tracers()], [DebugTracer])
Example #31
0
class CaptureTracerTest(TestHelper, TestWithFixtures):
    def is_supported(self):
        return has_fixtures

    def tearDown(self):
        super(CaptureTracerTest, self).tearDown()
        del _tracers[:]

    def test_capture(self):
        """
        Using the L{CaptureTracer} fixture starts capturing queries and stops
        removes the tracer upon cleanup.
        """
        tracer = self.useFixture(CaptureTracer())
        self.assertEqual([tracer], get_tracers())
        conn = StubConnection()
        conn.param_mark = '%s'
        var = MockVariable(u"var")
        tracer.connection_raw_execute(conn, "cursor", "select %s", [var])
        self.assertEqual(["select 'var'"], tracer.queries)

        def check():
            self.assertEqual([], get_tracers())

        self.addCleanup(check)

    def test_capture_as_context_manager(self):
        """{CaptureTracer}s can be used as context managers."""
        conn = StubConnection()
        with CaptureTracer() as tracer:
            self.assertEqual([tracer], get_tracers())
            tracer.connection_raw_execute(conn, "cursor", "select", [])
        self.assertEqual([], get_tracers())
        self.assertEqual(["select"], tracer.queries)

    def test_capture_multiple(self):
        """L{CaptureTracer}s can be used as nested context managers."""

        conn = StubConnection()

        def trace(statement):
            for tracer in get_tracers():
                tracer.connection_raw_execute(conn, "cursor", statement, [])

        with CaptureTracer() as tracer1:
            trace("one")
            with CaptureTracer() as tracer2:
                trace("two")
            trace("three")

        self.assertEqual([], get_tracers())
        self.assertEqual(["one", "two", "three"], tracer1.queries)
        self.assertEqual(["two"], tracer2.queries)

    def test_capture_with_exception(self):
        """
        L{CaptureTracer}s re-raise any error when used as context managers.
        """
        errors = []
        try:
            with CaptureTracer():
                raise RuntimeError("boom")
        except RuntimeError, error:
            errors.append(error)
        [error] = errors
        self.assertEqual("boom", str(error))
        self.assertEqual([], get_tracers())
Example #32
0
 def test_install_tracer(self):
     c = object()
     d = object()
     install_tracer(c)
     install_tracer(d)
     self.assertEquals(get_tracers(), [c, d])
Example #33
0
 def test_install_tracer(self):
     c = object()
     d = object()
     install_tracer(c)
     install_tracer(d)
     self.assertEquals(get_tracers(), [c, d])
Example #34
0
 def check():
     self.assertEqual([], get_tracers())
Example #35
0
 def trace(statement):
     for tracer in get_tracers():
         tracer.connection_raw_execute(conn, "cursor", statement, [])
Example #36
0
 def test_remove_tracer_with_not_installed_tracer(self):
     """C{remote_tracer} exits gracefully if the tracer is not installed."""
     tracer = object()
     remove_tracer(tracer)
     self.assertEquals(get_tracers(), [])
Example #37
0
 def test_remove_tracer_with_not_installed_tracer(self):
     """C{remote_tracer} exits gracefully if the tracer is not installed."""
     tracer = object()
     remove_tracer(tracer)
     self.assertEquals(get_tracers(), [])
Example #38
0
def test_wb_install_debug_with_custom_stream(cleanup_tracers):
    marker = object()
    debug(True, marker)
    [tracer] = get_tracers()
    assert tracer._stream == marker
Example #39
0
 def test_wb_install_debug_with_custom_stream(self):
     marker = object()
     debug(True, marker)
     [tracer] = get_tracers()
     self.assertEquals(tracer._stream, marker)
Example #40
0
def test_install_tracer(cleanup_tracers):
    c = object()
    d = object()
    install_tracer(c)
    install_tracer(d)
    assert get_tracers() == [c, d]
Example #41
0
 def check():
     self.assertEqual([], get_tracers())
Example #42
0
 def test_remove_all_tracers(self):
     install_tracer(object())
     remove_all_tracers()
     self.assertEquals(get_tracers(), [])
Example #43
0
 def test_remove_all_tracers(self):
     install_tracer(object())
     remove_all_tracers()
     self.assertEquals(get_tracers(), [])