|
17 | 17 | FLASK_TESTER_AUTH=",".join(f"{l}:{p}" for l, p in app.PASSES.items()),
|
18 | 18 | )
|
19 | 19 |
|
20 |
| -# must provide url or package of Flask application to test |
21 |
| -assert "FLASK_TESTER_URL" in os.environ or "FLASK_TESTER_APP" in os.environ |
| 20 | +def test_sanity(): |
| 21 | + # must provide url or package of Flask application to test |
| 22 | + assert "FLASK_TESTER_URL" in os.environ or "FLASK_TESTER_APP" in os.environ |
| 23 | + |
| 24 | +# example from README.md |
| 25 | +@pytest.fixture |
| 26 | +def app(ft_client): |
| 27 | + # add test passwords for Calvin and Hobbes (must be consistent with app!) |
| 28 | + ft_client.setPass("calvin", "clv-pass") |
| 29 | + ft_client.setPass("hobbes", "hbs-pass") |
| 30 | + # get Calvin's token, assume json result {"token": "<token-value>"} |
| 31 | + res = ft_client.get("/token", login="calvin", auth="basic", status=200) |
| 32 | + assert res.is_json |
| 33 | + ft_client.setToken("calvin", res.json["token"]) |
| 34 | + # return working client |
| 35 | + yield ft_client |
| 36 | + |
| 37 | +def test_app(app): |
| 38 | + app.get("/admin", login="calvin", auth="bearer", status=200) |
| 39 | + app.get("/admin", login="calvin", auth="basic", status=200) |
| 40 | + res = app.get("/admin", login="hobbes", auth="basic", status=403) |
| 41 | + assert 'not in group "ADMIN"' in res.text |
22 | 42 |
|
23 | 43 | @pytest.fixture
|
24 | 44 | def api(ft_client):
|
@@ -58,13 +78,6 @@ def api(ft_client):
|
58 | 78 | # add a bad password
|
59 | 79 | yield ft_client
|
60 | 80 |
|
61 |
| -def test_app(api): |
62 |
| - """Test example from README.""" |
63 |
| - api.get("/admin", login="calvin", auth="bearer", status=200) |
64 |
| - api.get("/admin", login="calvin", auth="basic", status=200) |
65 |
| - res = api.get("/admin", login="hobbes", auth="basic", status=403) |
66 |
| - assert 'not in group "ADMIN"' in res.text |
67 |
| - |
68 | 81 | def test_admin(api):
|
69 | 82 | # check authentication schemes
|
70 | 83 | for auth in (None, "basic", "param", "bearer"):
|
|
0 commit comments