Update cached schedule users to consider deleted users (#4246)

Fixes https://github.com/grafana/oncall-private/issues/2529
This commit is contained in:
Matias Bordese 2024-04-23 08:40:02 -03:00 committed by GitHub
parent 90fb90ad07
commit 9977179651
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 15 additions and 1 deletions

View file

@ -490,7 +490,12 @@ def get_cached_oncall_users_for_multiple_schedules(schedules: typing.List["OnCal
for cache_key, oncall_users in cached_results.items():
schedule_public_primary_key = _get_schedule_public_primary_key_from_schedule_oncall_users_cache_key(cache_key)
schedule = schedules[schedule_public_primary_key]
oncall_users = [users[user_public_primary_key] for user_public_primary_key in oncall_users]
oncall_users = [
users[user_public_primary_key]
for user_public_primary_key in oncall_users
# filter out any users that we couldn't find in the database (e.g. deleted)
if user_public_primary_key in users
]
results[schedule] = oncall_users

View file

@ -671,3 +671,12 @@ def test_get_cached_oncall_users_for_multiple_schedules(
_generate_cache_key(schedule2): [users[2].public_primary_key, users[3].public_primary_key],
_generate_cache_key(schedule3): [users[4].public_primary_key, users[5].public_primary_key],
}
# scenario: user is deleted but still in cache (all schedules are still in cache)
users[0].delete()
results = get_cached_oncall_users_for_multiple_schedules(schedules)
assert results == {
schedule1: [users[1]],
schedule2: [users[2], users[3]],
schedule3: [users[4], users[5]],
}