From 3e121893354a8bef87b4f9e096e9a60c191b8eef Mon Sep 17 00:00:00 2001 From: Mandel Olaiya Date: Fri, 10 Apr 2026 17:38:23 +0200 Subject: [PATCH] Respect disabled payments in launch validation --- mandelstudio/launch_validation.py | 11 +++++++++++ .../commands/validate_idea_marketplace_launch.py | 4 +++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/mandelstudio/launch_validation.py b/mandelstudio/launch_validation.py index 9d1da20..94b7f22 100644 --- a/mandelstudio/launch_validation.py +++ b/mandelstudio/launch_validation.py @@ -44,12 +44,23 @@ def get_checkout_apps() -> list[str]: return [app for app in settings.INSTALLED_APPS if "checkout" in app.lower()] +def idea_marketplace_payments_enabled() -> bool: + return bool(getattr(settings, "IDEA_MARKETPLACE_PAYMENTS_ENABLED", False)) + + def validate_payment_provider_config() -> None: installed_apps = list(settings.INSTALLED_APPS) payment_apps = get_declared_payment_apps(installed_apps) checkout_apps = get_checkout_apps() config_plugins = get_declared_plugins() + if not idea_marketplace_payments_enabled(): + if any(_is_dummy_payment_app(app) for app in config_plugins): + raise CommandError( + "Dummy payment app is declared in ocyan.json. Remove it even when payments are disabled." + ) + return + if not payment_apps: raise CommandError("No payment app declared for this project.") if not checkout_apps: diff --git a/mandelstudio/management/commands/validate_idea_marketplace_launch.py b/mandelstudio/management/commands/validate_idea_marketplace_launch.py index 9cacd8f..b9da699 100644 --- a/mandelstudio/management/commands/validate_idea_marketplace_launch.py +++ b/mandelstudio/management/commands/validate_idea_marketplace_launch.py @@ -19,6 +19,7 @@ from mandelstudio.idea_marketplace import ( from mandelstudio.launch_validation import ( get_checkout_apps, get_declared_payment_apps, + idea_marketplace_payments_enabled, validate_payment_provider_config, ) @@ -39,6 +40,7 @@ class Command(BaseCommand): validate_payment_provider_config() installed_apps = list(settings.INSTALLED_APPS) + payments_enabled = idea_marketplace_payments_enabled() payment_apps = get_declared_payment_apps(installed_apps) checkout_apps = get_checkout_apps() config_path = Path(__file__).resolve().parents[2] / "ocyan.json" @@ -195,6 +197,6 @@ class Command(BaseCommand): self.style.SUCCESS( "Idea marketplace launch validation passed: " f"{len(found_titles)} products, EUR currency, checkout apps={checkout_apps}, " - f"payment apps={payment_apps}." + f"payment apps={payment_apps}, payments_enabled={payments_enabled}." ) )