Example #1
0
    def test_invalid_experiment(self):
        variant = utils.get_experiment_variant(self.request, "other_experiment")

        self.assertEqual(self.mock_choose_variant.call_count, 0)
        self.assertEqual(self.mock_get_cookie_name.call_count, 0)
        self.assertEqual(self.mock_get_variants.call_count, 0)
        self.assertIs(variant, None)
        self.assertIs(self.request.variant_experiments["other_experiment"], None)
Example #2
0
    def test_variant_cached(self):
        self.request.variant_experiments["test_experiment"] = "variant A"

        variant = utils.get_experiment_variant(self.request, "test_experiment")

        self.assertEqual(self.mock_choose_variant.call_count, 0)
        self.assertEqual(self.mock_get_cookie_name.call_count, 0)
        self.assertEqual(self.mock_get_variants.call_count, 0)
        self.assertEqual(variant, "variant A")
Example #3
0
    def test_variant_cached(self):
        self.request.variant_experiments['test_experiment'] = 'variant A'

        variant = utils.get_experiment_variant(self.request, 'test_experiment')

        self.assertEqual(self.mock_choose_variant.call_count, 0)
        self.assertEqual(self.mock_get_cookie_name.call_count, 0)
        self.assertEqual(self.mock_get_variants.call_count, 0)
        self.assertEqual(variant, 'variant A')
    def test_variant_cached(self):
        self.request.variant_experiments['test_experiment'] = 'variant A'

        variant = utils.get_experiment_variant(self.request, 'test_experiment')

        self.assertEqual(self.mock_choose_variant.call_count, 0)
        self.assertEqual(self.mock_get_cookie_name.call_count, 0)
        self.assertEqual(self.mock_get_variants.call_count, 0)
        self.assertEqual(variant, 'variant A')
Example #5
0
    def test_first_visit_dont_decide(self):
        self.mock_get_cookie_name.return_value = "dvc_test_experiment"
        self.mock_choose_variant.return_value = "variant B"

        variant = utils.get_experiment_variant(self.request, "test_experiment", make_decision=False)

        self.assertEqual(self.mock_get_cookie_name.call_count, 0)
        self.assertEqual(self.mock_choose_variant.call_count, 0)
        self.assertEqual(variant, None)
        self.assertNotIn("test_experiment", self.request.variant_experiments)
Example #6
0
    def test_first_visit(self):
        self.mock_get_cookie_name.return_value = "dvc_test_experiment"
        self.mock_choose_variant.return_value = "variant B"

        variant = utils.get_experiment_variant(self.request, "test_experiment")

        self.mock_get_cookie_name.assert_called_once_with("test_experiment")
        self.mock_choose_variant.assert_called_once_with()
        self.assertEqual(variant, "variant B")
        self.assertEqual(self.request.variant_experiments["test_experiment"], "variant B")
Example #7
0
    def test_invalid_experiment(self):
        variant = utils.get_experiment_variant(self.request,
                                               'other_experiment')

        self.assertEqual(self.mock_choose_variant.call_count, 0)
        self.assertEqual(self.mock_get_cookie_name.call_count, 0)
        self.assertEqual(self.mock_get_variants.call_count, 0)
        self.assertIs(variant, None)
        self.assertIs(self.request.variant_experiments['other_experiment'],
                      None)
    def test_first_visit(self):
        self.mock_get_cookie_name.return_value = 'dvc_test_experiment'
        self.mock_choose_variant.return_value = 'variant B'

        variant = utils.get_experiment_variant(self.request, 'test_experiment')

        self.mock_get_cookie_name.assert_called_once_with('test_experiment')
        self.mock_choose_variant.assert_called_once_with()
        self.assertEqual(variant, 'variant B')
        self.assertEqual(
            self.request.variant_experiments['test_experiment'], 'variant B')
Example #9
0
    def test_first_visit(self):
        self.mock_get_cookie_name.return_value = 'dvc_test_experiment'
        self.mock_choose_variant.return_value = 'variant B'

        variant = utils.get_experiment_variant(self.request, 'test_experiment')

        self.mock_get_cookie_name.assert_called_once_with('test_experiment')
        self.mock_choose_variant.assert_called_once_with()
        self.assertEqual(variant, 'variant B')
        self.assertEqual(self.request.variant_experiments['test_experiment'],
                         'variant B')
Example #10
0
    def test_cookie_set(self):
        self.request.COOKIES["dvc_test_experiment"] = "variant A"
        self.mock_get_cookie_name.return_value = "dvc_test_experiment"
        self.mock_get_variants.return_value = ["variant A", "variant B"]

        with self.settings(VARIANT_SETTINGS={"EXPERIMENT_COOKIE": "dvc_{}"}):
            variant = utils.get_experiment_variant(self.request, "test_experiment")

        self.mock_get_cookie_name.assert_called_once_with("test_experiment")
        self.mock_get_variants.assert_called_once_with()
        self.assertEqual(variant, "variant A")
        self.assertEqual(self.request.variant_experiments["test_experiment"], "variant A")
Example #11
0
    def test_first_visit_dont_decide(self):
        self.mock_get_cookie_name.return_value = 'dvc_test_experiment'
        self.mock_choose_variant.return_value = 'variant B'

        variant = utils.get_experiment_variant(self.request,
                                               'test_experiment',
                                               make_decision=False)

        self.assertEqual(self.mock_get_cookie_name.call_count, 0)
        self.assertEqual(self.mock_choose_variant.call_count, 0)
        self.assertEqual(variant, None)
        self.assertNotIn('test_experiment', self.request.variant_experiments)
Example #12
0
    def test_middleware_missing(self):
        delattr(self.request, "variant_experiments")
        self.mock_get_cookie_name.return_value = "dvc_test_experiment"
        self.mock_choose_variant.return_value = "variant B"

        variant = utils.get_experiment_variant(self.request, "test_experiment")

        self.mock_logger.warn.assert_called_once_with(
            "VariantMiddleware must be enabled for Variant experiments to be " "persistent."
        )
        self.mock_get_cookie_name.assert_called_once_with("test_experiment")
        self.mock_choose_variant.assert_called_once_with()
        self.assertEqual(variant, "variant B")
        self.assertEqual(self.request.variant_experiments["test_experiment"], "variant B")
    def test_cookie_set(self):
        self.request.COOKIES['dvc_test_experiment'] = 'variant A'
        self.mock_get_cookie_name.return_value = 'dvc_test_experiment'
        self.mock_get_variants.return_value = ['variant A', 'variant B']

        with self.settings(VARIANT_SETTINGS={'EXPERIMENT_COOKIE': 'dvc_{}'}):
            variant = utils.get_experiment_variant(
                self.request, 'test_experiment')

        self.mock_get_cookie_name.assert_called_once_with('test_experiment')
        self.mock_get_variants.assert_called_once_with()
        self.assertEqual(variant, 'variant A')
        self.assertEqual(
            self.request.variant_experiments['test_experiment'], 'variant A')
Example #14
0
    def test_cookie_set(self):
        self.request.COOKIES['dvc_test_experiment'] = 'variant A'
        self.mock_get_cookie_name.return_value = 'dvc_test_experiment'
        self.mock_get_variants.return_value = ['variant A', 'variant B']

        with self.settings(VARIANT_SETTINGS={'EXPERIMENT_COOKIE': 'dvc_{}'}):
            variant = utils.get_experiment_variant(self.request,
                                                   'test_experiment')

        self.mock_get_cookie_name.assert_called_once_with('test_experiment')
        self.mock_get_variants.assert_called_once_with()
        self.assertEqual(variant, 'variant A')
        self.assertEqual(self.request.variant_experiments['test_experiment'],
                         'variant A')
    def test_middleware_missing(self):
        delattr(self.request, 'variant_experiments')
        self.mock_get_cookie_name.return_value = 'dvc_test_experiment'
        self.mock_choose_variant.return_value = 'variant B'

        variant = utils.get_experiment_variant(self.request, 'test_experiment')

        self.mock_logger.warn.assert_called_once_with(
            'VariantMiddleware must be enabled for Variant experiments to be '
            'persistent.')
        self.mock_get_cookie_name.assert_called_once_with('test_experiment')
        self.mock_choose_variant.assert_called_once_with()
        self.assertEqual(variant, 'variant B')
        self.assertEqual(
            self.request.variant_experiments['test_experiment'], 'variant B')
Example #16
0
    def test_middleware_missing(self):
        delattr(self.request, 'variant_experiments')
        self.mock_get_cookie_name.return_value = 'dvc_test_experiment'
        self.mock_choose_variant.return_value = 'variant B'

        variant = utils.get_experiment_variant(self.request, 'test_experiment')

        self.mock_logger.warn.assert_called_once_with(
            'VariantMiddleware must be enabled for Variant experiments to be '
            'persistent.')
        self.mock_get_cookie_name.assert_called_once_with('test_experiment')
        self.mock_choose_variant.assert_called_once_with()
        self.assertEqual(variant, 'variant B')
        self.assertEqual(self.request.variant_experiments['test_experiment'],
                         'variant B')