""" Unit tests for the announcements feature. """ import json import unittest from unittest.mock import patch from django.conf import settings from django.test import TestCase from django.test.client import Client from django.urls import reverse from common.djangoapps.student.tests.factories import AdminFactory from openedx.features.announcements.models import Announcement TEST_ANNOUNCEMENTS = [ ("Active Announcement", True), ("Inactive Announcement", False), ("Another Test Announcement", True), ("Formatted Announcement", True), ("Other Formatted Announcement", True), ] @unittest.skipUnless(settings.ROOT_URLCONF == 'lms.urls', 'Test only valid in lms') class TestGlobalAnnouncements(TestCase): """ Test Announcements in LMS """ @classmethod def setUpTestData(cls): super().setUpTestData() Announcement.objects.bulk_create([ Announcement(content=content, active=active) for content, active in TEST_ANNOUNCEMENTS ]) def setUp(self): super().setUp() self.client = Client() self.admin = AdminFactory.create( email='staff@edx.org', username='admin', password='pass' ) self.client.login(username=self.admin.username, password='pass') @patch.dict(settings.FEATURES, {'ENABLE_ANNOUNCEMENTS': False}) def test_feature_flag_disabled(self): """Ensures that the default settings effectively disables the feature""" response = self.client.get('/dashboard') self.assertNotContains(response, 'AnnouncementsView') self.assertNotContains(response, '
Formatted Announcement")