Skip to content
This repository was archived by the owner on Oct 5, 2023. It is now read-only.

Commit a05997b

Browse files
authored
Make variant alias required (#28)
1 parent 591728d commit a05997b

File tree

4 files changed

+9
-40
lines changed

4 files changed

+9
-40
lines changed

django_google_optimize/migrations/0001_initial.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Generated by Django 3.0.2 on 2020-01-29 07:56
1+
# Generated by Django 3.0.2 on 2020-01-29 08:36
22

33
from django.db import migrations, models
44
import django.db.models.deletion
@@ -26,7 +26,7 @@ class Migration(migrations.Migration):
2626
fields=[
2727
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
2828
('index', models.IntegerField()),
29-
('alias', models.CharField(blank=True, max_length=50, null=True)),
29+
('alias', models.CharField(default='', max_length=50)),
3030
('experiment', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='experiment_variant', to='django_google_optimize.GoogleExperiment')),
3131
],
3232
),

django_google_optimize/models.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ class GoogleExperiment(models.Model):
1111

1212
class ExperimentVariant(models.Model):
1313
index = models.IntegerField()
14-
alias = models.CharField(max_length=50, blank=True, null=True)
14+
alias = models.CharField(max_length=50, default="")
1515
experiment = models.ForeignKey(
1616
GoogleExperiment,
1717
null=True,

django_google_optimize/utils.py

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -40,22 +40,12 @@ def get_experiments_variants(request):
4040

4141
variant_name = cookie_data[experiment_id]
4242

43-
experiment_variants = experiment.experiment_variant.all()
44-
45-
if experiment_variants:
46-
variant = experiment_variants.filter(index=variant_name).first()
47-
if variant:
48-
if variant.alias:
49-
variant_name = variant.alias
50-
else:
51-
logger.warning(
52-
"No experiment variant added with the index %s", variant_name
53-
)
54-
return None
55-
56-
experiment_alias = experiment.experiment_alias
57-
if experiment_alias:
58-
active_experiments[experiment_alias] = variant_name
43+
variant = experiment.experiment_variant.all().filter(index=variant_name).first()
44+
if variant:
45+
variant_name = variant.alias
46+
47+
if experiment.experiment_alias:
48+
active_experiments[experiment.experiment_alias] = variant_name
5949
else:
6050
active_experiments[experiment_id] = variant_name
6151

tests/test_utils.py

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -63,17 +63,6 @@ def test_logs_failed_cookie_parsing(logger):
6363
logger.assert_called_with("Failed to parse _gaexp %s", "test")
6464

6565

66-
@pytest.mark.django_db
67-
@mock.patch("logging.Logger.warning")
68-
def test_logs_no_experiment_variant(logger):
69-
exp = GoogleExperimentFactory()
70-
ExperimentVariantFactory(index=0, alias="new_design", experiment=exp)
71-
request = HttpRequest()
72-
request.COOKIES["_gaexp"] = f"GAX1.2.{exp.experiment_id}.18147.1"
73-
get_experiments_variants(request)
74-
logger.assert_called_with("No experiment variant added with the index %s", 1)
75-
76-
7766
@pytest.mark.django_db
7867
@mock.patch("logging.Logger.warning")
7968
def test_logs_experiment_id_not_in_cookies(logger):
@@ -137,16 +126,6 @@ def test_parses_experiments_without_experiment_alias():
137126
assert values == {exp.experiment_id: variant.alias}
138127

139128

140-
@pytest.mark.django_db
141-
def test_parses_experiments_without_variant_alias():
142-
exp = GoogleExperimentFactory()
143-
variant = ExperimentVariantFactory(index=1, alias=None, experiment=exp)
144-
request = HttpRequest()
145-
request.COOKIES["_gaexp"] = f"GAX1.2.{exp.experiment_id}.18147.{variant.index}"
146-
values = get_experiments_variants(request)
147-
assert values == {exp.experiment_alias: variant.index}
148-
149-
150129
@pytest.mark.django_db
151130
def test_filters_active_experiments():
152131
exp = GoogleExperimentFactory()

0 commit comments

Comments
 (0)