def test_apply_content_experiment_no_experiment(ce_settings, rf): """If not under a content experiment, use the original Document.""" doc = mock.Mock(spec_set=['locale', 'slug']) doc.locale = 'en-US' doc.slug = 'Other' request = rf.get('/%s/docs/%s' % (doc.locale, doc.slug)) experiment_doc, params = _apply_content_experiment(request, doc) assert experiment_doc == doc assert params is None
def test_apply_content_experiment_no_experiment(ce_settings, rf): """If not under a content experiment, use the original Document.""" doc = mock.Mock(spec_set=['locale', 'slug']) doc.locale = 'en-US' doc.slug = 'Other' request = rf.get('/%s/docs/%s' % (doc.locale, doc.slug)) experiment_doc, params = _apply_content_experiment(request, doc) assert experiment_doc == doc assert params is None
def test_apply_content_experiment_bad_selection(ce_settings, rf): """If the variant is selected as the content experiment, return it.""" doc = mock.Mock(spec_set=['locale', 'slug']) doc.locale = 'en-US' doc.slug = 'Original' request = rf.get('/%s/docs/%s' % (doc.locale, doc.slug), {'v': 'other'}) experiment_doc, params = _apply_content_experiment(request, doc) assert experiment_doc == doc assert params['selected'] is None assert not params['selection_is_valid']
def test_apply_content_experiment_bad_selection(ce_settings, rf): """If the variant is selected as the content experiment, return it.""" doc = mock.Mock(spec_set=['locale', 'slug']) doc.locale = 'en-US' doc.slug = 'Original' request = rf.get('/%s/docs/%s' % (doc.locale, doc.slug), {'v': 'other'}) experiment_doc, params = _apply_content_experiment(request, doc) assert experiment_doc == doc assert params['selected'] is None assert not params['selection_is_valid']
def test_apply_content_experiment_selected_original(ce_settings, rf): """If the original is selected as the content experiment, return it.""" doc = mock.Mock(spec_set=['locale', 'slug']) db_doc = mock.Mock(spec_set=['locale', 'slug']) doc.locale = db_doc.locale = 'en-US' doc.slug = db_doc.slug = 'Original' request = rf.get('/%s/docs/%s' % (doc.locale, doc.slug), {'v': 'control'}) with mock.patch('kuma.wiki.views.document.Document.objects.get', return_value=db_doc) as mock_get: experiment_doc, params = _apply_content_experiment(request, doc) mock_get.assert_called_once_with(locale='en-US', slug='Original') assert experiment_doc == db_doc assert params['selected'] == 'control' assert params['selection_is_valid']
def test_apply_content_experiment_valid_selection_no_doc(ce_settings, rf): """If the Document for a variant doesn't exist, return the original.""" doc = mock.Mock(spec_set=['locale', 'slug']) doc.locale = 'en-US' doc.slug = 'Original' request = rf.get('/%s/docs/%s' % (doc.locale, doc.slug), {'v': 'test'}) with mock.patch('kuma.wiki.views.document.Document.objects.get', side_effect=Document.DoesNotExist) as mock_get: experiment_doc, params = _apply_content_experiment(request, doc) mock_get.assert_called_once_with(locale='en-US', slug='Experiment:Test/Variant') assert experiment_doc == doc assert params['selected'] is None assert not params['selection_is_valid']
def test_apply_content_experiment_selected_original(ce_settings, rf): """If the original is selected as the content experiment, return it.""" doc = mock.Mock(spec_set=['locale', 'slug']) db_doc = mock.Mock(spec_set=['locale', 'slug']) doc.locale = db_doc.locale = 'en-US' doc.slug = db_doc.slug = 'Original' request = rf.get('/%s/docs/%s' % (doc.locale, doc.slug), {'v': 'control'}) with mock.patch( 'kuma.wiki.views.document.Document.objects.get', return_value=db_doc) as mock_get: experiment_doc, params = _apply_content_experiment(request, doc) mock_get.assert_called_once_with(locale='en-US', slug='Original') assert experiment_doc == db_doc assert params['selected'] == 'control' assert params['selection_is_valid']
def test_apply_content_experiment_valid_selection_no_doc(ce_settings, rf): """If the Document for a variant doesn't exist, return the original.""" doc = mock.Mock(spec_set=['locale', 'slug']) doc.locale = 'en-US' doc.slug = 'Original' request = rf.get('/%s/docs/%s' % (doc.locale, doc.slug), {'v': 'test'}) with mock.patch( 'kuma.wiki.views.document.Document.objects.get', side_effect=Document.DoesNotExist) as mock_get: experiment_doc, params = _apply_content_experiment(request, doc) mock_get.assert_called_once_with(locale='en-US', slug='Experiment:Test/Variant') assert experiment_doc == doc assert params['selected'] is None assert not params['selection_is_valid']
def test_apply_content_experiment_has_experiment(ce_settings, rf): """If under a content experiment, return original Document and params.""" doc = mock.Mock(spec_set=['locale', 'slug']) doc.locale = 'en-US' doc.slug = 'Original' request = rf.get('/%s/docs/%s' % (doc.locale, doc.slug)) experiment_doc, params = _apply_content_experiment(request, doc) assert experiment_doc == doc assert params == { 'id': 'experiment-test', 'ga_name': 'experiment-test', 'param': 'v', 'original_path': '/en-US/docs/Original', 'variants': { 'control': 'Original', 'test': 'Experiment:Test/Variant', }, 'selected': None, 'selection_is_valid': None, }
def test_apply_content_experiment_has_experiment(ce_settings, rf): """If under a content experiment, return original Document and params.""" doc = mock.Mock(spec_set=['locale', 'slug']) doc.locale = 'en-US' doc.slug = 'Original' request = rf.get('/%s/docs/%s' % (doc.locale, doc.slug)) experiment_doc, params = _apply_content_experiment(request, doc) assert experiment_doc == doc assert params == { 'id': 'experiment-test', 'ga_name': 'experiment-test', 'param': 'v', 'original_path': '/en-US/docs/Original', 'variants': [ ['control', 'Original'], ['test', 'Experiment:Test/Variant'], ], 'selected': None, 'selection_is_valid': None, }