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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
from datetime import datetime, timezone
import pytest
from flask.testing import FlaskClient
from sec_certs_page import mongo
from sec_certs_page.admin import User, hash_password
@pytest.fixture()
def admin(app):
username = "admin"
password = "password"
email = "example@example.com"
roles = ["admin"]
pwhash = hash_password(password)
user = User(
username, pwhash, email, roles, email_confirmed=True, created_at=datetime.now(timezone.utc), github_id=None
)
res = mongo.db.users.insert_one(user.dict)
yield user, password
mongo.db.users.delete_one({"_id": res.inserted_id})
@pytest.fixture()
def logged_in_client(raw_client: FlaskClient, admin, mocker):
user, password = admin
mocker.patch("flask_wtf.csrf.validate_csrf")
with raw_client:
raw_client.post(
"/user/login",
data={"username": user.username, "password": password, "remember_me": True},
follow_redirects=True,
)
yield raw_client
def test_home(logged_in_client):
resp = logged_in_client.get("/admin/")
assert resp.status_code == 200
def test_updates(logged_in_client):
resp = logged_in_client.get("/admin/updates")
assert resp.status_code == 200
def test_update(logged_in_client):
id = list(mongo.db.cc_log.find({}, {"_id": True}))[-1]["_id"]
resp = logged_in_client.get(f"/admin/update/{id}")
assert resp.status_code == 200
id = list(mongo.db.fips_log.find({}, {"_id": True}))[-1]["_id"]
resp = logged_in_client.get(f"/admin/update/{id}")
assert resp.status_code == 200
def test_update_diff(logged_in_client):
id = list(mongo.db.cc_diff.find({}, {"_id": True}))[-1]["_id"]
resp = logged_in_client.get(f"/admin/update/diff/{id}")
assert resp.status_code == 200
id = list(mongo.db.fips_diff.find({}, {"_id": True}))[-1]["_id"]
resp = logged_in_client.get(f"/admin/update/diff/{id}")
assert resp.status_code == 200
|