Ensure static segments don't have one extra user
This commit is contained in:
@ -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:
|
||||||
|
@ -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
|
||||||
|
Reference in New Issue
Block a user