@@ -742,143 +742,77 @@ def test_datadog_sampler_sample_rules(sampler, sampling_priority, rule, limit, d
742742
743743def test_datadog_sampler_tracer (dummy_tracer ):
744744 rule = SamplingRule (sample_rate = 1.0 , name = "test.span" )
745- rule_spy = mock .Mock (spec = rule , wraps = rule )
746- rule_spy .sample_rate = rule .sample_rate
747-
748- sampler = DatadogSampler (rules = [rule_spy ])
749- limiter_spy = mock .Mock (spec = sampler .limiter , wraps = sampler .limiter )
750- sampler .limiter = limiter_spy
751- sampler_spy = mock .Mock (spec = sampler , wraps = sampler )
752-
753- dummy_tracer .configure (sampler = sampler_spy )
754-
755- assert dummy_tracer .sampler is sampler_spy
745+ sampler = DatadogSampler (rules = [rule ])
746+ dummy_tracer .configure (sampler = sampler )
756747
757- with dummy_tracer .trace ("test.span" ) as span :
758- # Assert all of our expected functions were called
759- sampler_spy .sample .assert_called_once_with (span )
760- rule_spy .matches .assert_called_once_with (span )
761- rule_spy .sample .assert_called_once_with (span )
762- limiter_spy .is_allowed .assert_called_once_with ()
748+ with dummy_tracer .trace ("test.span" ):
749+ pass
763750
764751 spans = dummy_tracer .pop ()
765752 assert len (spans ) == 1 , "Span should have been sampled and written"
766753 assert spans [0 ].get_metric (SAMPLING_PRIORITY_KEY ) is USER_KEEP
767- assert spans [0 ]. get_metric ( SAMPLING_RULE_DECISION ) == 1.0
754+ assert_sampling_decision_tags ( spans [0 ], rule = 1.0 , limit = 1.0 )
768755
769756
770757def test_datadog_sampler_tracer_rate_limited (dummy_tracer ):
771758 rule = SamplingRule (sample_rate = 1.0 , name = "test.span" )
772- rule_spy = mock .Mock (spec = rule , wraps = rule )
773- rule_spy .sample_rate = rule .sample_rate
774-
775- sampler = DatadogSampler (rules = [rule_spy ])
776- limiter_spy = mock .Mock (spec = sampler .limiter , wraps = sampler .limiter )
777- limiter_spy .is_allowed .return_value = False # Have the limiter deny the span
778- sampler .limiter = limiter_spy
779- sampler_spy = mock .Mock (spec = sampler , wraps = sampler )
780-
781- dummy_tracer .configure (sampler = sampler_spy )
782-
783- assert dummy_tracer .sampler is sampler_spy
759+ sampler = DatadogSampler (rules = [rule ], rate_limit = 0 )
760+ dummy_tracer .configure (sampler = sampler )
784761
785- with dummy_tracer .trace ("test.span" ) as span :
786- # Assert all of our expected functions were called
787- sampler_spy .sample .assert_called_once_with (span )
788- rule_spy .matches .assert_called_once_with (span )
789- rule_spy .sample .assert_called_once_with (span )
790- limiter_spy .is_allowed .assert_called_once_with ()
762+ with dummy_tracer .trace ("test.span" ):
763+ pass
791764
792765 spans = dummy_tracer .pop ()
793766 assert len (spans ) == 1 , "Span should have been sampled and written"
794767 assert spans [0 ].get_metric (SAMPLING_PRIORITY_KEY ) is USER_REJECT
795- assert spans [0 ].get_metric (SAMPLING_LIMIT_DECISION ) is None
796- assert spans [0 ].get_metric (SAMPLING_RULE_DECISION ) == 1.0
768+ assert_sampling_decision_tags (spans [0 ], rule = 1.0 , limit = 0.0 )
797769
798770
799771def test_datadog_sampler_tracer_rate_0 (dummy_tracer ):
800- rule = SamplingRule (sample_rate = 0 , name = "test.span" ) # Sample rate of 0 means never sample
801- rule_spy = mock .Mock (spec = rule , wraps = rule )
802- rule_spy .sample_rate = rule .sample_rate
803-
804- sampler = DatadogSampler (rules = [rule_spy ])
805- limiter_spy = mock .Mock (spec = sampler .limiter , wraps = sampler .limiter )
806- sampler .limiter = limiter_spy
807- sampler_spy = mock .Mock (spec = sampler , wraps = sampler )
808-
809- dummy_tracer .configure (sampler = sampler_spy )
810-
811- assert dummy_tracer .sampler is sampler_spy
772+ # Sample rate of 0 means never sample
773+ rule = SamplingRule (sample_rate = 0 , name = "test.span" )
774+ sampler = DatadogSampler (rules = [rule ])
775+ dummy_tracer .configure (sampler = sampler )
812776
813- with dummy_tracer .trace ("test.span" ) as span :
814- # Assert all of our expected functions were called
815- sampler_spy .sample .assert_called_once_with (span )
816- rule_spy .matches .assert_called_once_with (span )
817- rule_spy .sample .assert_called_once_with (span )
818- limiter_spy .is_allowed .assert_not_called ()
777+ with dummy_tracer .trace ("test.span" ):
778+ pass
819779
820780 spans = dummy_tracer .pop ()
821781 assert len (spans ) == 1 , "Span should have been sampled and written"
822782 assert spans [0 ].get_metric (SAMPLING_PRIORITY_KEY ) is USER_REJECT
823- assert spans [0 ]. get_metric ( SAMPLING_RULE_DECISION ) == 0
783+ assert_sampling_decision_tags ( spans [0 ], rule = 0.0 )
824784
825785
826786def test_datadog_sampler_tracer_child (dummy_tracer ):
827- rule = SamplingRule (sample_rate = 1.0 ) # No rules means it gets applied to every span
828- rule_spy = mock .Mock (spec = rule , wraps = rule )
829- rule_spy .sample_rate = rule .sample_rate
830-
831- sampler = DatadogSampler (rules = [rule_spy ])
832- limiter_spy = mock .Mock (spec = sampler .limiter , wraps = sampler .limiter )
833- sampler .limiter = limiter_spy
834- sampler_spy = mock .Mock (spec = sampler , wraps = sampler )
835-
836- dummy_tracer .configure (sampler = sampler_spy )
837-
838- assert dummy_tracer .sampler is sampler_spy
787+ # No rules means it gets applied to every span
788+ rule = SamplingRule (sample_rate = 1.0 )
789+ sampler = DatadogSampler (rules = [rule ])
790+ dummy_tracer .configure (sampler = sampler )
839791
840- with dummy_tracer .trace ("parent.span" ) as parent :
792+ with dummy_tracer .trace ("parent.span" ):
841793 with dummy_tracer .trace ("child.span" ):
842- # Assert all of our expected functions were called
843- # DEV: `assert_called_once_with` ensures we didn't also call with the child span
844- sampler_spy .sample .assert_called_once_with (parent )
845- rule_spy .matches .assert_called_once_with (parent )
846- rule_spy .sample .assert_called_once_with (parent )
847- limiter_spy .is_allowed .assert_called_once_with ()
794+ pass
848795
849796 spans = dummy_tracer .pop ()
850797 assert len (spans ) == 2 , "Trace should have been sampled and written"
851798 assert spans [0 ].get_metric (SAMPLING_PRIORITY_KEY ) is USER_KEEP
852- assert spans [0 ].get_metric (SAMPLING_RULE_DECISION ) == 1.0
799+ assert_sampling_decision_tags (spans [0 ], rule = 1.0 , limit = 1.0 )
800+ assert_sampling_decision_tags (spans [1 ], agent = None , rule = None , limit = None )
853801
854802
855803def test_datadog_sampler_tracer_start_span (dummy_tracer ):
856- rule = SamplingRule (sample_rate = 1.0 ) # No rules means it gets applied to every span
857- rule_spy = mock .Mock (spec = rule , wraps = rule )
858- rule_spy .sample_rate = rule .sample_rate
859-
860- sampler = DatadogSampler (rules = [rule_spy ])
861- limiter_spy = mock .Mock (spec = sampler .limiter , wraps = sampler .limiter )
862- sampler .limiter = limiter_spy
863- sampler_spy = mock .Mock (spec = sampler , wraps = sampler )
864-
865- dummy_tracer .configure (sampler = sampler_spy )
866-
867- assert dummy_tracer .sampler is sampler_spy
804+ # No rules means it gets applied to every span
805+ rule = SamplingRule (sample_rate = 1.0 )
806+ sampler = DatadogSampler (rules = [rule ])
807+ dummy_tracer .configure (sampler = sampler )
868808
869809 span = dummy_tracer .start_span ("test.span" )
870810 span .finish ()
871811
872- # Assert all of our expected functions were called
873- sampler_spy .sample .assert_called_once_with (span )
874- rule_spy .matches .assert_called_once_with (span )
875- rule_spy .sample .assert_called_once_with (span )
876- limiter_spy .is_allowed .assert_called_once_with ()
877-
878812 spans = dummy_tracer .pop ()
879813 assert len (spans ) == 1 , "Span should have been sampled and written"
880814 assert spans [0 ].get_metric (SAMPLING_PRIORITY_KEY ) is USER_KEEP
881- assert spans [0 ]. get_metric ( SAMPLING_RULE_DECISION ) == 1.0
815+ assert_sampling_decision_tags ( spans [0 ], rule = 1.0 , limit = 1.0 )
882816
883817
884818def test_datadog_sampler_update_rate_by_service_sample_rates (dummy_tracer ):
0 commit comments