From 645b5b40b420567934edb4d28146012afc30a218 Mon Sep 17 00:00:00 2001 From: Arslan Ashraf <34372316+arslanashraf7@users.noreply.github.com> Date: Tue, 28 Jan 2025 13:18:29 +0500 Subject: [PATCH] fix: external sync when there is no platform with passed name (#3385) --- .../commands/sync_external_course_runs.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/courses/management/commands/sync_external_course_runs.py b/courses/management/commands/sync_external_course_runs.py index a549bb8a9..507f1cca4 100644 --- a/courses/management/commands/sync_external_course_runs.py +++ b/courses/management/commands/sync_external_course_runs.py @@ -35,12 +35,19 @@ def handle(self, *args, **options): # noqa: ARG002 """Handle command execution""" vendor_name = options["vendor_name"] keymap = EXTERNAL_COURSE_VENDOR_KEYMAPS.get(vendor_name.lower()) - if not keymap: + platform = Platform.objects.filter(name__iexact=vendor_name).first() + + if not platform: self.stdout.write(self.style.ERROR(f"Unknown vendor name {vendor_name}.")) return - platform = Platform.objects.filter(name__iexact=vendor_name).first() - if platform and not platform.enable_sync and not options.get("force"): + if not keymap: + self.stdout.write( + self.style.ERROR(f"Mapping does not exist for {vendor_name}.") + ) + return + + if not platform.enable_sync and not options.get("force"): self.stdout.write( self.style.ERROR( f"Course sync is off for {vendor_name}. Please enable it before syncing."