mirror of
https://github.com/ansible-collections/community.crypto.git
synced 2026-05-07 22:03:01 +00:00
ACME exception fixes (#217)
* Fix wrong usages of ACMEProtocolException. * Add changelog fragment. * Fix error handling when content could not be decoded. * Make sure that content_json is a dict or None. * Improve acme_inspect's ACMEProtocolException handling. * Improve error handling. * Add tests. * Fix challenge error. * Add challenges tests. * Provide content if available. * Add some order tests. * Linting.
This commit is contained in:
56
tests/unit/plugins/module_utils/acme/test_orders.py
Normal file
56
tests/unit/plugins/module_utils/acme/test_orders.py
Normal file
@@ -0,0 +1,56 @@
|
||||
from __future__ import absolute_import, division, print_function
|
||||
__metaclass__ = type
|
||||
|
||||
|
||||
import pytest
|
||||
|
||||
from mock import MagicMock
|
||||
|
||||
|
||||
from ansible_collections.community.crypto.plugins.module_utils.acme.orders import (
|
||||
Order,
|
||||
)
|
||||
|
||||
from ansible_collections.community.crypto.plugins.module_utils.acme.errors import (
|
||||
ACMEProtocolException,
|
||||
ModuleFailException,
|
||||
)
|
||||
|
||||
|
||||
def test_order_from_json():
|
||||
client = MagicMock()
|
||||
|
||||
data = {
|
||||
'status': 'valid',
|
||||
'identifiers': [],
|
||||
'authorizations': [],
|
||||
}
|
||||
client.version = 2
|
||||
order = Order.from_json(client, data, 'xxx')
|
||||
assert order.data == data
|
||||
assert order.url == 'xxx'
|
||||
assert order.status == 'valid'
|
||||
assert order.identifiers == []
|
||||
assert order.finalize_uri is None
|
||||
assert order.certificate_uri is None
|
||||
assert order.authorization_uris == []
|
||||
assert order.authorizations == {}
|
||||
|
||||
|
||||
def test_wait_for_finalization_error():
|
||||
client = MagicMock()
|
||||
client.version = 2
|
||||
|
||||
data = {
|
||||
'status': 'invalid',
|
||||
'identifiers': [],
|
||||
'authorizations': [],
|
||||
}
|
||||
order = Order.from_json(client, data, 'xxx')
|
||||
|
||||
client.get_request = MagicMock(return_value=(data, {}))
|
||||
with pytest.raises(ACMEProtocolException) as exc:
|
||||
order.wait_for_finalization(client)
|
||||
|
||||
assert exc.value.msg.startswith('Failed to wait for order to complete; got status "invalid". The JSON result: ')
|
||||
assert exc.value.module_fail_args == {}
|
||||
Reference in New Issue
Block a user