forked from Github-Mirrors/canaille
tests: fix GHA
For some reasons, webp mimetypes failed to be guessed on GHA.
This commit is contained in:
parent
444e6b135c
commit
ebcaaeaded
4 changed files with 23 additions and 17 deletions
4
.github/workflows/tests.yaml
vendored
4
.github/workflows/tests.yaml
vendored
|
@ -42,7 +42,7 @@ jobs:
|
||||||
export TZ=UTC
|
export TZ=UTC
|
||||||
poetry --version
|
poetry --version
|
||||||
poetry install --extras all
|
poetry install --extras all
|
||||||
poetry run pytest -x
|
poetry run pytest --showlocals
|
||||||
minversions:
|
minversions:
|
||||||
name: minimum dependency versions
|
name: minimum dependency versions
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
@ -70,7 +70,7 @@ jobs:
|
||||||
poetry --version
|
poetry --version
|
||||||
poetry lock
|
poetry lock
|
||||||
poetry install --extras all
|
poetry install --extras all
|
||||||
poetry run pytest
|
poetry run pytest --showlocals
|
||||||
style:
|
style:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
|
|
|
@ -38,6 +38,16 @@ def logo():
|
||||||
return logo_cid, logo_filename, logo_raw
|
return logo_cid, logo_filename, logo_raw
|
||||||
|
|
||||||
|
|
||||||
|
def type_from_filename(filename):
|
||||||
|
filetype = mimetypes.guess_type(filename)
|
||||||
|
if not filetype or not filetype[0]: # pragma: no cover
|
||||||
|
# For some reasons GHA fails to guess webp mimetypes
|
||||||
|
return "application", "octet-stream"
|
||||||
|
|
||||||
|
maintype, subtype = filetype[0].split("/")
|
||||||
|
return maintype, subtype
|
||||||
|
|
||||||
|
|
||||||
def send_email(subject, recipient, text, html, attachements=None):
|
def send_email(subject, recipient, text, html, attachements=None):
|
||||||
current_app.logger.debug(f"Sending a mail to {recipient}: {subject}")
|
current_app.logger.debug(f"Sending a mail to {recipient}: {subject}")
|
||||||
msg = email.message.EmailMessage()
|
msg = email.message.EmailMessage()
|
||||||
|
@ -58,11 +68,7 @@ def send_email(subject, recipient, text, html, attachements=None):
|
||||||
|
|
||||||
attachements = attachements or []
|
attachements = attachements or []
|
||||||
for cid, filename, value in attachements:
|
for cid, filename, value in attachements:
|
||||||
filetype = mimetypes.guess_type(filename)
|
maintype, subtype = type_from_filename(filename)
|
||||||
if not filetype or not filetype[0]: # pragma: no cover
|
|
||||||
continue
|
|
||||||
|
|
||||||
maintype, subtype = filetype[0].split("/")
|
|
||||||
msg.get_payload()[1].add_related(
|
msg.get_payload()[1].add_related(
|
||||||
value, maintype=maintype, subtype=subtype, cid=cid
|
value, maintype=maintype, subtype=subtype, cid=cid
|
||||||
)
|
)
|
||||||
|
|
|
@ -39,9 +39,9 @@ def mail_index(user):
|
||||||
form = MailTestForm(request.form or None)
|
form = MailTestForm(request.form or None)
|
||||||
if request.form and form.validate():
|
if request.form and form.validate():
|
||||||
if send_test_mail(form.email.data):
|
if send_test_mail(form.email.data):
|
||||||
flash(_("The test invitation mail has been sent correctly"), "success")
|
flash(_("The test mail has been sent correctly"), "success")
|
||||||
else:
|
else:
|
||||||
flash(_("The test invitation mail has not been sent correctly"), "error")
|
flash(_("The test mail has not been sent correctly"), "error")
|
||||||
|
|
||||||
return render_template("mails/admin.html", form=form, menuitem="admin")
|
return render_template("mails/admin.html", form=form, menuitem="admin")
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@ def test_send_test_email(testclient, logged_admin, smtpd):
|
||||||
res = res.form.submit()
|
res = res.form.submit()
|
||||||
assert (
|
assert (
|
||||||
"success",
|
"success",
|
||||||
"The test invitation mail has been sent correctly",
|
"The test mail has been sent correctly",
|
||||||
) in res.flashes
|
) in res.flashes
|
||||||
|
|
||||||
assert len(smtpd.messages) == 1
|
assert len(smtpd.messages) == 1
|
||||||
|
@ -45,7 +45,7 @@ def test_send_test_email_ssl(testclient, logged_admin, smtpd):
|
||||||
res = res.form.submit()
|
res = res.form.submit()
|
||||||
assert (
|
assert (
|
||||||
"success",
|
"success",
|
||||||
"The test invitation mail has been sent correctly",
|
"The test mail has been sent correctly",
|
||||||
) in res.flashes
|
) in res.flashes
|
||||||
|
|
||||||
assert len(smtpd.messages) == 1
|
assert len(smtpd.messages) == 1
|
||||||
|
@ -62,7 +62,7 @@ def test_send_test_email_without_credentials(testclient, logged_admin, smtpd):
|
||||||
res = res.form.submit()
|
res = res.form.submit()
|
||||||
assert (
|
assert (
|
||||||
"success",
|
"success",
|
||||||
"The test invitation mail has been sent correctly",
|
"The test mail has been sent correctly",
|
||||||
) in res.flashes
|
) in res.flashes
|
||||||
|
|
||||||
assert len(smtpd.messages) == 1
|
assert len(smtpd.messages) == 1
|
||||||
|
@ -80,7 +80,7 @@ def test_send_test_email_recipient_refused(SMTP, testclient, logged_admin, smtpd
|
||||||
res = res.form.submit()
|
res = res.form.submit()
|
||||||
assert (
|
assert (
|
||||||
"success",
|
"success",
|
||||||
"The test invitation mail has been sent correctly",
|
"The test mail has been sent correctly",
|
||||||
) in res.flashes
|
) in res.flashes
|
||||||
|
|
||||||
assert len(smtpd.messages) == 0
|
assert len(smtpd.messages) == 0
|
||||||
|
@ -94,7 +94,7 @@ def test_send_test_email_failed(testclient, logged_admin):
|
||||||
res = res.form.submit(expect_errors=True)
|
res = res.form.submit(expect_errors=True)
|
||||||
assert (
|
assert (
|
||||||
"error",
|
"error",
|
||||||
"The test invitation mail has not been sent correctly",
|
"The test mail has not been sent correctly",
|
||||||
) in res.flashes
|
) in res.flashes
|
||||||
|
|
||||||
|
|
||||||
|
@ -107,7 +107,7 @@ def test_mail_with_default_no_logo(testclient, logged_admin, smtpd):
|
||||||
res = res.form.submit()
|
res = res.form.submit()
|
||||||
assert (
|
assert (
|
||||||
"success",
|
"success",
|
||||||
"The test invitation mail has been sent correctly",
|
"The test mail has been sent correctly",
|
||||||
) in res.flashes
|
) in res.flashes
|
||||||
|
|
||||||
assert len(smtpd.messages) == 1
|
assert len(smtpd.messages) == 1
|
||||||
|
@ -129,7 +129,7 @@ def test_mail_with_default_logo(testclient, logged_admin, smtpd, httpserver):
|
||||||
res = res.form.submit()
|
res = res.form.submit()
|
||||||
assert (
|
assert (
|
||||||
"success",
|
"success",
|
||||||
"The test invitation mail has been sent correctly",
|
"The test mail has been sent correctly",
|
||||||
) in res.flashes
|
) in res.flashes
|
||||||
|
|
||||||
assert len(smtpd.messages) == 1
|
assert len(smtpd.messages) == 1
|
||||||
|
@ -157,7 +157,7 @@ def test_mail_with_logo_in_http(testclient, logged_admin, smtpd, httpserver):
|
||||||
res = res.form.submit()
|
res = res.form.submit()
|
||||||
assert (
|
assert (
|
||||||
"success",
|
"success",
|
||||||
"The test invitation mail has been sent correctly",
|
"The test mail has been sent correctly",
|
||||||
) in res.flashes
|
) in res.flashes
|
||||||
|
|
||||||
assert len(smtpd.messages) == 1
|
assert len(smtpd.messages) == 1
|
||||||
|
|
Loading…
Reference in a new issue