Fix tests
This commit is contained in:
18
setup.py
18
setup.py
@ -9,19 +9,19 @@ install_requires = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
tests_require = [
|
tests_require = [
|
||||||
'factory_boy==2.8.1',
|
"factory_boy==3.2.1",
|
||||||
'flake8-blind-except',
|
'flake8-blind-except',
|
||||||
'flake8-debugger',
|
'flake8-debugger',
|
||||||
'flake8-isort',
|
'flake8-isort',
|
||||||
'flake8',
|
'flake8',
|
||||||
'freezegun==0.3.8',
|
"freezegun==1.2.1",
|
||||||
'pytest-cov==2.5.1',
|
"pytest-cov==3.0.0",
|
||||||
'pytest-django==4.1.0',
|
"pytest-django==4.5.2",
|
||||||
'pytest-pythonpath==0.7.2',
|
"pytest-pythonpath==0.7.4",
|
||||||
'pytest-sugar==0.9.1',
|
"pytest-sugar==0.9.4",
|
||||||
'pytest==6.1.2',
|
"pytest==6.2.5",
|
||||||
'wagtail_factories==1.1.0',
|
"wagtail_factories==2.0.1",
|
||||||
'pytest-mock==1.6.3',
|
"pytest-mock==3.8.1",
|
||||||
]
|
]
|
||||||
|
|
||||||
docs_require = [
|
docs_require = [
|
||||||
|
@ -10,7 +10,7 @@ from wagtail_personalisation.models import PersonalisablePageMetadata
|
|||||||
try:
|
try:
|
||||||
from wagtail.core.models import Locale
|
from wagtail.core.models import Locale
|
||||||
|
|
||||||
class LocaleFactory(factory.DjangoModelFactory):
|
class LocaleFactory(factory.django.DjangoModelFactory):
|
||||||
language_code = "en"
|
language_code = "en"
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
@ -35,7 +35,7 @@ class RegularPageFactory(PageFactory):
|
|||||||
model = models.RegularPage
|
model = models.RegularPage
|
||||||
|
|
||||||
|
|
||||||
class PersonalisablePageMetadataFactory(factory.DjangoModelFactory):
|
class PersonalisablePageMetadataFactory(factory.django.DjangoModelFactory):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = PersonalisablePageMetadata
|
model = PersonalisablePageMetadata
|
||||||
|
@ -7,32 +7,32 @@ import factory
|
|||||||
from wagtail_personalisation import rules
|
from wagtail_personalisation import rules
|
||||||
|
|
||||||
|
|
||||||
class DayRuleFactory(factory.DjangoModelFactory):
|
class DayRuleFactory(factory.django.DjangoModelFactory):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = rules.DayRule
|
model = rules.DayRule
|
||||||
|
|
||||||
|
|
||||||
class DeviceRuleFactory(factory.DjangoModelFactory):
|
class DeviceRuleFactory(factory.django.DjangoModelFactory):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = rules.DeviceRule
|
model = rules.DeviceRule
|
||||||
|
|
||||||
|
|
||||||
class QueryRuleFactory(factory.DjangoModelFactory):
|
class QueryRuleFactory(factory.django.DjangoModelFactory):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = rules.QueryRule
|
model = rules.QueryRule
|
||||||
|
|
||||||
|
|
||||||
class ReferralRuleFactory(factory.DjangoModelFactory):
|
class ReferralRuleFactory(factory.django.DjangoModelFactory):
|
||||||
regex_string = "test.test"
|
regex_string = "test.test"
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = rules.ReferralRule
|
model = rules.ReferralRule
|
||||||
|
|
||||||
|
|
||||||
class TimeRuleFactory(factory.DjangoModelFactory):
|
class TimeRuleFactory(factory.django.DjangoModelFactory):
|
||||||
start_time = datetime.time(8, 0, 0)
|
start_time = datetime.time(8, 0, 0)
|
||||||
end_time = datetime.time(23, 0, 0)
|
end_time = datetime.time(23, 0, 0)
|
||||||
|
|
||||||
@ -40,7 +40,7 @@ class TimeRuleFactory(factory.DjangoModelFactory):
|
|||||||
model = rules.TimeRule
|
model = rules.TimeRule
|
||||||
|
|
||||||
|
|
||||||
class VisitCountRuleFactory(factory.DjangoModelFactory):
|
class VisitCountRuleFactory(factory.django.DjangoModelFactory):
|
||||||
operator = "more_than"
|
operator = "more_than"
|
||||||
count = 0
|
count = 0
|
||||||
|
|
||||||
@ -48,6 +48,6 @@ class VisitCountRuleFactory(factory.DjangoModelFactory):
|
|||||||
model = rules.VisitCountRule
|
model = rules.VisitCountRule
|
||||||
|
|
||||||
|
|
||||||
class OriginCountryRuleFactory(factory.DjangoModelFactory):
|
class OriginCountryRuleFactory(factory.django.DjangoModelFactory):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = rules.OriginCountryRule
|
model = rules.OriginCountryRule
|
||||||
|
@ -5,7 +5,7 @@ import factory
|
|||||||
from wagtail_personalisation import models
|
from wagtail_personalisation import models
|
||||||
|
|
||||||
|
|
||||||
class SegmentFactory(factory.DjangoModelFactory):
|
class SegmentFactory(factory.django.DjangoModelFactory):
|
||||||
name = 'TestSegment'
|
name = 'TestSegment'
|
||||||
status = models.Segment.STATUS_ENABLED
|
status = models.Segment.STATUS_ENABLED
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@ from wagtail.core.models import Site
|
|||||||
from tests.factories.page import ContentPageFactory
|
from tests.factories.page import ContentPageFactory
|
||||||
|
|
||||||
|
|
||||||
class SiteFactory(factory.DjangoModelFactory):
|
class SiteFactory(factory.django.DjangoModelFactory):
|
||||||
hostname = 'localhost'
|
hostname = 'localhost'
|
||||||
port = factory.Sequence(lambda n: 81 + n)
|
port = factory.Sequence(lambda n: 81 + n)
|
||||||
site_name = 'Test site'
|
site_name = 'Test site'
|
||||||
|
@ -2,6 +2,7 @@ import datetime
|
|||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
from django.db.models import ProtectedError
|
from django.db.models import ProtectedError
|
||||||
|
from wagtail import VERSION as WAGTAIL_VERSION
|
||||||
|
|
||||||
from tests.factories.page import ContentPageFactory
|
from tests.factories.page import ContentPageFactory
|
||||||
from tests.factories.segment import SegmentFactory
|
from tests.factories.segment import SegmentFactory
|
||||||
@ -76,8 +77,8 @@ def test_sitemap_generation_for_variants_is_disabled(segmented_page):
|
|||||||
@pytest.mark.django_db
|
@pytest.mark.django_db
|
||||||
def test_segment_edit_view(site, client, django_user_model):
|
def test_segment_edit_view(site, client, django_user_model):
|
||||||
test_segment = SegmentFactory()
|
test_segment = SegmentFactory()
|
||||||
try:
|
if WAGTAIL_VERSION >= (3, 0):
|
||||||
new_panel = test_segment.panels[1].children[0].bind_to(model=Segment)
|
|
||||||
except AttributeError:
|
|
||||||
new_panel = test_segment.panels[1].children[0].bind_to_model(Segment)
|
new_panel = test_segment.panels[1].children[0].bind_to_model(Segment)
|
||||||
|
else:
|
||||||
|
new_panel = test_segment.panels[1].children[0].bind_to(model=Segment)
|
||||||
assert new_panel.related.name == "wagtail_personalisation_timerules"
|
assert new_panel.related.name == "wagtail_personalisation_timerules"
|
||||||
|
@ -13,11 +13,22 @@ from wagtail_personalisation.rules import TimeRule, VisitCountRule
|
|||||||
|
|
||||||
def form_with_data(segment, *rules):
|
def form_with_data(segment, *rules):
|
||||||
model_fields = ['type', 'status', 'count', 'name', 'match_any', 'randomisation_percent']
|
model_fields = ['type', 'status', 'count', 'name', 'match_any', 'randomisation_percent']
|
||||||
|
model_formsets = [
|
||||||
|
"wagtail_personalisation_timerules",
|
||||||
|
"wagtail_personalisation_dayrules",
|
||||||
|
"wagtail_personalisation_referralrules",
|
||||||
|
"wagtail_personalisation_visitcountrules",
|
||||||
|
"wagtail_personalisation_queryrules",
|
||||||
|
"wagtail_personalisation_devicerules",
|
||||||
|
"wagtail_personalisation_userisloggedinrules",
|
||||||
|
"wagtail_personalisation_origincountryrules",
|
||||||
|
]
|
||||||
|
|
||||||
class TestSegmentAdminForm(SegmentAdminForm):
|
class TestSegmentAdminForm(SegmentAdminForm):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Segment
|
model = Segment
|
||||||
fields = model_fields
|
fields = model_fields
|
||||||
|
formsets = model_formsets
|
||||||
|
|
||||||
data = model_to_dict(segment, model_fields)
|
data = model_to_dict(segment, model_fields)
|
||||||
for formset in TestSegmentAdminForm().formsets.values():
|
for formset in TestSegmentAdminForm().formsets.values():
|
||||||
|
@ -1,6 +1,11 @@
|
|||||||
import pytest
|
import pytest
|
||||||
from django.http import Http404
|
from django.http import Http404
|
||||||
from wagtail.core.models import Page
|
from wagtail import VERSION as WAGTAIL_VERSION
|
||||||
|
|
||||||
|
if WAGTAIL_VERSION >= (3, 0):
|
||||||
|
from wagtail.models import Page
|
||||||
|
else:
|
||||||
|
from wagtail.core.models import Page
|
||||||
|
|
||||||
from tests.factories.page import ContentPageFactory
|
from tests.factories.page import ContentPageFactory
|
||||||
from tests.factories.segment import SegmentFactory
|
from tests.factories.segment import SegmentFactory
|
||||||
|
Reference in New Issue
Block a user