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_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')
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)
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")
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')
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')
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_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)
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')
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')
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')