File: test_render_pager.py

package info (click to toggle)
bootstrap-flask 2.2.0%2Bds1-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 25,396 kB
  • sloc: python: 2,218; makefile: 24
file content (39 lines) | stat: -rw-r--r-- 1,351 bytes parent folder | download | duplicates (2)
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
from flask import render_template_string, request
from flask_sqlalchemy import SQLAlchemy


def test_render_pager(app, client):
    db = SQLAlchemy(app)

    class Message(db.Model):
        id = db.Column(db.Integer, primary_key=True)

    @app.route('/pager')
    def test():
        db.drop_all()
        db.create_all()
        for i in range(100):
            msg = Message()
            db.session.add(msg)
        db.session.commit()
        page = request.args.get('page', 1, type=int)
        pagination = Message.query.paginate(page=page, per_page=10)
        messages = pagination.items
        return render_template_string('''
                        {% from 'bootstrap4/pagination.html' import render_pager %}
                        {{ render_pager(pagination) }}
                        ''', pagination=pagination, messages=messages)

    response = client.get('/pager')
    data = response.get_data(as_text=True)
    assert '<nav aria-label="Page navigation">' in data
    assert 'Previous' in data
    assert 'Next' in data
    assert '<li class="page-item disabled">' in data

    response = client.get('/pager?page=2')
    data = response.get_data(as_text=True)
    assert '<nav aria-label="Page navigation">' in data
    assert 'Previous' in data
    assert 'Next' in data
    assert '<li class="page-item disabled">' not in data