def test_traced_error(self):
tracer = DummyTracer()
sqlalchemy_opentracing.init_tracing(tracer, False, False)
sqlalchemy_opentracing.register_engine(self.engine)
creat = CreateTable(self.users_table)
self.engine.execute(creat)
self.assertEqual(0, len(tracer.spans))
sqlalchemy_opentracing.set_traced(creat)
try:
self.engine.execute(creat)
except OperationalError:
pass # Do nothing - it's responsibility of OT to finish tracing it.
self.assertEqual(1, len(tracer.spans))
self.assertEqual(tracer.spans[0].is_finished, True)
self.assertEqual(tracer.spans[0].tags, {
'component': 'sqlalchemy',
'db.statement': 'CREATE TABLE users (id INTEGER NOT NULL, name VARCHAR, PRIMARY KEY (id))',
'db.type': 'sql',
'sqlalchemy.dialect': 'sqlite',
'sqlalchemy.exception': 'table users already exists',
'error': 'true',
})
self.assertEqual(False, sqlalchemy_opentracing.get_traced(creat))
评论列表
文章目录