66 lines
2.5 KiB
Python
66 lines
2.5 KiB
Python
import teal.marshmallow
|
|
from ereuse_utils.test import ANY
|
|
|
|
from ereuse_devicehub.client import Client, UserClient
|
|
from ereuse_devicehub.resources.action import models as e
|
|
from ereuse_devicehub.resources.documents import documents as docs
|
|
from tests.conftest import file
|
|
|
|
|
|
def test_erasure_certificate_public_one(user: UserClient, client: Client):
|
|
"""Public user can get certificate from one device as HTML or PDF."""
|
|
s = file('erase-sectors.snapshot')
|
|
snapshot, _ = user.post(s, res=e.Snapshot)
|
|
|
|
doc, response = client.get(res=docs.DocumentDef.t,
|
|
item='erasures/{}'.format(snapshot['device']['id']),
|
|
accept=ANY)
|
|
assert 'html' in response.content_type
|
|
assert '<html' in doc
|
|
assert '2018' in doc
|
|
|
|
doc, response = client.get(res=docs.DocumentDef.t,
|
|
item='erasures/{}'.format(snapshot['device']['id']),
|
|
query=[('format', 'PDF')],
|
|
accept='application/pdf')
|
|
assert 'application/pdf' == response.content_type
|
|
|
|
erasure = next(e for e in snapshot['actions'] if e['type'] == 'EraseSectors')
|
|
|
|
doc, response = client.get(res=docs.DocumentDef.t,
|
|
item='erasures/{}'.format(erasure['id']),
|
|
accept=ANY)
|
|
assert 'html' in response.content_type
|
|
assert '<html' in doc
|
|
assert '2018' in doc
|
|
|
|
|
|
def test_erasure_certificate_private_query(user: UserClient):
|
|
"""Logged-in user can get certificates using queries as HTML and
|
|
PDF.
|
|
"""
|
|
s = file('erase-sectors.snapshot')
|
|
snapshot, response = user.post(s, res=e.Snapshot)
|
|
|
|
doc, response = user.get(res=docs.DocumentDef.t,
|
|
item='erasures/',
|
|
query=[('filter', {'id': [snapshot['device']['id']]})],
|
|
accept=ANY)
|
|
assert 'html' in response.content_type
|
|
assert '<html' in doc
|
|
assert '2018' in doc
|
|
|
|
doc, response = user.get(res=docs.DocumentDef.t,
|
|
item='erasures/',
|
|
query=[
|
|
('filter', {'id': [snapshot['device']['id']]}),
|
|
('format', 'PDF')
|
|
],
|
|
accept='application/pdf')
|
|
assert 'application/pdf' == response.content_type
|
|
|
|
|
|
def test_erasure_certificate_wrong_id(client: Client):
|
|
client.get(res=docs.DocumentDef.t, item='erasures/this-is-not-an-id',
|
|
status=teal.marshmallow.ValidationError)
|