Add namespaced_name to WaffleSwitch

This commit is contained in:
Christopher Lee
2018-06-18 09:33:41 -04:00
committed by christopher lee
parent da4952eacb
commit 52d2b2de74
3 changed files with 28 additions and 5 deletions

View File

@@ -1542,10 +1542,7 @@ class TestProgramMarketingDataExtender(ModuleStoreTestCase):
self.assertEqual(data['discount_data'], mock_discount_data)
@httpretty.activate
@override_switch("{}.{}".format(
PROGRAMS_WAFFLE_SWITCH_NAMESPACE.name,
ALWAYS_CALCULATE_PROGRAM_PRICE_AS_ANONYMOUS_USER.switch_name
), active=True)
@override_switch(ALWAYS_CALCULATE_PROGRAM_PRICE_AS_ANONYMOUS_USER.namespaced_switch_name, active=True)
def test_fetching_program_price_when_forced_as_anonymous_user(self):
"""
When all users are forced as anonymous, all requests to calculate the program

View File

@@ -200,6 +200,13 @@ class WaffleSwitch(object):
self.waffle_namespace = waffle_namespace
self.switch_name = switch_name
@property
def namespaced_switch_name(self):
"""
Returns the fully namespaced switch name.
"""
return self.waffle_namespace._namespaced_name(self.switch_name) # pylint: disable=protected-access
def is_enabled(self):
return self.waffle_namespace.is_enabled(self.switch_name)

View File

@@ -10,7 +10,7 @@ from opaque_keys.edx.keys import CourseKey
from openedx.core.djangoapps.request_cache.middleware import RequestCache
from waffle.testutils import override_flag
from .. import CourseWaffleFlag, WaffleFlagNamespace
from .. import CourseWaffleFlag, WaffleFlagNamespace, WaffleSwitchNamespace, WaffleSwitch
from ..models import WaffleFlagCourseOverrideModel
@@ -112,3 +112,22 @@ class TestCourseWaffleFlag(TestCase):
flag_undefined_default=data['flag_undefined_default']
)
self.assertEqual(test_course_flag.is_enabled(self.TEST_COURSE_KEY), data['result'])
class TestWaffleSwitch(TestCase):
"""
Tests the WaffleSwitch.
"""
NAMESPACE_NAME = "test_namespace"
WAFFLE_SWITCH_NAME = "test_switch_name"
TEST_NAMESPACE = WaffleSwitchNamespace(NAMESPACE_NAME)
WAFFLE_SWITCH = WaffleSwitch(TEST_NAMESPACE, WAFFLE_SWITCH_NAME)
def test_namespaced_switch_name(self):
"""
Verify namespaced_switch_name returns the correct namespace switch name
"""
expected = self.NAMESPACE_NAME + "." + self.WAFFLE_SWITCH_NAME
actual = self.WAFFLE_SWITCH.namespaced_switch_name
self.assertEqual(actual, expected)