16
16
from arroyo .types import Partition , Topic
17
17
from django .conf import settings
18
18
from django .core .cache import cache
19
+ from django .db .models import F
19
20
from django .utils import timezone
20
21
21
22
from sentry import eventstore , nodestore , tsdb
22
23
from sentry .attachments import CachedAttachment , attachment_cache
23
- from sentry .constants import MAX_VERSION_LENGTH , DataCategory
24
+ from sentry .constants import MAX_VERSION_LENGTH , DataCategory , InsightModules
24
25
from sentry .dynamic_sampling import (
25
26
ExtendedBoostedRelease ,
26
27
Platform ,
59
60
from sentry .models .grouprelease import GroupRelease
60
61
from sentry .models .groupresolution import GroupResolution
61
62
from sentry .models .grouptombstone import GroupTombstone
63
+ from sentry .models .project import Project
62
64
from sentry .models .pullrequest import PullRequest , PullRequestCommit
63
65
from sentry .models .release import Release
64
66
from sentry .models .releasecommit import ReleaseCommit
@@ -1577,15 +1579,19 @@ def test_transaction_sampler_and_receive(self) -> None:
1577
1579
manager .normalize ()
1578
1580
manager .save (self .project .id )
1579
1581
1580
- @patch ("sentry.event_manager.record_event_processed" )
1582
+ @patch ("sentry.event_manager.record_first_transaction" )
1583
+ @patch ("sentry.event_manager.record_first_insight_span" )
1581
1584
@patch ("sentry.event_manager.record_release_received" )
1582
1585
@patch ("sentry.ingest.transaction_clusterer.datasource.redis._record_sample" )
1583
1586
def test_transaction_sampler_and_receive_mock_called (
1584
1587
self ,
1585
1588
mock_record_sample : mock .MagicMock ,
1586
1589
mock_record_release : mock .MagicMock ,
1587
- mock_record_event : mock .MagicMock ,
1590
+ mock_record_insight : mock .MagicMock ,
1591
+ mock_record_transaction : mock .MagicMock ,
1588
1592
) -> None :
1593
+ self .project .update (flags = F ("flags" ).bitand (~ Project .flags .has_transactions ))
1594
+
1589
1595
manager = EventManager (
1590
1596
make_event (
1591
1597
** {
@@ -1606,8 +1612,14 @@ def test_transaction_sampler_and_receive_mock_called(
1606
1612
"start_timestamp" : 0 ,
1607
1613
"timestamp" : 1 ,
1608
1614
"same_process_as_parent" : True ,
1609
- "op" : "default" ,
1610
- "description" : "span a" ,
1615
+ "op" : "db.redis" ,
1616
+ "description" : "EXEC *" ,
1617
+ "sentry_tags" : {
1618
+ "description" : "EXEC *" ,
1619
+ "category" : "db" ,
1620
+ "op" : "db.redis" ,
1621
+ "transaction" : "/app/index" ,
1622
+ },
1611
1623
},
1612
1624
{
1613
1625
"trace_id" : "a0fa8803753e40fd8124b21eeb2986b5" ,
@@ -1633,6 +1645,7 @@ def test_transaction_sampler_and_receive_mock_called(
1633
1645
"timestamp" : "2019-06-14T14:01:40Z" ,
1634
1646
"start_timestamp" : "2019-06-14T14:01:40Z" ,
1635
1647
"type" : "transaction" ,
1648
+
1636
1649
"transaction_info" : {
1637
1650
"source" : "url" ,
1638
1651
},
@@ -1642,8 +1655,9 @@ def test_transaction_sampler_and_receive_mock_called(
1642
1655
manager .normalize ()
1643
1656
event = manager .save (self .project .id )
1644
1657
1645
- mock_record_event .assert_called_once_with (self .project , event )
1646
- mock_record_release .assert_called_once_with (self .project , event )
1658
+ mock_record_release .assert_called_once_with (self .project )
1659
+ mock_record_insight .assert_called_once_with (self .project , InsightModules .DB )
1660
+ mock_record_transaction .assert_called_once_with (self .project , event .datetime )
1647
1661
assert mock_record_sample .mock_calls == [
1648
1662
mock .call (ClustererNamespace .TRANSACTIONS , self .project , "wait" )
1649
1663
]
0 commit comments