def test_patch_unpatch(self): # Test patch idempotence patch() patch() service = "fo" conn = self._get_conn(service=service) conn.cursor().execute("""select 'blah'""") self.assert_structure(dict(name="postgres.query", service=service)) self.reset() # Test unpatch unpatch() conn = self._get_conn() conn.cursor().execute("""select 'blah'""") self.assert_has_no_spans() # Test patch again patch() conn = self._get_conn(service=service) conn.cursor().execute("""select 'blah'""") self.assert_structure(dict(name="postgres.query", service=service))
def psycopg2_patched(transactional_db): from django.db import connections from ddtrace.contrib.psycopg.patch import patch from ddtrace.contrib.psycopg.patch import unpatch patch() # # force recreate connection to ensure psycopg2 patching has occurred del connections["postgres"] connections["postgres"].close() connections["postgres"].connect() yield unpatch()
def test_patch_unpatch(self): tracer = get_dummy_tracer() writer = tracer.writer # Test patch idempotence patch() patch() service = "fo" conn = psycopg2.connect(**POSTGRES_CONFIG) Pin.get_from(conn).clone(service=service, tracer=tracer).onto(conn) conn.cursor().execute("select 'blah'") spans = writer.pop() assert spans, spans eq_(len(spans), 1) # Test unpatch unpatch() conn = psycopg2.connect(**POSTGRES_CONFIG) conn.cursor().execute("select 'blah'") spans = writer.pop() assert not spans, spans # Test patch again patch() conn = psycopg2.connect(**POSTGRES_CONFIG) Pin.get_from(conn).clone(service=service, tracer=tracer).onto(conn) conn.cursor().execute("select 'blah'") spans = writer.pop() assert spans, spans eq_(len(spans), 1)
def tearDown(self): unpatch()
def tearDown(self): super(PsycopgCore, self).tearDown() unpatch()