From 2fd1f7bd902de1801f6e47801892d37e11a52a71 Mon Sep 17 00:00:00 2001 From: ayesha waris <73840786+ayesha-waris@users.noreply.github.com> Date: Fri, 12 Jan 2024 15:24:46 +0500 Subject: [PATCH] chore: removed enable_course_live and enable_big_blue_button flag flags (#33998) * chore: removed enable_course_live flag * chore: removed enable_big_blue_button flag * fix: fixing failed test cases --- .../tests/test_field_override_performance.py | 2 +- lms/djangoapps/courseware/tests/test_views.py | 10 +++--- .../djangoapps/course_live/config/waffle.py | 31 ------------------- .../core/djangoapps/course_live/plugins.py | 5 ++- .../core/djangoapps/course_live/providers.py | 4 +-- openedx/core/djangoapps/course_live/tab.py | 2 -- .../djangoapps/course_live/tests/test_tab.py | 15 ++++----- .../course_live/tests/test_views.py | 22 +++++-------- .../tests/views/test_course_updates.py | 2 +- 9 files changed, 24 insertions(+), 69 deletions(-) delete mode 100644 openedx/core/djangoapps/course_live/config/waffle.py diff --git a/lms/djangoapps/ccx/tests/test_field_override_performance.py b/lms/djangoapps/ccx/tests/test_field_override_performance.py index 5652d51e5c..68926a24f2 100644 --- a/lms/djangoapps/ccx/tests/test_field_override_performance.py +++ b/lms/djangoapps/ccx/tests/test_field_override_performance.py @@ -234,7 +234,7 @@ class TestFieldOverrideSplitPerformance(FieldOverridePerformanceTestCase): __test__ = True # TODO: decrease query count as part of REVO-28 - QUERY_COUNT = 32 + QUERY_COUNT = 33 TEST_DATA = { ('no_overrides', 1, True, False): (QUERY_COUNT, 2), diff --git a/lms/djangoapps/courseware/tests/test_views.py b/lms/djangoapps/courseware/tests/test_views.py index 8b7667ec27..19d6965e75 100644 --- a/lms/djangoapps/courseware/tests/test_views.py +++ b/lms/djangoapps/courseware/tests/test_views.py @@ -365,7 +365,7 @@ class IndexQueryTestCase(ModuleStoreTestCase): self.client.login(username=self.user.username, password=self.user_password) CourseEnrollment.enroll(self.user, course.id) - with self.assertNumQueries(177, table_ignorelist=QUERY_COUNT_TABLE_IGNORELIST): + with self.assertNumQueries(178, table_ignorelist=QUERY_COUNT_TABLE_IGNORELIST): with check_mongo_calls(3): url = reverse( 'courseware_section', @@ -1491,8 +1491,8 @@ class ProgressPageTests(ProgressPageBaseTests): self.assertContains(resp, "earned a certificate for this course.") @ddt.data( - (True, 53), - (False, 53), + (True, 54), + (False, 54), ) @ddt.unpack def test_progress_queries_paced_courses(self, self_paced, query_count): @@ -1507,13 +1507,13 @@ class ProgressPageTests(ProgressPageBaseTests): ContentTypeGatingConfig.objects.create(enabled=True, enabled_as_of=datetime(2018, 1, 1)) self.setup_course() with self.assertNumQueries( - 53, table_ignorelist=QUERY_COUNT_TABLE_IGNORELIST + 54, table_ignorelist=QUERY_COUNT_TABLE_IGNORELIST ), check_mongo_calls(2): self._get_progress_page() for _ in range(2): with self.assertNumQueries( - 37, table_ignorelist=QUERY_COUNT_TABLE_IGNORELIST + 38, table_ignorelist=QUERY_COUNT_TABLE_IGNORELIST ), check_mongo_calls(2): self._get_progress_page() diff --git a/openedx/core/djangoapps/course_live/config/waffle.py b/openedx/core/djangoapps/course_live/config/waffle.py deleted file mode 100644 index 9d4d7c5eda..0000000000 --- a/openedx/core/djangoapps/course_live/config/waffle.py +++ /dev/null @@ -1,31 +0,0 @@ -""" -This module contains various configuration settings via -waffle switches for the live app. -""" - -from openedx.core.djangoapps.waffle_utils import CourseWaffleFlag - -WAFFLE_NAMESPACE = 'course_live' - -# .. toggle_name: course_live.enable_course_live -# .. toggle_implementation: CourseWaffleFlag -# .. toggle_default: False -# .. toggle_description: Waffle flag to enable the course live app plugin -# .. toggle_use_cases: temporary, open_edx -# .. toggle_creation_date: 2022-03-02 -# .. toggle_target_removal_date: 2022-06-02 -# .. toggle_warning: When the flag is ON, the course live app will be visible in the course authoring mfe -# .. toggle_tickets: TNL-9603 -ENABLE_COURSE_LIVE = CourseWaffleFlag(f'{WAFFLE_NAMESPACE}.enable_course_live', __name__) - - -# .. toggle_name: course_live.enable_big_blue_button -# .. toggle_implementation: CourseWaffleFlag -# .. toggle_default: False -# .. toggle_description: Waffle flag to enable big blue button provider -# .. toggle_use_cases: temporary, open_edx -# .. toggle_creation_date: 2022-06-23 -# .. toggle_target_removal_date: 2022-09-23 -# .. toggle_warning: When the flag is ON, the big blue button provider will be available in course live -# .. toggle_tickets: INF-308 -ENABLE_BIG_BLUE_BUTTON = CourseWaffleFlag(f'{WAFFLE_NAMESPACE}.enable_big_blue_button', __name__) diff --git a/openedx/core/djangoapps/course_live/plugins.py b/openedx/core/djangoapps/course_live/plugins.py index fbb85a1d1b..c211e27a61 100644 --- a/openedx/core/djangoapps/course_live/plugins.py +++ b/openedx/core/djangoapps/course_live/plugins.py @@ -10,7 +10,6 @@ from lti_consumer.models import LtiConfiguration from opaque_keys.edx.keys import CourseKey from openedx.core.djangoapps.course_apps.plugins import CourseApp -from openedx.core.djangoapps.course_live.config.waffle import ENABLE_COURSE_LIVE from .models import CourseLiveConfiguration @@ -32,9 +31,9 @@ class LiveCourseApp(CourseApp): @classmethod def is_available(cls, course_key: CourseKey) -> bool: """ - Live is available based on ENABLE_COURSE_LIVE flag + Live is available """ - return ENABLE_COURSE_LIVE.is_enabled(course_key) + return True @classmethod def is_enabled(cls, course_key: CourseKey) -> bool: diff --git a/openedx/core/djangoapps/course_live/providers.py b/openedx/core/djangoapps/course_live/providers.py index 1d6b1e808e..5379ae260b 100644 --- a/openedx/core/djangoapps/course_live/providers.py +++ b/openedx/core/djangoapps/course_live/providers.py @@ -5,8 +5,6 @@ from abc import ABC from typing import List, Dict from django.conf import settings -from openedx.core.djangoapps.course_live.config.waffle import ENABLE_BIG_BLUE_BUTTON - class LiveProvider(ABC): """ @@ -120,7 +118,7 @@ class BigBlueButton(LiveProvider, HasGlobalCredentials): @property def is_enabled(self) -> bool: - return ENABLE_BIG_BLUE_BUTTON.is_enabled() + return True @staticmethod def get_global_keys() -> Dict: diff --git a/openedx/core/djangoapps/course_live/tab.py b/openedx/core/djangoapps/course_live/tab.py index 3fe7a64587..922900efdd 100644 --- a/openedx/core/djangoapps/course_live/tab.py +++ b/openedx/core/djangoapps/course_live/tab.py @@ -8,7 +8,6 @@ from opaque_keys.edx.keys import CourseKey from common.djangoapps.student.roles import CourseInstructorRole, CourseStaffRole, GlobalStaff from lms.djangoapps.courseware.tabs import EnrolledTab -from openedx.core.djangoapps.course_live.config.waffle import ENABLE_COURSE_LIVE from openedx.core.djangoapps.course_live.models import CourseLiveConfiguration from openedx.core.djangoapps.course_live.providers import HasGlobalCredentials, ProviderManager from openedx.core.lib.cache_utils import request_cached @@ -87,7 +86,6 @@ class CourseLiveTab(LtiCourseLaunchMixin, TabFragmentViewMixin, EnrolledTab): Check if the tab is enabled. """ return ( - ENABLE_COURSE_LIVE.is_enabled(course.id) and super().is_enabled(course, user) and CourseLiveConfiguration.is_enabled(course.id) ) diff --git a/openedx/core/djangoapps/course_live/tests/test_tab.py b/openedx/core/djangoapps/course_live/tests/test_tab.py index 0ab2bdfeae..1a69434b79 100644 --- a/openedx/core/djangoapps/course_live/tests/test_tab.py +++ b/openedx/core/djangoapps/course_live/tests/test_tab.py @@ -6,11 +6,9 @@ from unittest.mock import Mock, patch import ddt from django.test import RequestFactory -from edx_toggles.toggles.testutils import override_waffle_flag from lti_consumer.models import CourseAllowPIISharingInLTIFlag, LtiConfiguration from lms.djangoapps.courseware.tests.test_tabs import TabTestCase -from openedx.core.djangoapps.course_live.config.waffle import ENABLE_COURSE_LIVE from openedx.core.djangoapps.course_live.models import CourseLiveConfiguration from openedx.core.djangoapps.course_live.tab import CourseLiveTab @@ -56,13 +54,12 @@ class CourseLiveTabTestCase(TabTestCase): self.course_live_config.enabled = course_live_config_enabled self.course_live_config.save() tab = self.check_course_live_tab() - with override_waffle_flag(ENABLE_COURSE_LIVE, True): - self.check_can_display_results( - tab, - for_staff_only=True, - for_enrolled_users_only=True, - expected_value=course_live_config_enabled, - ) + self.check_can_display_results( + tab, + for_staff_only=True, + for_enrolled_users_only=True, + expected_value=course_live_config_enabled, + ) @ddt.data(*itertools.product((True, False), repeat=3)) @ddt.unpack diff --git a/openedx/core/djangoapps/course_live/tests/test_views.py b/openedx/core/djangoapps/course_live/tests/test_views.py index 633ecc3f53..97ed4c9ce1 100644 --- a/openedx/core/djangoapps/course_live/tests/test_views.py +++ b/openedx/core/djangoapps/course_live/tests/test_views.py @@ -5,7 +5,6 @@ import json import ddt from django.test import RequestFactory from django.urls import reverse -from edx_toggles.toggles.testutils import override_waffle_flag from lti_consumer.models import CourseAllowPIISharingInLTIFlag, LtiConfiguration from markupsafe import Markup from rest_framework.test import APITestCase @@ -13,13 +12,11 @@ from xmodule.modulestore import ModuleStoreEnum from xmodule.modulestore.tests.django_utils import CourseUserType, ModuleStoreTestCase from xmodule.modulestore.tests.factories import CourseFactory -from ..config.waffle import ENABLE_COURSE_LIVE, ENABLE_BIG_BLUE_BUTTON from ..models import CourseLiveConfiguration from ..providers import ProviderManager @ddt.ddt -@override_waffle_flag(ENABLE_BIG_BLUE_BUTTON, True) class TestCourseLiveConfigurationView(ModuleStoreTestCase, APITestCase): """ Unit tests for the CourseLiveConfigurationView. @@ -310,13 +307,12 @@ class TestCourseLiveConfigurationView(ModuleStoreTestCase, APITestCase): def test_courseware_api_has_live_tab(self): """ - Test if courseware api has live-tab after ENABLE_COURSE_LIVE flag is enabled + Test if courseware api has live-tab """ self.create_course_live_config() - with override_waffle_flag(ENABLE_COURSE_LIVE, True): - url = reverse('course-home:course-metadata', args=[self.course.id]) - response = self.client.get(url) - content = json.loads(response.content.decode('utf-8')) + url = reverse('course-home:course-metadata', args=[self.course.id]) + response = self.client.get(url) + content = json.loads(response.content.decode('utf-8')) data = next((tab for tab in content['tabs'] if tab['tab_id'] == 'lti_live'), None) self.assertEqual(data, { 'tab_id': 'lti_live', @@ -356,7 +352,6 @@ class TestCourseLiveConfigurationView(ModuleStoreTestCase, APITestCase): self.assertEqual(content, expected_data) -@override_waffle_flag(ENABLE_BIG_BLUE_BUTTON, True) class TestCourseLiveProvidersView(ModuleStoreTestCase, APITestCase): """ Tests for course live provider view @@ -432,11 +427,10 @@ class TestCourseLiveIFrameView(ModuleStoreTestCase, APITestCase): lti_1p1_client_secret='test_client_secret', ) live_config.save() - with override_waffle_flag(ENABLE_COURSE_LIVE, True): - response = self.client.get(self.url) - self.assertEqual(response.status_code, 200) - self.assertIsInstance(response.data['iframe'], Markup) - self.assertIn('iframe', str(response.data['iframe'])) + response = self.client.get(self.url) + self.assertEqual(response.status_code, 200) + self.assertIsInstance(response.data['iframe'], Markup) + self.assertIn('iframe', str(response.data['iframe'])) def test_non_authenticated_user(self): """ diff --git a/openedx/features/course_experience/tests/views/test_course_updates.py b/openedx/features/course_experience/tests/views/test_course_updates.py index 379be52ed4..f26e1cd35b 100644 --- a/openedx/features/course_experience/tests/views/test_course_updates.py +++ b/openedx/features/course_experience/tests/views/test_course_updates.py @@ -49,7 +49,7 @@ class TestCourseUpdatesPage(BaseCourseUpdatesTestCase): # Fetch the view and verify that the query counts haven't changed # TODO: decrease query count as part of REVO-28 - with self.assertNumQueries(52, table_ignorelist=QUERY_COUNT_TABLE_IGNORELIST): + with self.assertNumQueries(53, table_ignorelist=QUERY_COUNT_TABLE_IGNORELIST): with check_mongo_calls(3): url = course_updates_url(self.course) self.client.get(url)