Revize fb987403
Přidáno uživatelem Michal Seják před asi 4 roky(ů)
app.py | ||
---|---|---|
20 | 20 |
return CertController.get_certificate_list() |
21 | 21 |
|
22 | 22 |
|
23 |
@app.route('/api/certificates/<id>', methods=["GET"]) |
|
24 |
def get_cert(id): |
|
25 |
return CertController.get_certificate_by_id(id) |
|
26 |
|
|
27 |
|
|
23 | 28 |
if __name__ == '__main__': |
24 | 29 |
host = "0.0.0.0" |
25 | 30 |
port = 5000 |
src/controllers/certificates_controller.py | ||
---|---|---|
156 | 156 |
""" |
157 | 157 |
CertController.setup() # TODO remove after issue fixed |
158 | 158 |
|
159 |
if connexion.request.is_json: |
|
160 |
id = IdParameter.from_dict(connexion.request.get_json()) # noqa: E501 |
|
161 |
return 'do some magic!' |
|
159 |
try: |
|
160 |
v = int(id) |
|
161 |
except ValueError: |
|
162 |
return E_WRONG_PARAMETERS, 400 |
|
163 |
|
|
164 |
cert = CERTIFICATE_SERVICE.get_certificate(v) |
|
165 |
|
|
166 |
if cert is None: |
|
167 |
return E_NO_CERTIFICATES_FOUND, 205 # TODO related to 204 issue |
|
168 |
else: |
|
169 |
return {"success": True, "data": cert.pem_data} |
|
162 | 170 |
|
163 | 171 |
@staticmethod |
164 | 172 |
def get_certificate_details_by_id(id): # noqa: E501 |
... | ... | |
217 | 225 |
if certs is None: |
218 | 226 |
return E_GENERAL_ERROR, 500 |
219 | 227 |
elif len(certs) == 0: |
220 |
return E_NO_CERTIFICATES_FOUND, 204
|
|
228 |
return E_NO_CERTIFICATES_FOUND, 205 # TODO related to 204 issue
|
|
221 | 229 |
else: |
222 | 230 |
ret = [] |
223 | 231 |
for c in certs: |
tests/unit_tests/rest_api/certificates.py | ||
---|---|---|
120 | 120 |
assert not d["success"] |
121 | 121 |
|
122 | 122 |
|
123 |
def test_invalid_params_4(server): |
|
124 |
ret = server.post("/api/certificates", content_type="application/json", json={ |
|
125 |
"CA": 80081358008135, |
|
126 |
"subject": { |
|
127 |
"C": "CZ", |
|
128 |
"CN": "Root CA s.r.o.", |
|
129 |
"L": "Pilsen", |
|
130 |
"O": "Root CA s.r.o.", |
|
131 |
"OU": "IT department", |
|
132 |
"ST": "Pilsen", |
|
133 |
"emailAddress": "root@ca.com" |
|
134 |
}, |
|
135 |
"usage": { |
|
136 |
"CA": True, |
|
137 |
"SSL": True, |
|
138 |
"authentication": True, |
|
139 |
"digitalSignature": True |
|
140 |
}, |
|
141 |
"validityDays": 30 |
|
142 |
}) |
|
143 |
|
|
144 |
assert ret.status_code == 400 |
|
145 |
|
|
146 |
d = ret.json |
|
147 |
|
|
148 |
assert "data" in d |
|
149 |
assert d["data"] == "No certificate authority with such unique ID exists." |
|
150 |
assert "success" in d |
|
151 |
assert not d["success"] |
|
152 |
|
|
153 |
|
|
123 | 154 |
def test_root_inter_ca(server): |
124 | 155 |
ret = server.post("/api/certificates", content_type="application/json", json={ |
125 | 156 |
"subject": { |
... | ... | |
305 | 336 |
|
306 | 337 |
assert d[0]['issuer']['id'] == 1 |
307 | 338 |
assert d[1]['issuer']['id'] == 2 |
308 |
assert d[2]['issuer']['id'] == 2 |
|
339 |
assert d[2]['issuer']['id'] == 2 |
|
340 |
|
|
341 |
|
|
342 |
def test_get_one(server): |
|
343 |
ret = server.get("/api/certificates/1") |
|
344 |
|
|
345 |
assert ret.status_code == 200 |
|
346 |
|
|
347 |
assert "data" in ret.json |
|
348 |
assert "success" in ret.json |
|
349 |
assert ret.json["success"] |
|
350 |
|
|
351 |
d = ret.json["data"] |
|
352 |
|
|
353 |
assert str(d).startswith("-----BEGIN CERTIFICATE-----") |
|
354 |
|
|
355 |
|
|
356 |
def test_get_one_bad_param(server): |
|
357 |
ret = server.get("/api/certificates/whoopsie") |
|
358 |
|
|
359 |
assert ret.status_code == 400 |
|
360 |
assert "data" in ret.json |
|
361 |
assert "success" in ret.json |
|
362 |
assert not ret.json["success"] |
|
363 |
assert ret.json["data"] == "Invalid request, wrong parameters." |
|
364 |
|
|
365 |
|
|
366 |
def test_get_one_bad_param_2(server): |
|
367 |
ret = server.get("/api/certificates/805") |
|
368 |
|
|
369 |
assert ret.status_code == 205 |
|
370 |
assert "data" in ret.json |
|
371 |
assert "success" in ret.json |
|
372 |
assert not ret.json["success"] |
|
373 |
assert ret.json["data"] == "No certificates found." |
Také k dispozici: Unified diff
Re #8476 - Added and tested `get_certificate(id)`.