This repository has been archived by the owner on Feb 26, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 11
/
tests.py
92 lines (82 loc) · 3.11 KB
/
tests.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
from django.contrib.contenttypes.models import ContentType
from django.contrib.sites.models import Site
from django.contrib.auth import get_user_model
from django_dynamic_fixture import G
from django_webtest import WebTest
from icekit.utils import fluent_contents
from icekit.models import Layout
from icekit.page_types.layout_page.models import LayoutPage
from . import models
User = get_user_model()
class ChildPagesTestCase(WebTest):
def setUp(self):
self.layout_1 = G(
Layout,
template_name='layout_page/layoutpage/layouts/default.html',
)
self.layout_1.content_types.add(ContentType.objects.get_for_model(LayoutPage))
self.layout_1.save()
self.staff_1 = User.objects.create(
email='test@test.com',
is_staff=True,
is_active=True,
is_superuser=True,
)
self.page_1 = LayoutPage.objects.create(
title='Test Page',
slug='test-page',
parent_site=Site.objects.first(),
layout=self.layout_1,
author=self.staff_1,
)
self.page_2 = LayoutPage.objects.create(
title='Test Page 2',
slug='test-page-2',
parent_site=Site.objects.first(),
layout=self.layout_1,
author=self.staff_1,
)
self.page_3 = LayoutPage.objects.create(
title='Test Page 3',
slug='test-page-3',
parent_site=Site.objects.first(),
layout=self.layout_1,
author=self.staff_1,
parent=self.page_2,
)
self.page_4 = LayoutPage.objects.create(
title='Test Page 4',
slug='test-page-4',
parent_site=Site.objects.first(),
layout=self.layout_1,
author=self.staff_1,
parent=self.page_2,
)
self.child_pages_1 = fluent_contents.create_content_instance(
models.ChildPageItem,
self.page_1,
)
self.child_pages_2 = fluent_contents.create_content_instance(
models.ChildPageItem,
self.page_2,
)
self.page_1.publish()
self.page_2.publish()
self.page_3.publish()
# page_4 is not published
def test_str(self):
self.assertEqual(str(self.child_pages_1), 'Child Pages')
def test_get_child_pages_draft(self):
self.assertEqual(len(self.child_pages_1.get_child_pages()), 0)
self.assertEqual(len(self.child_pages_2.get_child_pages()), 2)
expected_children = [self.page_3, self.page_4]
for child in expected_children:
self.assertIn(child, self.child_pages_2.get_child_pages())
def test_get_child_pages_published(self):
pcp1 = self.page_1.get_published().contentitem_set.all()[0]
pcp2 = self.page_2.get_published().contentitem_set.all()[0]
self.assertEqual(len(pcp1.get_child_pages()), 0)
self.assertEqual(len(pcp2.get_child_pages()), 1)
expected_children = [self.page_3.get_published()]
for child in expected_children:
self.assertIn(child, pcp2.get_child_pages())