Left: | ||
Right: |
OLD | NEW |
---|---|
1 # Copyright: 2012 MoinMoin:PavelSviderski | 1 # Copyright: 2012 MoinMoin:PavelSviderski |
2 # License: GNU GPL v2 (or any later version), see LICENSE.txt for details. | 2 # License: GNU GPL v2 (or any later version), see LICENSE.txt for details. |
3 | 3 |
4 """ | 4 """ |
5 MoinMoin - MoinMoin.items.blog Tests | 5 MoinMoin - MoinMoin.items.blog Tests |
6 """ | 6 """ |
7 | 7 |
8 import re | 8 import re |
9 | 9 |
10 from flask import url_for | 10 from flask import url_for |
(...skipping 24 matching lines...) Expand all Loading... | |
35 contenttype = u'text/x.moin.wiki' | 35 contenttype = u'text/x.moin.wiki' |
36 data = u"This is the header item of this blog" | 36 data = u"This is the header item of this blog" |
37 meta = {CONTENTTYPE: contenttype, ITEMTYPE: ITEMTYPE_BLOG} | 37 meta = {CONTENTTYPE: contenttype, ITEMTYPE: ITEMTYPE_BLOG} |
38 comment = u'saved it' | 38 comment = u'saved it' |
39 entries = [{'name': name + u'/NewBlogEntryItem1', 'data': u"First blog entry "}, | 39 entries = [{'name': name + u'/NewBlogEntryItem1', 'data': u"First blog entry "}, |
40 {'name': name + u'/NewBlogEntryItem2', 'data': u"Second blog entr y"}, | 40 {'name': name + u'/NewBlogEntryItem2', 'data': u"Second blog entr y"}, |
41 {'name': name + u'/NewBlogEntryItem3', 'data': u"Third blog entry "}, | 41 {'name': name + u'/NewBlogEntryItem3', 'data': u"Third blog entry "}, |
42 {'name': name + u'/NewBlogEntryItem4', 'data': u"Fourth blog entr y"}, ] | 42 {'name': name + u'/NewBlogEntryItem4', 'data': u"Fourth blog entr y"}, ] |
43 entry_meta = {CONTENTTYPE: contenttype, ITEMTYPE: ITEMTYPE_BLOG_ENTRY} | 43 entry_meta = {CONTENTTYPE: contenttype, ITEMTYPE: ITEMTYPE_BLOG_ENTRY} |
44 | 44 |
45 def _publish_entry(self, entry, ptime, acl=None): | |
46 meta = self.entry_meta.copy() | |
47 meta[PTIME] = ptime | |
48 if acl: | |
49 meta[ACL] = acl | |
50 update_item(entry['name'], meta, entry['data']) | |
51 | |
45 def test_create(self): | 52 def test_create(self): |
46 item = Item.create(self.name, itemtype=ITEMTYPE_BLOG) | 53 item = Item.create(self.name, itemtype=ITEMTYPE_BLOG) |
47 item._save(self.meta, self.data, comment=self.comment) | 54 item._save(self.meta, self.data, comment=self.comment) |
48 # check save result | 55 # check save result |
49 item = Item.create(self.name) | 56 item = Item.create(self.name) |
50 assert isinstance(item, Blog) | 57 assert isinstance(item, Blog) |
51 assert item.itemtype == ITEMTYPE_BLOG | 58 assert item.itemtype == ITEMTYPE_BLOG |
52 assert item.meta[CONTENTTYPE] == self.contenttype | 59 assert item.meta[CONTENTTYPE] == self.contenttype |
53 | 60 |
54 def test_do_show_empty(self): | 61 def test_do_show_empty(self): |
55 item = Item.create(self.name, itemtype=ITEMTYPE_BLOG) | 62 item = Item.create(self.name, itemtype=ITEMTYPE_BLOG) |
56 item._save(self.meta, self.data, comment=self.comment) | 63 item._save(self.meta, self.data, comment=self.comment) |
57 # empty blog page without any entries | 64 # empty blog page without any entries |
58 data_tokens = [self.data, self.NO_ENTRIES_MSG, ] | 65 data_tokens = [self.data, self.NO_ENTRIES_MSG, ] |
59 self._test_view(self.name, data_tokens=data_tokens) | 66 self._test_view(self.name, data_tokens=data_tokens) |
60 | 67 |
61 def test_do_show_entries(self): | 68 def test_do_show_entries(self): |
62 item = Item.create(self.name, itemtype=ITEMTYPE_BLOG) | 69 item = Item.create(self.name, itemtype=ITEMTYPE_BLOG) |
63 item._save(self.meta, self.data, comment=self.comment) | 70 item._save(self.meta, self.data, comment=self.comment) |
64 # store some unpublished entries | 71 # store some unpublished entries |
65 for entry in self.entries: | 72 for entry in self.entries: |
66 item = Item.create(entry['name'], itemtype=ITEMTYPE_BLOG_ENTRY) | 73 item = Item.create(entry['name'], itemtype=ITEMTYPE_BLOG_ENTRY) |
67 item._save(self.entry_meta, entry['data'], comment=self.comment) | 74 item._save(self.entry_meta, entry['data'], comment=self.comment) |
68 # still empty blog | 75 # still empty blog |
69 data_tokens = [self.data, self.NO_ENTRIES_MSG, ] | 76 data_tokens = [self.data, self.NO_ENTRIES_MSG, ] |
70 self._test_view(self.name, data_tokens=data_tokens) | 77 self._test_view(self.name, data_tokens=data_tokens) |
71 # publish the first three entries | 78 # publish the first three entries, ptime value is a UNIX timestamp |
72 entry_meta = self.entry_meta.copy() | 79 self._publish_entry(self.entries[0], ptime=1000) |
73 entry_meta[PTIME] = 1000 # unix timestamp | 80 self._publish_entry(self.entries[1], ptime=3000) |
74 update_item(self.entries[0]['name'], entry_meta, self.entries[0]['data'] ) | 81 self._publish_entry(self.entries[2], ptime=2000) |
75 entry_meta[PTIME] = 3000 | |
76 update_item(self.entries[1]['name'], entry_meta, self.entries[1]['data'] ) | |
77 entry_meta[PTIME] = 2000 | |
78 update_item(self.entries[2]['name'], entry_meta, self.entries[2]['data'] ) | |
79 # the blog is not empty and the 4th entry is not published | 82 # the blog is not empty and the 4th entry is not published |
80 exclude_data_tokens = [self.NO_ENTRIES_MSG, self.entries[3]['data'], ] | 83 exclude_data_tokens = [self.NO_ENTRIES_MSG, self.entries[3]['data'], ] |
81 self._test_view(self.name, exclude_data_tokens=exclude_data_tokens) | 84 self._test_view(self.name, exclude_data_tokens=exclude_data_tokens) |
82 # blog entries are published in reverse order relative to their PTIMEs | 85 # blog entries are published in reverse order relative to their PTIMEs |
83 ordered_data = [self.data, | 86 ordered_data = [self.data, |
84 self.entries[1]['data'], | 87 self.entries[1]['data'], |
85 self.entries[2]['data'], | 88 self.entries[2]['data'], |
86 self.entries[0]['data'], ] | 89 self.entries[0]['data'], ] |
87 regex = re.compile(r'{0}.*{1}.*{2}.*{3}'.format(*ordered_data), re.DOTAL L) | 90 regex = re.compile(r'{0}.*{1}.*{2}.*{3}'.format(*ordered_data), re.DOTAL L) |
88 self._test_view(self.name, regex=regex) | 91 self._test_view(self.name, regex=regex) |
89 | 92 |
90 def test_entries_acls(self): | 93 def test_entries_acls(self): |
91 item = Item.create(self.name, itemtype=ITEMTYPE_BLOG) | 94 item = Item.create(self.name, itemtype=ITEMTYPE_BLOG) |
92 item._save(self.meta, self.data, comment=self.comment) | 95 item._save(self.meta, self.data, comment=self.comment) |
93 # store some unpublished entries | 96 # store some unpublished entries |
94 for entry in self.entries: | 97 for entry in self.entries: |
95 item = Item.create(entry['name'], itemtype=ITEMTYPE_BLOG_ENTRY) | 98 item = Item.create(entry['name'], itemtype=ITEMTYPE_BLOG_ENTRY) |
96 item._save(self.entry_meta, entry['data'], comment=self.comment) | 99 item._save(self.entry_meta, entry['data'], comment=self.comment) |
97 # publish the first three entries with specific ACLs | 100 # publish the first three entries with specific ACLs |
98 entry_meta = self.entry_meta.copy() | 101 # we are an "anonymous" user |
99 entry_meta[PTIME] = 1000 # unix timestamp | 102 self._publish_entry(self.entries[0], ptime=1000, acl=u"anonymous:read") |
100 # we are "anonymous" | 103 self._publish_entry(self.entries[1], ptime=3000, acl=u"anonymous:read") |
101 entry_meta[ACL] = u"anonymous:read" | |
102 update_item(self.entries[0]['name'], entry_meta, self.entries[0]['data'] ) | |
103 entry_meta[PTIME] = 3000 | |
104 entry_meta[ACL] = u"anonymous:read" | |
105 update_item(self.entries[1]['name'], entry_meta, self.entries[1]['data'] ) | |
106 entry_meta[PTIME] = 2000 | |
107 # specify no rights on the 3rd entry | 104 # specify no rights on the 3rd entry |
108 entry_meta[ACL] = u"anonymous:" | 105 self._publish_entry(self.entries[2], ptime=2000, acl=u"anonymous:") |
109 update_item(self.entries[2]['name'], entry_meta, self.entries[2]['data'] ) | |
110 # the blog is not empty and the 3rd entry is not displayed | 106 # the blog is not empty and the 3rd entry is not displayed |
111 exclude_data_tokens = [self.NO_ENTRIES_MSG, self.entries[2]['data'], ] | 107 exclude_data_tokens = [self.NO_ENTRIES_MSG, self.entries[2]['data'], ] |
112 self._test_view(self.name, exclude_data_tokens=exclude_data_tokens) | 108 self._test_view(self.name, exclude_data_tokens=exclude_data_tokens) |
113 ordered_data = [self.data, | 109 ordered_data = [self.data, |
Reimar Bauer
2012/08/17 22:32:15
here you set the order manually. where do you get
spy
2012/08/17 23:17:00
line 102-105: I publish three entries with specifi
| |
114 self.entries[1]['data'], | 110 self.entries[1]['data'], |
115 self.entries[0]['data'], ] | 111 self.entries[0]['data'], ] |
116 regex = re.compile(r'{0}.*{1}.*{2}'.format(*ordered_data), re.DOTALL) | 112 regex = re.compile(r'{0}.*{1}.*{2}'.format(*ordered_data), re.DOTALL) |
117 self._test_view(self.name, regex=regex) | 113 self._test_view(self.name, regex=regex) |
118 | 114 |
119 | 115 |
120 class TestBlogEntry(TestView): | 116 class TestBlogEntry(TestView): |
121 blog_name = u'NewBlogItem' | 117 blog_name = u'NewBlogItem' |
122 contenttype = u'text/x.moin.wiki' | 118 contenttype = u'text/x.moin.wiki' |
123 blog_data = u"This is the header item of this blog" | 119 blog_data = u"This is the header item of this blog" |
(...skipping 18 matching lines...) Expand all Loading... | |
142 | 138 |
143 def test_do_show(self): | 139 def test_do_show(self): |
144 # create a blog item | 140 # create a blog item |
145 item = Item.create(self.blog_name, itemtype=ITEMTYPE_BLOG) | 141 item = Item.create(self.blog_name, itemtype=ITEMTYPE_BLOG) |
146 item._save(self.blog_meta, self.blog_data, comment=self.comment) | 142 item._save(self.blog_meta, self.blog_data, comment=self.comment) |
147 # create a blog entry item | 143 # create a blog entry item |
148 item = Item.create(self.entry_name, itemtype=ITEMTYPE_BLOG_ENTRY) | 144 item = Item.create(self.entry_name, itemtype=ITEMTYPE_BLOG_ENTRY) |
149 item._save(self.entry_meta, self.entry_data, comment=self.comment) | 145 item._save(self.entry_meta, self.entry_data, comment=self.comment) |
150 | 146 |
151 data_tokens = [self.blog_data, self.entry_data, ] | 147 data_tokens = [self.blog_data, self.entry_data, ] |
152 self._test_view(self.entry_name, data_tokens=data_tokens) | 148 self._test_view(self.entry_name, data_tokens=data_tokens) |
Reimar Bauer
2012/08/17 22:32:15
add the coverage_modules = ['the module which is c
spy
2012/08/17 23:17:00
py.test does not provide "-c" arg anymore, doesn't
| |
OLD | NEW |