本文整理汇总了Python中wiki.tests.new_document_data函数的典型用法代码示例。如果您正苦于以下问题:Python new_document_data函数的具体用法?Python new_document_data怎么用?Python new_document_data使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了new_document_data函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: test_title_slug_collision_errors
def test_title_slug_collision_errors(self):
"""When an attempt is made to retitle an article and another with that
title already exists, there should be form errors"""
client = LocalizingClient()
client.login(username='admin', password='testpass')
exist_title = "Existing doc"
exist_slug = "existing-doc"
# Create a new doc.
data = new_document_data()
data.update({ "title": exist_title, "slug": exist_slug })
resp = client.post(reverse('wiki.new_document'), data)
eq_(302, resp.status_code)
# Create another new doc.
data = new_document_data()
data.update({ "title": 'Some new title', "slug": 'some-new-title' })
response = client.post(reverse('wiki.new_document'), data)
eq_(302, resp.status_code)
# Now, post an update with duplicate slug and title
data.update({
'form': 'rev',
'title': exist_title,
'slug': exist_slug
})
resp = client.post(reverse('wiki.edit_document', args=['some-new-title']), data)
eq_(200, resp.status_code)
p = pq(resp.content)
ok_(p.find('.errorlist').length > 0)
ok_(p.find('.errorlist a[href="#id_title"]').length > 0)
ok_(p.find('.errorlist a[href="#id_slug"]').length > 0)
开发者ID:pmclanahan,项目名称:kuma,代码行数:34,代码来源:test_views.py
示例2: test_needs_change
def test_needs_change(self):
"""Test setting and unsetting the needs change flag"""
# Create a new document and edit it, setting needs_change.
comment = 'Please update for Firefix.next'
doc = revision(save=True).document
data = new_document_data()
data.update({'needs_change': True,
'needs_change_comment': comment,
'form': 'doc'})
# Verify that needs_change can't be set if the user doesn't have
# the permission.
self.client.post(reverse('wiki.edit_document', args=[doc.slug]), data)
doc = Document.uncached.get(pk=doc.pk)
assert not doc.needs_change
assert not doc.needs_change_comment
# Give the user permission, now it should work.
add_permission(self.u, Document, 'edit_needs_change')
self.client.post(reverse('wiki.edit_document', args=[doc.slug]), data)
doc = Document.uncached.get(pk=doc.pk)
assert doc.needs_change
eq_(comment, doc.needs_change_comment)
# Clear out needs_change.
data.update({'needs_change': False,
'needs_change_comment': comment})
self.client.post(reverse('wiki.edit_document', args=[doc.slug]), data)
doc = Document.uncached.get(pk=doc.pk)
assert not doc.needs_change
eq_('', doc.needs_change_comment)
开发者ID:ejean555,项目名称:kitsune,代码行数:31,代码来源:test_views.py
示例3: test_review_tags
def test_review_tags(self):
client = LocalizingClient()
client.login(username='admin', password='testpass')
data = new_document_data()
data.update({'review_tags':['editorial']})
response = client.post(reverse('wiki.new_document'), data)
doc = Document.objects.get(slug="a-test-article")
combos = (
([], 0, 0, 0, 0),
(['technical',], 1, 1, 0, 0),
(['editorial',], 0, 0, 1, 1),
(['technical', 'editorial',], 1, 1, 1, 1),
)
for tags, a, b, c, d in combos:
# Edit the page and set the tags for this test
data.update({ 'form': 'rev', 'review_tags': tags })
response = client.post(reverse('wiki.edit_document', args=[doc.slug]), data)
response = client.get(reverse('docs.views.docs'))
page = pq(response.content)
# Check for the section itself, and then the doc
eq_(a, page('div#review-technical').length)
eq_(b, page("div#review-technical ul li h4 a:contains('%s')" %
doc.title).length)
eq_(c, page('div#review-editorial').length)
eq_(d, page("div#review-editorial ul li h4 a:contains('%s')" %
doc.title).length)
开发者ID:AprilMorone,项目名称:kuma,代码行数:33,代码来源:test_views.py
示例4: test_invalid_slugs
def test_invalid_slugs(self, get_current):
"""Slugs cannot contain /."""
get_current.return_value.domain = 'testserver'
client = LocalizingClient()
client.login(username='admin', password='testpass')
data = new_document_data()
error = 'The slug provided is not valid.'
data['slug'] = 'inva/lid'
response = client.post(reverse('wiki.new_document'), data)
self.assertContains(response, error)
data['slug'] = 'no-question-marks?'
response = client.post(reverse('wiki.new_document'), data)
self.assertContains(response, error)
data['slug'] = 'no+plus'
response = client.post(reverse('wiki.new_document'), data)
self.assertContains(response, error)
data['slug'] = 'valid'
response = client.post(reverse('wiki.new_document'), data)
self.assertRedirects(response, reverse('wiki.document_revisions',
args=[data['slug']],
locale='en-US'))
开发者ID:fox2mike,项目名称:kitsune,代码行数:25,代码来源:test_views.py
示例5: test_invalid_reserved_term_slug
def test_invalid_reserved_term_slug(self):
"""Slugs should not collide with reserved URL patterns"""
client = LocalizingClient()
client.login(username='admin', password='testpass')
data = new_document_data()
# TODO: This is info derived from urls.py, but unsure how to DRY it
reserved_slugs = (
'ckeditor_config.js',
'watch-ready-for-review',
'unwatch-ready-for-review',
'watch-approved',
'unwatch-approved',
'.json',
'new',
'all',
'preview-wiki-content',
'category/10',
'needs-review/technical',
'needs-review/',
'feeds/atom/all/',
'feeds/atom/needs-review/technical',
'feeds/atom/needs-review/',
'tag/tasty-pie'
)
for term in reserved_slugs:
data['title'] = 'invalid with %s' % term
data['slug'] = term
response = client.post(reverse('wiki.new_document'), data)
self.assertContains(response, 'The slug provided is not valid.')
开发者ID:pmclanahan,项目名称:kuma,代码行数:31,代码来源:test_views.py
示例6: test_invalid_slug
def test_invalid_slug(self):
"""Slugs cannot contain "$", but can contain "/"."""
client = LocalizingClient()
client.login(username='admin', password='testpass')
data = new_document_data()
data['title'] = 'valid slug'
data['slug'] = 'valid'
response = client.post(reverse('wiki.new_document'), data)
self.assertRedirects(response, reverse('wiki.document',
args=[data['slug']],
locale='en-US'))
# Slashes should be fine
data['title'] = 'valid with slash'
data['slug'] = 'va/lid'
response = client.post(reverse('wiki.new_document'), data)
self.assertRedirects(response, reverse('wiki.document',
args=[data['slug']],
locale='en-US'))
# Dollar sign is reserved for verbs
data['title'] = 'invalid with dollars'
data['slug'] = 'inva$lid'
response = client.post(reverse('wiki.new_document'), data)
self.assertContains(response, 'The slug provided is not valid.')
# Question mark is reserved for query params
data['title'] = 'invalid with questions'
data['slug'] = 'inva?lid'
response = client.post(reverse('wiki.new_document'), data)
self.assertContains(response, 'The slug provided is not valid.')
开发者ID:pmclanahan,项目名称:kuma,代码行数:32,代码来源:test_views.py
示例7: test_redirect_can_be_clobbered
def test_redirect_can_be_clobbered(self):
"""When an attempt is made to retitle an article, and another article
with that title exists but is a redirect, there should be no errors and
the redirect should be replaced."""
client = LocalizingClient()
client.login(username='admin', password='testpass')
exist_title = "Existing doc"
exist_slug = "existing-doc"
# Create a new doc.
data = new_document_data()
data.update({ "title": exist_title, "slug": exist_slug })
resp = client.post(reverse('wiki.new_document'), data)
eq_(302, resp.status_code)
# Change title and slug
data.update({'form': 'rev',
'title': "Changed title",
'slug': "changed-title"})
resp = client.post(reverse('wiki.edit_document', args=[exist_slug]),
data)
eq_(302, resp.status_code)
# Change title and slug back to originals, clobbering the redirect
data.update({'form': 'rev',
'title': exist_title,
'slug': exist_slug})
resp = client.post(reverse('wiki.edit_document', args=["changed-title"]),
data)
eq_(302, resp.status_code)
开发者ID:pmclanahan,项目名称:kuma,代码行数:31,代码来源:test_views.py
示例8: test_changing_products
def test_changing_products(self):
"""Changing products works as expected."""
d, r = doc_rev()
data = new_document_data()
data.update({'products': ['desktop', 'sync'],
'form': 'doc'})
self.client.post(reverse('wiki.edit_document', args=[d.slug]), data)
tags_eq(d, ['desktop', 'sync'])
data.update({'products': ['mobile'],
'form': 'doc'})
self.client.post(reverse('wiki.edit_document', args=[data['slug']]),
data)
tags_eq(d, ['mobile'])
开发者ID:erikrose,项目名称:kitsune,代码行数:13,代码来源:test_views.py
示例9: test_retitling
def test_retitling(self):
"""When the title of an article is edited, a redirect is made."""
# Not testing slug changes separately; the model tests cover those plus
# slug+title changes. If title changes work in the view, the rest
# should also.
new_title = "Some New Title"
d, r = doc_rev()
old_title = d.title
data = new_document_data()
data.update({"title": new_title, "slug": d.slug, "form": "doc"})
self.client.post(reverse("wiki.edit_document", args=[d.slug]), data)
eq_(new_title, Document.uncached.get(slug=d.slug).title)
assert Document.uncached.get(title=old_title).redirect_url()
开发者ID:Apokalyptica79,项目名称:kitsune,代码行数:13,代码来源:test_views.py
示例10: test_invalid_slug
def test_invalid_slug(self):
"""Slugs cannot contain /."""
client = LocalizingClient()
client.login(username='admin', password='testpass')
data = new_document_data()
data['slug'] = 'inva/lid'
response = client.post(reverse('wiki.new_document'), data)
self.assertContains(response, 'The slug provided is not valid.')
data['slug'] = 'valid'
response = client.post(reverse('wiki.new_document'), data)
self.assertRedirects(response, reverse('wiki.document_revisions',
args=[data['slug']],
locale='en-US'))
开发者ID:fwenzel,项目名称:kitsune,代码行数:14,代码来源:test_views.py
示例11: test_changing_products
def test_changing_products(self):
"""Changing products works as expected."""
client = LocalizingClient()
client.login(username='admin', password='testpass')
d, r = doc_rev()
data = new_document_data()
data.update({'products': ['desktop', 'sync'],
'form': 'doc'})
client.post(reverse('wiki.edit_document', args=[d.slug]), data)
tags_eq(d, ['desktop', 'sync'])
data.update({'products': ['mobile'],
'form': 'doc'})
client.post(reverse('wiki.edit_document', args=[data['slug']]), data)
tags_eq(d, ['mobile'])
开发者ID:fox2mike,项目名称:kitsune,代码行数:14,代码来源:test_views.py
示例12: test_retitling_ignored_for_iframe
def test_retitling_ignored_for_iframe(self):
"""When the title of an article is edited in an iframe, the change is
ignored."""
client = LocalizingClient()
client.login(username='admin', password='testpass')
new_title = 'Some New Title'
d, r = doc_rev()
old_title = d.title
data = new_document_data()
data.update({'title': new_title,
'slug': d.slug,
'form': 'rev'})
client.post('%s?iframe=1' % reverse('wiki.edit_document', args=[d.slug]), data)
eq_(old_title, Document.uncached.get(slug=d.slug).title)
assert "REDIRECT" not in Document.uncached.get(title=old_title).html
开发者ID:pmclanahan,项目名称:kuma,代码行数:15,代码来源:test_views.py
示例13: _lock_workflow
def _lock_workflow(self, doc, edit_url):
"""This is a big end to end feature test of document locking.
This tests that when a user starts editing a page, it gets locked,
users can steal locks, and that when a user submits the edit page, the
lock is cleared.
"""
_login = lambda u: self.client.login(username=u.username, password='testpass')
assert_is_locked = lambda r: self.assertContains(r, 'id="unlock-button"')
assert_not_locked = lambda r: self.assertNotContains(r, 'id="unlock-button"')
u1 = user(save=True, password='testpass')
u2 = user(save=True, password='testpass')
# With u1, edit the document. No lock should be found.
_login(u1)
r = self.client.get(edit_url)
# Now load it again, the page should not show as being locked (since u1 has the lock)
r = self.client.get(edit_url)
assert_not_locked(r)
# With u2, edit the document. It should be locked.
_login(u2)
r = self.client.get(edit_url)
assert_is_locked(r)
# Simulate stealing the lock by clicking the button.
_document_lock_steal(doc.id, u2.username)
r = self.client.get(edit_url)
assert_not_locked(r)
# Now u1 should see the page as locked.
_login(u1)
r = self.client.get(edit_url)
assert_is_locked(r)
# Now u2 submits the page, clearing the held lock.
_login(u2)
r = self.client.post(edit_url)
data = new_document_data()
data.update({'title': doc.title, 'slug': doc.slug, 'form': 'doc'})
self.client.post(edit_url, data)
# And u1 should not see a lock warning.
_login(u1)
r = self.client.get(edit_url)
assert_not_locked(r)
开发者ID:Uwanja,项目名称:kitsune,代码行数:47,代码来源:test_views.py
示例14: test_retitling
def test_retitling(self):
"""When the title of an article is edited, a redirect is made."""
# Not testing slug changes separately; the model tests cover those plus
# slug+title changes. If title changes work in the view, the rest
# should also.
client = LocalizingClient()
client.login(username='admin', password='testpass')
new_title = 'Some New Title'
d, r = doc_rev()
old_title = d.title
data = new_document_data()
data.update({'title': new_title,
'slug': d.slug,
'form': 'doc'})
client.post(reverse('wiki.edit_document', args=[d.slug]), data)
eq_(new_title, Document.uncached.get(slug=d.slug).title)
assert Document.uncached.get(title=old_title).redirect_url()
开发者ID:fox2mike,项目名称:kitsune,代码行数:17,代码来源:test_views.py
示例15: test_changing_metadata
def test_changing_metadata(self):
"""Changing metadata works as expected."""
client = LocalizingClient()
client.login(username='admin', password='testpass')
d, r = doc_rev()
data = new_document_data()
data.update({'firefox_versions': [1, 2, 3],
'operating_systems': [1, 3],
'form': 'doc'})
client.post(reverse('wiki.edit_document', args=[d.slug]), data)
eq_(3, d.firefox_versions.count())
eq_(2, d.operating_systems.count())
data.update({'firefox_versions': [1, 2],
'operating_systems': [2],
'form': 'doc'})
client.post(reverse('wiki.edit_document', args=[data['slug']]), data)
eq_(2, d.firefox_versions.count())
eq_(1, d.operating_systems.count())
开发者ID:fwenzel,项目名称:kitsune,代码行数:18,代码来源:test_views.py
示例16: test_needs_change
def test_needs_change(self):
"""Test setting and unsetting the needs change flag"""
# Create a new document and edit it, setting needs_change.
comment = "Please update for Firefix.next"
doc = revision(save=True).document
data = new_document_data()
data.update({"needs_change": True, "needs_change_comment": comment, "form": "doc"})
self.client.post(reverse("wiki.edit_document", args=[doc.slug]), data)
doc = Document.uncached.get(pk=doc.pk)
assert doc.needs_change
eq_(comment, doc.needs_change_comment)
# Clear out needs_change
data.update({"needs_change": False, "needs_change_comment": comment})
self.client.post(reverse("wiki.edit_document", args=[doc.slug]), data)
doc = Document.uncached.get(pk=doc.pk)
assert not doc.needs_change
eq_("", doc.needs_change_comment)
开发者ID:Apokalyptica79,项目名称:kitsune,代码行数:18,代码来源:test_views.py
示例17: test_needs_change
def test_needs_change(self):
"""Test setting and unsetting the needs change flag"""
# Create a new document and edit it, setting needs_change.
comment = 'Please update for Firefix.next'
doc = revision(save=True).document
data = new_document_data()
data.update({'needs_change': True,
'needs_change_comment': comment,
'form': 'doc'})
self.client.post(reverse('wiki.edit_document', args=[doc.slug]), data)
doc = Document.uncached.get(pk=doc.pk)
assert doc.needs_change
eq_(comment, doc.needs_change_comment)
# Clear out needs_change
data.update({'needs_change': False,
'needs_change_comment': comment})
self.client.post(reverse('wiki.edit_document', args=[doc.slug]), data)
doc = Document.uncached.get(pk=doc.pk)
assert not doc.needs_change
eq_('', doc.needs_change_comment)
开发者ID:Uwanja,项目名称:kitsune,代码行数:21,代码来源:test_views.py
示例18: test_invalid_slugs
def test_invalid_slugs(self, get_current):
"""Slugs cannot contain /."""
get_current.return_value.domain = "testserver"
data = new_document_data()
error = "The slug provided is not valid."
data["slug"] = "inva/lid"
response = self.client.post(reverse("wiki.new_document"), data)
self.assertContains(response, error)
data["slug"] = "no-question-marks?"
response = self.client.post(reverse("wiki.new_document"), data)
self.assertContains(response, error)
data["slug"] = "no+plus"
response = self.client.post(reverse("wiki.new_document"), data)
self.assertContains(response, error)
data["slug"] = "valid"
response = self.client.post(reverse("wiki.new_document"), data)
self.assertRedirects(response, reverse("wiki.document_revisions", args=[data["slug"]], locale="en-US"))
开发者ID:Apokalyptica79,项目名称:kitsune,代码行数:21,代码来源:test_views.py
示例19: test_changing_products
def test_changing_products(self):
"""Changing products works as expected."""
d, r = doc_rev()
prod_desktop = product(title=u"desktop", save=True)
prod_mobile = product(title=u"mobile", save=True)
data = new_document_data()
data.update({"products": [prod_desktop.id, prod_mobile.id], "title": d.title, "slug": d.slug, "form": "doc"})
self.client.post(reverse("wiki.edit_document", args=[d.slug]), data)
eq_(
sorted(Document.uncached.get(slug=d.slug).products.values_list("id", flat=True)),
sorted([prod.id for prod in [prod_desktop, prod_mobile]]),
)
data.update({"products": [prod_desktop.id], "form": "doc"})
self.client.post(reverse("wiki.edit_document", args=[data["slug"]]), data)
eq_(
sorted(Document.uncached.get(slug=d.slug).products.values_list("id", flat=True)),
sorted([prod.id for prod in [prod_desktop]]),
)
开发者ID:Apokalyptica79,项目名称:kitsune,代码行数:21,代码来源:test_views.py
示例20: test_edit_midair_collision
def test_edit_midair_collision(self):
client = LocalizingClient()
client.login(username='admin', password='testpass')
# Post a new document.
data = new_document_data()
resp = client.post(reverse('wiki.new_document'), data)
doc = Document.objects.get(slug=data['slug'])
# Edit #1 starts...
resp = client.get(reverse('wiki.edit_document', args=[doc.slug]))
page = pq(resp.content)
rev_id1 = page.find('input[name="current_rev"]').attr('value')
# Edit #2 starts...
resp = client.get(reverse('wiki.edit_document', args=[doc.slug]))
page = pq(resp.content)
rev_id2 = page.find('input[name="current_rev"]').attr('value')
# Edit #2 submits successfully
data.update({
'form': 'rev',
'content': 'This edit got there first',
'current_rev': rev_id2
})
resp = client.post(reverse('wiki.edit_document', args=[doc.slug]), data)
eq_(302, resp.status_code)
# Edit #1 submits, but receives a mid-aired notification
data.update({
'form': 'rev',
'content': 'This edit gets mid-aired',
'current_rev': rev_id1
})
resp = client.post(reverse('wiki.edit_document', args=[doc.slug]), data)
eq_(200, resp.status_code)
ok_(unicode(MIDAIR_COLLISION).encode('utf-8') in resp.content,
"Midair collision message should appear")
开发者ID:pmclanahan,项目名称:kuma,代码行数:39,代码来源:test_views.py
注:本文中的wiki.tests.new_document_data函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论