blob: e722185051cce46c8a69bcab8395226090e444a3 (
plain) (
blame)
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
from urllib.parse import quote
import pytest
from flask.testing import FlaskClient
@pytest.mark.remote
def test_index(client: FlaskClient):
resp = client.get("/pp/")
assert resp.status_code == 200
@pytest.mark.remote
def test_network(client: FlaskClient):
resp = client.get("/pp/network/")
assert resp.status_code == 200
@pytest.mark.remote
def test_analysis(client: FlaskClient):
resp = client.get("/pp/analysis/")
assert resp.status_code == 200
@pytest.mark.remote
def test_search_basic(client: FlaskClient):
pp_id = quote("ANSSI-CC-PP-2018/03", safe="")
pp_name = "ANSSI-CC-PP-2018/03 « PC Client Specific TPM » (TPM Library specification Family “2.0”, Level 0)"
resp = client.get(f"/pp/mergedsearch/?searchType=by-name&q={pp_id}&cat=abcdefghijklmop&status=any&sort=match")
assert resp.status_code == 200
assert pp_name in resp.data.decode()
resp = client.get(f"/pp/mergedsearch/?searchType=by-name&q={pp_id}&cat=abcdefghijklmop&status=archived&sort=match")
assert resp.status_code == 200
assert pp_name not in resp.data.decode()
@pytest.mark.remote
def test_search_bad(client: FlaskClient):
resp = client.get("/pp/mergedsearch/?searchType=by-name&q=aaa&page=bad")
assert resp.status_code == 400
resp = client.get("/pp/mergedsearch/?searchType=by-name&q=aaa&page=1&sort=bad")
assert resp.status_code == 400
resp = client.get("/pp/mergedsearch/?searchType=by-name&q=aaa&page=1&status=bad")
assert resp.status_code == 400
@pytest.mark.remote
def test_fulltext_search(client: FlaskClient):
resp = client.get(
"/pp/mergedsearch/?searchType=fulltext&q=hardcoded&page=1&cat=abcdefghijklmop&status=any&type=report"
)
assert resp.status_code == 200
resp = client.get("/pp/mergedsearch/?searchType=fulltext&q=hardcoded&page=1&status=active&type=report")
assert resp.status_code == 200
@pytest.mark.remote
def test_random(client: FlaskClient):
for _ in range(100):
resp = client.get("/pp/random/", follow_redirects=True)
assert resp.status_code == 200
@pytest.mark.remote
def test_entry(client: FlaskClient):
hashid = "7b81fd67c02d34de"
# cert_id = "ANSSI-CC-PP-2010-04"
hid_resp = client.get(f"/pp/{hashid}/", follow_redirects=True)
assert hid_resp.status_code == 200
# cid_resp = client.get(f"/pp/id/{cert_id}", follow_redirects=True)
# assert cid_resp.status_code == 200
# assert len(cid_resp.history) == 1
# assert cid_resp.history[0].location.endswith(f"/pp/{hashid}/")
profile_resp = client.get(f"/pp/{hashid}/profile.json")
assert profile_resp.status_code == 200
assert profile_resp.is_json
@pytest.mark.remote
def test_entry_name_disambiguation(client: FlaskClient):
name = "Card Operating System Generation 2"
name_resp = client.get(f"/pp/name/{name}", follow_redirects=True)
assert name_resp.data.count(name.encode()) == 4
|