Beispiel #1
0
    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')
Beispiel #2
0
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))
Beispiel #3
0
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
    )
Beispiel #4
0
 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
Beispiel #5
0
    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'
Beispiel #6
0
def home(page):
    return web.redirect(web.url_for('show', name=page))
Beispiel #7
0
 def next(self):
     return url_for(self.endpoint, page=self.page + 1)
Beispiel #8
0
 def previous(self):
     return url_for(self.endpoint, page=self.page - 1)