def test_extends_views(self): with self.request_context(): self.assertEqual(web.url_for('foo:fox'), "/foo/fox") with self.request_context('/foo/fox'): self.assertEqual(web.url_for('foox'), '/foo/foox') self.assertEqual(web.url_for('.fox'), '/foo/fox') self.assertEqual(web.url_for('foo:foo'), '/foo/foo') self.assertEqual(web.url_for('foo'), '/foo/foo')
def save(name): revision = Page.by_name(name) text = request.form.get('text') note = request.form.get('note') if request.form.get('cancel') or \ revision and revision.text == text: return web.redirect(web.url_for('show', name=name)) elif not text: error = _('You cannot save empty revisions.') else: note = request.form.get('note', '') page = revision.page if revision else Page(name=name) revision = Revision(text=text, page=page, note=note) revision.save() db.commit() return web.redirect(web.url_for('show', name=name))
def revert(name): """Revert an old revision.""" rev_id = request.args.get('rev') try: rev_id = int(rev_id) except: pass old_revision = page = None error = _('No such revision') if request.method == 'POST' and request.form.get('cancel'): return web.redirect(web.url_for('show', name=page_name)) if rev_id: old_revision = Page.by_revision(rev_id) if old_revision: new_revision = Page.by_name(name) if old_revision == new_revision: error = _('You tried to revert the current active ' \ 'revision.') elif old_revision.text == new_revision.text: error = _('There are no changes between the current ' \ 'revision and the revision you want to ' \ 'restore.') else: error = '' page = old_revision.page if request.method == 'POST': note = request.form.get('note', '') note = 'revert' + (note and ': ' + note or '') revision = Revision(page=page, text=old_revision.text, note=note) revision.save() db.commit() return web.redirect(web.url_for('show', name=name)) return web.render_template('revert.html', error=error, old_revision=old_revision, revision=page )
def test_static_files(self): with self.request_context(): static_file = web.url_for('static', filename='index.html') assert static_file == '/core/static/index.html' rv = self.client.get(static_file) assert rv.status_code == 200 assert rv.data.strip() == '<h1>Hello World!</h1>' rv = self.client.get('/favicon.ico') assert rv.status_code == 200 rv = self.client.get('/robots.txt') assert rv.status_code == 200
def test_url_generation(self): with self.request_context(): assert web.url_for('response', kind="no thing", extra='test x') \ == '/response/no%20thing?extra=test+x' assert web.url_for('response', kind="no thing", extra='test x', _external=True) \ == 'http://localhost/response/no%20thing?extra=test+x' with self.request_context(): assert web.url_for('bar:urls.index') == '/bar/' assert web.url_for('bar:urls.bar') == '/bar/bar' with self.request_context(path='/bar/'): assert web.url_for('urls.bar') == '/bar/bar' assert web.url_for('.bar') == '/bar/bar'
def home(page): return web.redirect(web.url_for('show', name=page))
def next(self): return url_for(self.endpoint, page=self.page + 1)
def previous(self): return url_for(self.endpoint, page=self.page - 1)