1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00
community.general/tests/integration/targets/mail/tasks/main.yml
patchback[bot] 820d067c29 [PR #7541/b8ecb167 backport][stable-7] CI: devel supports Fedora 39, and no longer Fedora 38 (#7547)
CI: devel supports Fedora 39, and no longer Fedora 38 (#7541)

* devel supports Fedora 39, and no longer Fedora 38.

* Disable 'mail' tests for Python 3.12+.

Ref: https://github.com/ansible-collections/community.general/issues/4656

* Fix setupSSLServer to work with Python 3.12.

(cherry picked from commit b8ecb1671b)

Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 3ce83dcf6a)
2024-04-28 19:22:56 +02:00

110 lines
3.4 KiB
YAML

---
####################################################################
# WARNING: These are designed specifically for Ansible tests #
# and should not be used as examples of how to write Ansible roles #
####################################################################
# Copyright (c) Ansible Project
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
# SPDX-License-Identifier: GPL-3.0-or-later
# TODO: Our current implementation does not handle SMTP authentication
- when:
# TODO: https://github.com/ansible-collections/community.general/issues/4656
- ansible_python.version.major != 3 or ansible_python.version.minor < 12
block:
# NOTE: If the system does not support smtpd-tls (python 2.6 and older) we do basic tests
- name: Attempt to install smtpd-tls
pip:
name: smtpd-tls
state: present
ignore_errors: true
register: smtpd_tls
- name: Install test smtpserver
copy:
src: '{{ item }}'
dest: '{{ remote_tmp_dir }}/{{ item }}'
loop:
- smtpserver.py
- smtpserver.crt
- smtpserver.key
# FIXME: Verify the mail after it was send would be nice
# This would require either dumping the content, or registering async task output
- name: Start test smtpserver
shell: '{{ ansible_python.executable }} {{ remote_tmp_dir }}/smtpserver.py 10025:10465'
async: 45
poll: 0
register: smtpserver
- name: Send a basic test-mail
mail:
port: 10025
subject: Test mail 1 (smtp)
secure: never
- name: Send a test-mail with body and specific recipient
mail:
port: 10025
from: ansible@localhost
to: root@localhost
subject: Test mail 2 (smtp + body)
body: Test body 2
secure: never
- name: Send a test-mail with attachment
mail:
port: 10025
from: ansible@localhost
to: root@localhost
subject: Test mail 3 (smtp + body + attachment)
body: Test body 3
attach: /etc/group
secure: never
# NOTE: This might fail if smtpd-tls is missing or python 2.7.8 or older is used
- name: Send a test-mail using starttls
mail:
port: 10025
from: ansible@localhost
to: root@localhost
subject: Test mail 4 (smtp + starttls + body + attachment)
body: Test body 4
attach: /etc/group
secure: starttls
ignore_errors: true
register: starttls_support
# NOTE: This might fail if smtpd-tls is missing or python 2.7.8 or older is used
- name: Send a test-mail using TLS
mail:
port: 10465
from: ansible@localhost
to: root@localhost
subject: Test mail 5 (smtp + tls + body + attachment)
body: Test body 5
attach: /etc/group
secure: always
ignore_errors: true
register: tls_support
- fail:
msg: Sending mail using starttls failed.
when: smtpd_tls is succeeded and starttls_support is failed and tls_support is succeeded
- fail:
msg: Send mail using TLS failed.
when: smtpd_tls is succeeded and tls_support is failed and starttls_support is succeeded
- name: Send a test-mail with body, specific recipient and specific ehlohost
mail:
port: 10025
ehlohost: some.domain.tld
from: ansible@localhost
to: root@localhost
subject: Test mail 6 (smtp + body + ehlohost)
body: Test body 6
secure: never