Example #1
0
 def test_get_all_feature_flag_values_in_prod_returns_correct_values(self):
     with self.swap(constants, 'DEV_MODE', False):
         context = feature_services.create_evaluation_context_for_client({
             'client_type': 'Android',
             'browser_type': None,
             'app_version': '1.0.0',
             'user_locale': 'en',
         })
         self.assertEqual(
             feature_services.evaluate_all_feature_flag_values_for_client(
                 context),
             {
                 self.dev_feature.name: False,
                 self.prod_feature.name: True,
             })
Example #2
0
 def test_create_evaluation_context_for_client_returns_correct_context(
         self):
     with self.swap(constants, 'DEV_MODE', True):
         context = feature_services.create_evaluation_context_for_client({
             'platform_type':
             'Android',
             'browser_type':
             None,
             'app_version':
             '1.0.0',
         })
         self.assertEqual(context.server_mode, FeatureStages.DEV)
         self.assertEqual(context.platform_type, 'Android')
         self.assertEqual(context.browser_type, None)
         self.assertEqual(context.app_version, '1.0.0')
Example #3
0
 def test_create_evaluation_context_for_client_returns_correct_context(self):
     with self.swap(constants, 'DEV_MODE', True):
         context = feature_services.create_evaluation_context_for_client(
             {
                 'client_type': 'Android',
                 'browser_type': None,
                 'app_version': '1.0.0',
                 'user_locale': 'en',
             }
         )
         self.assertEqual(
             context.server_mode,
             platform_parameter_domain.FEATURE_STAGES.dev)
         self.assertEqual(context.client_type, 'Android')
         self.assertEqual(context.browser_type, None)
         self.assertEqual(context.app_version, '1.0.0')
         self.assertEqual(context.user_locale, 'en')
Example #4
0
    def get(self):
        """Handles GET requests. Evaluates and returns all feature flags using
        the given client information.
        """
        context_dict = {
            'platform_type': self.normalized_request.get('platform_type'),
            'browser_type': self.normalized_request.get('browser_type'),
            'app_version': self.normalized_request.get('app_version'),
        }
        context = (
            platform_feature_services.create_evaluation_context_for_client(
                context_dict))
        try:
            context.validate()
        except utils.ValidationError as e:
            raise self.InvalidInputException(e)

        result_dict = (
            platform_feature_services
            .evaluate_all_feature_flag_values_for_client(context))

        self.render_json(result_dict)