Compare commits
10 Commits
Author | SHA1 | Date | |
---|---|---|---|
82c26f9772 | |||
03eb812e45 | |||
e3522d0acb | |||
7f5e958ee3 | |||
241bfb5240 | |||
d5df6e0e58 | |||
865efd0792 | |||
454c936e0f | |||
74d3123084 | |||
9bfd816430 |
8
CHANGES
8
CHANGES
@ -1,3 +1,11 @@
|
||||
0.11.3
|
||||
==================
|
||||
- Bugfix: Handle errors when testing an invalid visit count rule
|
||||
|
||||
0.11.2
|
||||
==================
|
||||
- Bugfix: Stop populating static segments when the count is reached
|
||||
|
||||
0.11.1
|
||||
==================
|
||||
- Populate entirely static segments from registered Users not active Sessions
|
||||
|
@ -55,10 +55,10 @@ author = 'Lab Digital BV'
|
||||
# built documents.
|
||||
#
|
||||
# The short X.Y version.
|
||||
version = '0.11.1'
|
||||
version = '0.11.3'
|
||||
|
||||
# The full version, including alpha/beta/rc tags.
|
||||
release = '0.11.1'
|
||||
release = '0.11.3'
|
||||
|
||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||
# for a list of supported languages.
|
||||
|
@ -1,5 +1,5 @@
|
||||
[bumpversion]
|
||||
current_version = 0.11.1
|
||||
current_version = 0.11.3
|
||||
commit = true
|
||||
tag = true
|
||||
tag_name = {new_version}
|
||||
|
2
setup.py
2
setup.py
@ -32,7 +32,7 @@ with open('README.rst') as fh:
|
||||
|
||||
setup(
|
||||
name='wagtail-personalisation-molo',
|
||||
version='0.11.1',
|
||||
version='0.11.3',
|
||||
description='A forked version of Wagtail add-on for showing personalized content',
|
||||
author='Praekelt.org',
|
||||
author_email='dev@praekeltfoundation.org',
|
||||
|
@ -116,7 +116,7 @@ class SegmentAdminForm(WagtailAdminModelForm):
|
||||
passes = adapter._test_rules(instance.get_rules(), request, instance.match_any)
|
||||
if passes:
|
||||
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():
|
||||
users_to_add.append(user)
|
||||
else:
|
||||
|
@ -6,6 +6,7 @@ from importlib import import_module
|
||||
|
||||
from django.apps import apps
|
||||
from django.conf import settings
|
||||
from django.core.exceptions import ObjectDoesNotExist
|
||||
from django.contrib.sessions.models import Session
|
||||
from django.db import models
|
||||
from django.template.defaultfilters import slugify
|
||||
@ -239,6 +240,12 @@ class VisitCountRule(AbstractBaseRule):
|
||||
from wagtail_personalisation.adapters import (
|
||||
get_segment_adapter, SessionSegmentsAdapter, SEGMENT_ADAPTER_CLASS)
|
||||
|
||||
# Django formsets don't honour 'required' fields so check rule is valid
|
||||
try:
|
||||
self.counted_page
|
||||
except ObjectDoesNotExist:
|
||||
return False
|
||||
|
||||
if user:
|
||||
# Create a fake request so we can use the adapter
|
||||
request = RequestFactory().get('/')
|
||||
|
@ -2,6 +2,7 @@ import pytest
|
||||
|
||||
from tests.factories.rule import VisitCountRuleFactory
|
||||
from tests.factories.segment import SegmentFactory
|
||||
from wagtail_personalisation.rules import VisitCountRule
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
@ -25,6 +26,12 @@ def test_visit_count(site, client):
|
||||
assert visit_count[1]['count'] == 1
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_call_test_user_on_invalid_rule_fails(site, user, mocker):
|
||||
rule = VisitCountRule()
|
||||
assert not (rule.test_user(None, user))
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_visit_count_call_test_user_with_user(site, client, user):
|
||||
segment = SegmentFactory(name='VisitCount')
|
||||
|
@ -45,6 +45,20 @@ def test_user_added_to_static_segment_at_creation(site, user, mocker):
|
||||
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
|
||||
def test_anonymous_user_not_added_to_static_segment_at_creation(site, client, mocker):
|
||||
session = client.session
|
||||
|
Reference in New Issue
Block a user