Browse Source

ref: upgrade mypy to 1.9 (#66718)

<!-- Describe your PR here. -->
anthony sottile 1 year ago
parent
commit
192997b915
3 changed files with 6 additions and 3 deletions
  1. 1 1
      requirements-dev-frozen.txt
  2. 1 1
      requirements-dev.txt
  3. 4 1
      src/sentry/runner/commands/sendmail.py

+ 1 - 1
requirements-dev-frozen.txt

@@ -100,7 +100,7 @@ mmh3==4.0.0
 more-itertools==8.13.0
 msgpack==1.0.7
 msgpack-types==0.2.0
-mypy==1.8.0
+mypy==1.9.0
 mypy-extensions==1.0.0
 nodeenv==1.8.0
 oauthlib==3.1.0

+ 1 - 1
requirements-dev.txt

@@ -37,7 +37,7 @@ sentry-forked-django-stubs>=4.2.7.post3
 sentry-forked-djangorestframework-stubs>=3.14.5.post1
 lxml-stubs
 msgpack-types>=0.2.0
-mypy>=1.8
+mypy>=1.9
 types-beautifulsoup4
 types-cachetools
 types-croniter

+ 4 - 1
src/sentry/runner/commands/sendmail.py

@@ -10,9 +10,12 @@ def send_prepared_email(input, fail_silently=False):
     msg = email.message_from_string(input)
     headers = {k: v for (k, v) in msg.items() if k.lower() not in ("to", "reply-to", "subject")}
     reply_to = msg.get("reply-to")
+    msg_body = msg.get_payload()
+    if not isinstance(msg_body, str):
+        raise SystemExit(f"expected a non-multipart text email but received {type(msg_body)}")
     send_mail(
         subject=msg["subject"],
-        message=msg.get_payload(),
+        message=msg_body,
         from_email=options.get("mail.from"),
         recipient_list=[msg["to"]],
         fail_silently=fail_silently,