1
1
from __future__ import absolute_import
2
2
3
- import six
4
-
5
- from datetime import datetime , timedelta
3
+ from datetime import timedelta
6
4
7
5
import pytest
8
6
from django .db .models import ProtectedError
16
14
17
15
18
16
class GroupTest (TestCase ):
17
+ def setUp (self ):
18
+ super (GroupTest , self ).setUp ()
19
+ self .min_ago = (timezone .now () - timedelta (minutes = 1 )).isoformat ()[:19 ]
20
+ self .two_min_ago = (timezone .now () - timedelta (minutes = 2 )).isoformat ()[:19 ]
21
+ self .sec_ago = (timezone .now () - timedelta (seconds = 1 )).isoformat ()[:19 ]
22
+ self .two_sec_ago = (timezone .now () - timedelta (seconds = 1 )).isoformat ()[:19 ]
23
+
19
24
def test_is_resolved (self ):
20
25
group = self .create_group (status = GroupStatus .RESOLVED )
21
26
assert group .is_resolved ()
@@ -36,56 +41,68 @@ def test_is_resolved(self):
36
41
37
42
assert group .is_resolved ()
38
43
39
- def test_get_oldest_latest_event_no_events (self ):
40
- group = self .create_group ()
44
+ def test_get_latest_event_no_events (self ):
45
+ project = self .create_project ()
46
+ group = self .create_group (project = project )
41
47
assert group .get_latest_event () is None
42
- assert group .get_oldest_event () is None
43
48
44
- def test_get_oldest_latest_events (self ):
45
- group = self .create_group ()
46
- for i in range (0 , 3 ):
47
- self .create_event (
48
- event_id = six .text_type (i ),
49
- group = group ,
50
- datetime = datetime (2013 , 8 , 13 , 3 , 8 , i ),
51
- )
52
-
53
- assert group .get_latest_event ().event_id == '2'
54
- assert group .get_oldest_event ().event_id == '0'
49
+ def test_get_latest_event (self ):
50
+ self .store_event (
51
+ data = {
52
+ 'event_id' : 'a' * 32 ,
53
+ 'fingerprint' : ['group-1' ],
54
+ 'timestamp' : self .two_min_ago ,
55
+ },
56
+ project_id = self .project .id ,
57
+ )
58
+ self .store_event (
59
+ data = {
60
+ 'event_id' : 'b' * 32 ,
61
+ 'fingerprint' : ['group-1' ],
62
+ 'timestamp' : self .min_ago ,
63
+ },
64
+ project_id = self .project .id ,
65
+ )
55
66
56
- def test_get_oldest_latest_identical_timestamps (self ):
57
- group = self .create_group ()
58
- for i in range (0 , 3 ):
59
- self .create_event (
60
- event_id = six .text_type (i ),
61
- group = group ,
62
- datetime = datetime (2013 , 8 , 13 , 3 , 8 , 50 ),
63
- )
67
+ group = Group .objects .first ()
64
68
65
- assert group .get_latest_event ().event_id == '2'
66
- assert group .get_oldest_event ().event_id == '0'
69
+ assert group .get_latest_event ().event_id == 'b' * 32
67
70
68
- def test_get_oldest_latest_almost_identical_timestamps (self ):
69
- group = self .create_group ()
70
- self .create_event (
71
- event_id = '0' ,
72
- group = group ,
73
- datetime = datetime (2013 , 8 , 13 , 3 , 8 , 0 ), # earliest
74
- )
75
- for i in range (1 , 3 ):
76
- self .create_event (
77
- event_id = six .text_type (i ),
78
- group = group ,
79
- datetime = datetime (2013 , 8 , 13 , 3 , 8 , 30 ), # all in the middle
71
+ def test_get_latest_identical_timestamps (self ):
72
+ events = []
73
+ for i in 'abc' :
74
+ event = self .store_event (
75
+ data = {
76
+ 'event_id' : i * 32 ,
77
+ 'fingerprint' : ['group-1' ],
78
+ 'timestamp' : self .min_ago ,
79
+ },
80
+ project_id = self .project .id ,
80
81
)
81
- self .create_event (
82
- event_id = '3' ,
83
- group = group ,
84
- datetime = datetime (2013 , 8 , 13 , 3 , 8 , 59 ), # latest
82
+ events .append (event )
83
+
84
+ assert events [0 ].group .get_latest_event ().event_id == 'c' * 32
85
+
86
+ def test_get_latest_almost_identical_timestamps (self ):
87
+ self .store_event (
88
+ data = {
89
+ 'event_id' : 'a' * 32 ,
90
+ 'fingerprint' : ['group-1' ],
91
+ 'timestamp' : self .two_sec_ago ,
92
+ },
93
+ project_id = self .project .id ,
94
+ )
95
+ self .store_event (
96
+ data = {
97
+ 'event_id' : 'b' * 32 ,
98
+ 'fingerprint' : ['group-1' ],
99
+ 'timestamp' : self .sec_ago ,
100
+ },
101
+ project_id = self .project .id ,
85
102
)
103
+ group = Group .objects .first ()
86
104
87
- assert group .get_latest_event ().event_id == '3'
88
- assert group .get_oldest_event ().event_id == '0'
105
+ assert group .get_latest_event ().event_id == 'b' * 32
89
106
90
107
def test_is_ignored_with_expired_snooze (self ):
91
108
group = self .create_group (
0 commit comments