Esempio n. 1
0
 def test_evaluate_feature_for_prod_server_matches_to_backend_filter(self):
     registry.Registry.update_platform_parameter(
         self.prod_feature.name, self.user_id, 'edit rules', [
             platform_parameter_domain.PlatformParameterRule.from_dict({
                 'filters': [{
                     'type': 'server_mode',
                     'conditions': [['=', ServerModes.PROD.value]],
                 }, {
                     'type': 'platform_type',
                     'conditions': [['=', 'Backend']],
                 }],
                 'value_when_matched':
                 True
             })
         ])
     with self.swap(constants, 'DEV_MODE', False):
         self.assertTrue(
             feature_services.is_feature_enabled(self.prod_feature.name))
    def test_update_feature_flag_rules_successfully_updates_rules(self):
        feature_services.update_feature_flag_rules(
            self.dev_feature.name, self.user_id, 'test update', [
                {
                    'filters': [{
                        'type':
                        'server_mode',
                        'conditions':
                        [['=', platform_parameter_domain.FEATURE_STAGES.dev]]
                    }],
                    'value_when_matched':
                    False
                },
            ])

        with self.swap(constants, 'DEV_MODE', True):
            self.assertFalse(
                feature_services.is_feature_enabled(self.dev_feature.name))
 def test_evaluate_feature_for_prod_server_no_user_defaults_match_to_en_lang(
         self):
     registry.Registry.update_platform_parameter(
         self.prod_feature.name, self.user_id, 'edit rules', [{
             'filters': [{
                 'type':
                 'server_mode',
                 'conditions':
                 [['=', platform_parameter_domain.SERVER_MODES.prod]],
             }, {
                 'type': 'user_locale',
                 'conditions': [['=', 'en']],
             }],
             'value_when_matched':
             True
         }])
     with self.swap(constants, 'DEV_MODE', False):
         self.assertTrue(
             feature_services.is_feature_enabled(self.prod_feature.name))
    def test_update_feature_flag_rules_successfully_updates_rules(self) -> None:
        feature_services.update_feature_flag_rules(
            self.dev_feature.name, self.user_id, 'test update',
            [
                platform_parameter_domain.PlatformParameterRule.from_dict({
                    'filters': [
                        {
                            'type': 'server_mode',
                            'conditions': [
                                ['=', FeatureStages.DEV.value]
                            ]
                        }
                    ],
                    'value_when_matched': False
                })
            ]
        )

        with self.swap(constants, 'DEV_MODE', True):
            self.assertFalse(
                feature_services.is_feature_enabled(self.dev_feature.name))
Esempio n. 5
0
 def test_evaluate_feature_for_fr_user_defaults_does_not_match_to_en_lang(
         self):
     user_services.update_preferred_site_language_code(self.user_id, 'fr')
     self.login(self.OWNER_EMAIL)
     registry.Registry.update_platform_parameter(
         self.prod_feature.name, self.user_id, 'edit rules',
         [
             {
                 'filters': [
                     {
                         'type': 'server_mode',
                         'conditions': [
                             [
                                 '=',
                                 platform_parameter_domain.SERVER_MODES.prod
                             ]
                         ],
                     },
                     {
                         'type': 'user_locale',
                         'conditions': [
                             [
                                 '=',
                                 'en'
                             ]
                         ],
                     }
                 ],
                 'value_when_matched': True
             }
         ]
     )
     # Since the feature is only enable for users who have French selected as
     # their preferred site language code, the feature shouldn't be enabled
     # for the current logged in user.
     with self.swap(constants, 'DEV_MODE', False):
         self.assertFalse(
             feature_services.is_feature_enabled(
                 self.prod_feature.name, self.user_id))
 def test_get_feature_flag_values_with_unknown_name_raises_error(
     self
 ) -> None:
     with self.assertRaisesRegex(  # type: ignore[no-untyped-call]
         Exception, 'Unknown feature flag'):
         feature_services.is_feature_enabled('feature_that_does_not_exist')
 def test_evaluate_prod_feature_for_prod_server_returns_true(self) -> None:
     with self.swap(constants, 'DEV_MODE', False):
         self.assertTrue(
             feature_services.is_feature_enabled(self.prod_feature.name))
 def test_get_feature_flag_values_with_unknown_name_raises_error(self):
     with self.assertRaisesRegexp(Exception, 'Unknown feature flag'):
         feature_services.is_feature_enabled('feature_that_does_not_exist')
 def test_evaluate_dev_feature_for_prod_server_returns_false(self):
     with self.swap(constants, 'DEV_MODE', False):
         self.assertFalse(
             feature_services.is_feature_enabled(self.dev_feature.name))
Esempio n. 10
0
 def test_evaluate_prod_feature_for_dev_server_returns_true(self):
     with self.swap(constants, 'DEV_MODE', True):
         self.assertTrue(
             feature_services.is_feature_enabled(
                 self.prod_feature.name, self.user_id))