"""Tests for the Subscriptions admin module.""" from importlib import reload from unittest.mock import patch from django.contrib import admin from subscriptions import admin as subscription_admin, models @patch.dict('subscriptions.conf.SETTINGS', {'enable_admin': True}) def test_admin_included_when_true_in_settings(): """Tests that admin views are loaded when enabled in settings.""" # pylint: disable=protected-access reload(subscription_admin) try: admin.site._registry[models.SubscriptionPlan] except KeyError: assert False else: # Remove the registered model to prevent impacting other tests admin.site._registry.pop(models.SubscriptionPlan) assert True try: admin.site._registry[models.UserSubscription] except KeyError: assert False else: # Remove the registered model to prevent impacting other tests admin.site._registry.pop(models.UserSubscription) assert True try: admin.site._registry[models.SubscriptionTransaction] except KeyError: assert False else: # Remove the registered model to prevent impacting other tests admin.site._registry.pop(models.SubscriptionTransaction) assert True @patch.dict('subscriptions.conf.SETTINGS', {'enable_admin': False}) def test_admin_excluded_when_false_in_settings(): """Tests that admin views are not loaded when disabled in settings.""" # pylint: disable=protected-access reload(subscription_admin) try: admin.site._registry[models.SubscriptionPlan] except KeyError: assert True else: assert False try: admin.site._registry[models.UserSubscription] except KeyError: assert True else: assert False try: admin.site._registry[models.SubscriptionTransaction] except KeyError: assert True else: assert False