chore: add pagerduty migrator test + fix linting (#5378)

This commit is contained in:
Joey Orlando 2024-12-19 06:03:54 -05:00 committed by GitHub
parent 54ff63a25d
commit 2503eafdc6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 30 additions and 1 deletions

View file

@ -151,7 +151,9 @@ def migrate() -> None:
migrate_notification_rules(user)
print(TAB + format_user(user))
else:
print("▶ Skipping migrating user notification rules as MIGRATE_USERS is false...")
print(
"▶ Skipping migrating user notification rules as MIGRATE_USERS is false..."
)
print("▶ Migrating schedules...")
for schedule in schedules:

View file

@ -0,0 +1,27 @@
from unittest.mock import call, patch
from lib.pagerduty.migrate import migrate
@patch("lib.pagerduty.migrate.MIGRATE_USERS", False)
@patch("lib.pagerduty.migrate.APISession")
@patch("lib.pagerduty.migrate.OnCallAPIClient")
def test_users_are_skipped_when_migrate_users_is_false(
MockOnCallAPIClient, MockAPISession
):
mock_session = MockAPISession.return_value
mock_session.list_all.return_value = []
mock_oncall_client = MockOnCallAPIClient.return_value
migrate()
# Assert no user-related fetching or migration occurs
assert mock_session.list_all.call_args_list == [
call("schedules", params={"include[]": "schedule_layers", "time_zone": "UTC"}),
call("escalation_policies"),
call("services", params={"include[]": "integrations"}),
call("vendors"),
# no user notification rules fetching
]
mock_oncall_client.list_users_with_notification_rules.assert_not_called()