7

Ensure static segments don't have one extra user

This commit is contained in:
Kaitlyn Crawford
2018-03-08 13:14:29 +02:00
parent 9bfd816430
commit 74d3123084
2 changed files with 15 additions and 1 deletions

View File

@ -116,7 +116,7 @@ class SegmentAdminForm(WagtailAdminModelForm):
passes = adapter._test_rules(instance.get_rules(), request, instance.match_any) passes = adapter._test_rules(instance.get_rules(), request, instance.match_any)
if passes: if passes:
matched_count += 1 matched_count += 1
if instance.count == 0 or len(users_to_add) <= instance.count: if instance.count == 0 or len(users_to_add) < instance.count:
if instance.randomise_into_segment(): if instance.randomise_into_segment():
users_to_add.append(user) users_to_add.append(user)
else: else:

View File

@ -45,6 +45,20 @@ def test_user_added_to_static_segment_at_creation(site, user, mocker):
assert user in instance.static_users.all() assert user in instance.static_users.all()
@pytest.mark.django_db
def test_user_not_added_to_full_static_segment_at_creation(site, django_user_model, mocker):
django_user_model.objects.create(username='first')
django_user_model.objects.create(username='second')
segment = SegmentFactory.build(type=Segment.TYPE_STATIC, count=1)
rule = VisitCountRule(counted_page=site.root_page)
form = form_with_data(segment, rule)
mocker.patch('wagtail_personalisation.rules.VisitCountRule.test_user',
side_effect=[True, True])
instance = form.save()
assert len(instance.static_users.all()) == 1
@pytest.mark.django_db @pytest.mark.django_db
def test_anonymous_user_not_added_to_static_segment_at_creation(site, client, mocker): def test_anonymous_user_not_added_to_static_segment_at_creation(site, client, mocker):
session = client.session session = client.session