from aws_xray_sdk.core.models.dummy_entities import DummySegment, DummySubsegment from aws_xray_sdk.core.models import http def test_not_sampled(): segment = DummySegment() subsegment = DummySubsegment(segment) assert not segment.sampled assert not subsegment.sampled def test_no_ops(): segment = DummySegment() segment.put_metadata('key', 'value') segment.put_annotation('key', 'value') segment.put_http_meta(http.URL, 'url') segment.set_user('user') assert not segment.metadata assert not segment.annotations assert not segment.http assert not segment.user subsegment = DummySubsegment(segment) subsegment.put_metadata('key', 'value') subsegment.put_annotation('key', 'value') subsegment.put_http_meta(http.URL, 'url') subsegment.set_aws({'key': 'value'}) subsegment.set_sql({'key': 'value'}) assert not subsegment.metadata assert not subsegment.annotations assert not subsegment.http assert not subsegment.aws assert not subsegment.sql assert not segment.serialize() assert not subsegment.serialize() def test_structure_intact(): segment = DummySegment() subsegment = DummySubsegment(segment) subsegment2 = DummySubsegment(segment) subsegment.add_subsegment(subsegment2) segment.add_subsegment(subsegment) assert segment.subsegments[0] is subsegment assert subsegment.subsegments[0] is subsegment2 subsegment2.close() subsegment.close() segment.close() assert segment.ready_to_send() def test_invalid_entity_name(): segment = DummySegment('DummySegment() Test?') subsegment = DummySubsegment(segment, 'Dummy*Sub!segment$') assert segment.name == 'DummySegment Test' assert subsegment.name == 'DummySubsegment' def test_dummy_segment_trace_id(): segment = DummySegment() assert segment.trace_id != 'dummy' assert '-' in segment.trace_id # checking version of trace id assert segment.trace_id[:1] == '1'