def test_rest_successful_sign(mock_request, mock_fail, mock_exit): mock_exit.side_effect = exit_json mock_fail.side_effect = fail_json mock_request.side_effect = [ SRR['is_rest'], SRR['get_uuid'], # get certificate -> found SRR['empty_good'], SRR['end_of_sequence'] ] data = {'vserver': 'abc', 'signing_request': 'CSR'} data.update(set_default_args()) set_module_args(data) my_obj = my_module() with pytest.raises(AnsibleExitJson) as exc: my_obj.apply() assert exc.value.args[0]['changed']
def test_rest_successful_create(mock_request, mock_fail, mock_exit): mock_exit.side_effect = exit_json mock_fail.side_effect = fail_json mock_request.side_effect = [ SRR['is_rest'], SRR['empty_records'], # get certificate -> not found SRR['empty_good'], SRR['end_of_sequence'] ] data = {'type': 'client_ca', 'vserver': 'abc', 'common_name': 'cname'} data.update(set_default_args()) set_module_args(data) my_obj = my_module() with pytest.raises(AnsibleExitJson) as exc: my_obj.apply() assert exc.value.args[0]['changed']
def test_rest_failed_sign_missing_ca(mock_request, mock_fail, mock_exit): mock_exit.side_effect = exit_json mock_fail.side_effect = fail_json mock_request.side_effect = [ SRR['is_rest'], SRR['empty_records'], # get certificate -> not found SRR['empty_good'], SRR['end_of_sequence'] ] data = {'vserver': 'abc', 'signing_request': 'CSR'} data.update(set_default_args()) set_module_args(data) my_obj = my_module() with pytest.raises(AnsibleFailJson) as exc: my_obj.apply() msg = "signing certificate with name '%s' not found on svm: %s" % ( data['name'], data['vserver']) assert exc.value.args[0]['msg'] == msg
def test_rest_idempotent_delete(mock_request, mock_fail, mock_exit): mock_exit.side_effect = exit_json mock_fail.side_effect = fail_json mock_request.side_effect = [ SRR['is_rest'], SRR['empty_records'], # get certificate -> not found SRR['empty_good'], SRR['end_of_sequence'] ] data = { 'state': 'absent', } data.update(set_default_args()) set_module_args(data) my_obj = my_module() with pytest.raises(AnsibleExitJson) as exc: my_obj.apply() assert not exc.value.args[0]['changed']
def test_rest_create_failed(mock_request, mock_fail, mock_exit): mock_exit.side_effect = exit_json mock_fail.side_effect = fail_json mock_request.side_effect = [ SRR['is_rest'], SRR['empty_records'], # get certificate -> not found SRR['empty_good'], SRR['end_of_sequence'] ] data = { 'type': 'client_ca', 'vserver': 'abc', } data.update(set_default_args()) set_module_args(data) my_obj = my_module() with pytest.raises(AnsibleFailJson) as exc: my_obj.apply() msg = 'Error creating or installing certificate: one or more of the following options are missing:' assert exc.value.args[0]['msg'].startswith(msg)
def test_rest_cannot_ignore_name_error_no_common_name(mock_request, mock_fail, mock_exit): mock_exit.side_effect = exit_json mock_fail.side_effect = fail_json mock_request.side_effect = [ SRR['is_rest'], SRR['error_unexpected_name'], # get certificate -> error SRR['end_of_sequence'] ] data = { 'vserver': 'abc', 'signing_request': 'CSR', 'state': 'absent', } data.update(set_default_args()) set_module_args(data) my_obj = my_module() with pytest.raises(AnsibleFailJson) as exc: my_obj.apply() assert exc.value.args[0]['msg'] == NAME_ERROR
def test_rest_ignore_name_error(mock_request, mock_fail, mock_exit): mock_exit.side_effect = exit_json mock_fail.side_effect = fail_json mock_request.side_effect = [ SRR['is_rest'], SRR['error_unexpected_name'], # get certificate -> error SRR['get_uuid'], # get certificate -> found SRR['end_of_sequence'] ] data = { 'vserver': 'abc', 'signing_request': 'CSR', 'state': 'absent', 'common_name': 'common_name', 'type': 'root_ca' } data.update(set_default_args()) set_module_args(data) my_obj = my_module() with pytest.raises(AnsibleFailJson) as exc: my_obj.apply() msg = "'signing_request' is not supported with 'state' set to 'absent'" assert exc.value.args[0]['msg'] == msg
def test_rest_failed_on_name(mock_request, mock_fail, mock_exit): mock_exit.side_effect = exit_json mock_fail.side_effect = fail_json mock_request.side_effect = [ SRR['is_rest'], SRR['error_unexpected_name'], # get certificate -> error SRR['end_of_sequence'] ] data = { 'vserver': 'abc', 'signing_request': 'CSR', 'state': 'absent', 'ignore_name_if_not_supported': False, 'common_name': 'common_name', 'type': 'root_ca' } data.update(set_default_args()) set_module_args(data) my_obj = my_module() with pytest.raises(AnsibleFailJson) as exc: my_obj.apply() msg = "ONTAP 9.6 and 9.7 do not support 'name'. Use 'common_name' and 'type' as a work-around." assert exc.value.args[0]['msg'] == msg