Skip to content

Commit abccb76

Browse files
committed
Correct handling of legacy attributes (fixes getsentryGH-1367)
1 parent 8dce0ab commit abccb76

File tree

2 files changed

+30
-5
lines changed

2 files changed

+30
-5
lines changed

src/sentry/models/event.py

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,12 @@ def get_tags(self, with_internal=True):
164164

165165
tags = property(get_tags)
166166

167+
def get_tag(self, key):
168+
for t, v in (self.data.get('tags') or ()):
169+
if t == key:
170+
return v
171+
return None
172+
167173
def as_dict(self):
168174
# We use a SortedDict to keep elements ordered for a potential JSON serializer
169175
data = SortedDict()
@@ -201,20 +207,20 @@ def level(self):
201207
def logger(self):
202208
warnings.warn('Event.logger is deprecated. Use Event.tags instead.',
203209
DeprecationWarning)
204-
return self.tags.get('logger')
210+
return self.get_tag('logger')
205211

206212
@property
207213
def site(self):
208214
warnings.warn('Event.site is deprecated. Use Event.tags instead.',
209215
DeprecationWarning)
210-
return self.tags.get('site')
216+
return self.get_tag('site')
211217

212218
@property
213219
def server_name(self):
214220
warnings.warn('Event.server_name is deprecated. Use Event.tags instead.')
215-
return self.tags.get('server_name')
221+
return self.get_tag('server_name')
216222

217223
@property
218224
def culprit(self):
219-
warnings.warn('Event.culprit is deprecated. Use Event.tags instead.')
220-
return self.tags.get('culprit')
225+
warnings.warn('Event.culprit is deprecated. Use Group.culprit instead.')
226+
return self.group.culprit

tests/sentry/models/test_event.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
from __future__ import absolute_import
2+
3+
from sentry.testutils import TestCase
4+
5+
6+
class EventTest(TestCase):
7+
def test_legacy_tags(self):
8+
event = self.create_event(data={
9+
'tags': [
10+
('logger', 'foobar'),
11+
('site', 'foo'),
12+
('server_name', 'bar'),
13+
]
14+
})
15+
assert event.logger == 'foobar'
16+
assert event.level == event.group.level
17+
assert event.site == 'foo'
18+
assert event.server_name == 'bar'
19+
assert event.culprit == event.group.culprit

0 commit comments

Comments
 (0)