mirror of
https://github.com/open-telemetry/opentelemetry-python-contrib.git
synced 2025-08-01 09:13:23 +08:00
53 lines
1.1 KiB
Python
53 lines
1.1 KiB
Python
"""
|
|
tests for parsing specs.
|
|
"""
|
|
|
|
from bson.son import SON
|
|
|
|
from ddtrace.contrib.pymongo.parse import parse_spec
|
|
|
|
|
|
def test_empty():
|
|
cmd = parse_spec(SON([]))
|
|
assert cmd is None
|
|
|
|
|
|
def test_create():
|
|
cmd = parse_spec(SON([('create', 'foo')]))
|
|
assert cmd.name == 'create'
|
|
assert cmd.coll == 'foo'
|
|
assert cmd.tags == {}
|
|
assert cmd.metrics == {}
|
|
|
|
|
|
def test_insert():
|
|
spec = SON([
|
|
('insert', 'bla'),
|
|
('ordered', True),
|
|
('documents', ['a', 'b']),
|
|
])
|
|
cmd = parse_spec(spec)
|
|
assert cmd.name == 'insert'
|
|
assert cmd.coll == 'bla'
|
|
assert cmd.tags == {'mongodb.ordered': True}
|
|
assert cmd.metrics == {'mongodb.documents': 2}
|
|
|
|
|
|
def test_update():
|
|
spec = SON([
|
|
('update', u'songs'),
|
|
('ordered', True),
|
|
('updates', [
|
|
SON([
|
|
('q', {'artist': 'Neil'}),
|
|
('u', {'$set': {'artist': 'Shakey'}}),
|
|
('multi', True),
|
|
('upsert', False)
|
|
])
|
|
])
|
|
])
|
|
cmd = parse_spec(spec)
|
|
assert cmd.name == 'update'
|
|
assert cmd.coll == 'songs'
|
|
assert cmd.query == {'artist': 'Neil'}
|