journal: do not crash on None references (#76782)
gitea/authentic/pipeline/head This commit looks good Details

This commit is contained in:
Benjamin Dauvergne 2023-04-19 13:00:06 +02:00
parent 4ea4a63098
commit 520f9ce50d
2 changed files with 11 additions and 1 deletions

View File

@ -488,7 +488,8 @@ def prefetch_events_references(events, prefetcher=None):
# group reference ids
for event in events:
for content_type_id, instance_pk in event.get_reference_ids():
grouped_references[content_type_id].add(instance_pk)
if content_type_id and instance_pk:
grouped_references[content_type_id].add(instance_pk)
# make batched queries for each CT
for content_type_id, instance_pks in grouped_references.items():

View File

@ -129,6 +129,15 @@ def test_models(db, django_assert_num_queries):
assert list(Event.objects.all())
def test_null_references(db):
event_type = EventType.objects.get_for_name('user.login')
event = Event.objects.create(type=event_type, references=[None])
assert list(event.get_typed_references(Service)) == [None]
events = list(Event.objects.all())
prefetch_events_references(events)
def test_references(db):
user = User.objects.create(username='user')
service = Service.objects.create(name='service', slug='service')