def test_xmlrpc_interface_set(self): sp = xmlrpclib.ServerProxy( config.launchpad.feature_flags_endpoint, transport=XMLRPCTestTransport(), allow_none=True) flag_name = u'flag' with feature_flags(): set_feature_flag(flag_name, u'1') self.assertEqual(u'1', sp.getFeatureFlag(flag_name))
def test_getFeatureFlag_considers_supplied_scope(self): flag_name = u'flag' scope_name = u'scope' with feature_flags(): set_feature_flag(flag_name, u'value', scope_name) self.assertEqual( u'value', self.endpoint.getFeatureFlag(flag_name, [scope_name]))
def test_xmlrpc_interface_set(self): sp = xmlrpclib.ServerProxy(config.launchpad.feature_flags_endpoint, transport=XMLRPCTestTransport(), allow_none=True) flag_name = u'flag' with feature_flags(): set_feature_flag(flag_name, u'1') self.assertEqual(u'1', sp.getFeatureFlag(flag_name))
def test_getFeatureFlag_considers_supplied_scope(self): flag_name = u'flag' scope_name = u'scope' with feature_flags(): set_feature_flag(flag_name, u'value', scope_name) self.assertEqual( u'value', self.endpoint.getFeatureFlag(flag_name, [scope_name]))
def test_getFeatureFlag_turns_user_into_team_scope(self): flag_name = u'flag' person = self.factory.makePerson() team = self.factory.makeTeam(members=[person]) with feature_flags(): set_feature_flag(flag_name, u'value', u'team:' + team.name) self.assertEqual( u'value', self.endpoint.getFeatureFlag( flag_name, ['user:' + person.name]))
def test_text_for_muted_subscriptions(self): # If a user has a mute on a bug it's recorded internally as a # type of subscription. However, the subscription text of the # BugContextMenu will still read 'Subscribe'. person = self.factory.makePerson() with feature_flags(): with person_logged_in(person): self.bug.mute(person, person) link = self.context_menu.subscription() self.assertEqual('Subscribe', link.text)
def test_text_for_muted_subscriptions(self): # If a user has a mute on a bug it's recorded internally as a # type of subscription. However, the subscription text of the # BugContextMenu will still read 'Subscribe'. person = self.factory.makePerson() with feature_flags(): with person_logged_in(person): self.bug.mute(person, person) link = self.context_menu.subscription() self.assertEqual("Subscribe", link.text)
def test_getFeatureFlag_turns_user_into_team_scope(self): flag_name = u'flag' person = self.factory.makePerson() team = self.factory.makeTeam(members=[person]) with feature_flags(): set_feature_flag(flag_name, u'value', u'team:' + team.name) self.assertEqual( u'value', self.endpoint.getFeatureFlag(flag_name, ['user:' + person.name]))
def test_mute_help_available(self): # There is a help link available next to the mute/unmute button. person = self.factory.makePerson() with feature_flags(): with person_logged_in(person): self.bug.subscribe(person, person, level=BugNotificationLevel.METADATA) self.bug.mute(person, person) request = LaunchpadTestRequest() request.features = get_relevant_feature_controller() view = create_initialized_view(self.bug, name="+portlet-subscription", request=request) html = view.render() self.assertTrue('class="sprite maybe action-icon mute-help"' in html)
def test_mute_help_available(self): # There is a help link available next to the mute/unmute button. person = self.factory.makePerson() with feature_flags(): with person_logged_in(person): self.bug.subscribe(person, person, level=BugNotificationLevel.METADATA) self.bug.mute(person, person) request = LaunchpadTestRequest() request.features = get_relevant_feature_controller() view = create_initialized_view(self.bug, name="+portlet-subscription", request=request) html = view.render() self.assertTrue('class="sprite maybe action-icon mute-help"' in html)
def test_mute_subscription_link(self): # The mute_subscription() method of BugContextMenu will return a # Link whose text will alter depending on whether or not they # have a mute on the bug. person = self.factory.makePerson() with feature_flags(): with person_logged_in(person): # If the user hasn't muted the bug, the link text will # reflect this. link = self.context_menu.mute_subscription() self.assertEqual("Mute bug mail", link.text) # Once the user has muted the bug, the link text will # change. self.bug.mute(person, person) link = self.context_menu.mute_subscription() self.assertEqual("Unmute bug mail", link.text)
def test_mute_subscription_link(self): # The mute_subscription() method of BugContextMenu will return a # Link whose text will alter depending on whether or not they # have a mute on the bug. person = self.factory.makePerson() with feature_flags(): with person_logged_in(person): # If the user hasn't muted the bug, the link text will # reflect this. link = self.context_menu.mute_subscription() self.assertEqual("Mute bug mail", link.text) # Once the user has muted the bug, the link text will # change. self.bug.mute(person, person) link = self.context_menu.mute_subscription() self.assertEqual("Unmute bug mail", link.text)
def test_getFeatureFlag_returns_true_for_set_flag(self): flag_name = u'flag' with feature_flags(): set_feature_flag(flag_name, u'1') self.assertEqual(u'1', self.endpoint.getFeatureFlag(flag_name))
def test_flags_unset_outside_feature_flags_context(self): """get fails when used outside the feature_flags context.""" with feature_flags(): set_feature_flag(u'name', u'value') self.assertIs(None, getFeatureFlag('name'))
def test_flags_set_within_feature_flags_context(self): """In the feature_flags context, set/get works.""" self.useContext(feature_flags()) set_feature_flag(u'name', u'value') self.assertEqual('value', getFeatureFlag('name'))
def test_getFeatureFlag_returns_true_for_set_flag(self): flag_name = u'flag' with feature_flags(): set_feature_flag(flag_name, u'1') self.assertEqual(u'1', self.endpoint.getFeatureFlag(flag_name))