Тест почты Django не работает в действиях GitHub

Я пытаюсь выяснить, почему мой почтовый тест не работает при запуске в GitHub Actions, но работает успешно, когда я запускаю его локально.

Согласно документации Django, программа запуска тестов использует бэкэнд в памяти для электронной почты, поэтому она не должна полагаться на SMTP-соединение.

https://docs.djangoproject.com/en/3.2/topics/email/#in-memory-backend

views.py

class ContactApiView(View):
    def post(self, request):
        name = request.POST.get('name')
        email = request.POST.get('email')
        message = request.POST.get('message')

        if not name or not email or not message:
            return HttpResponseBadRequest('ERROR: All fields are required')

        body = 'Name: {}\nE-mail: {}\n\nMessage: {}.format(name, email, message)

        email = EmailMessage(
            'Contact Form Submission',
            body,
            settings.EMAIL_HOST_USER,
            [settings.EMAIL_HOST_USER],
            None,
            reply_to=[email]
        )

        email.send()

        return HttpResponse(status=200)

tests.py (работает локально, не работает в GitHub Actions)

.
class ContactApiViewTestCase(TestCase):
    def setUp(self):
        self.client = Client()
        self.viewname = 'contact_api'

    def test_happy_path(self):
        request_body = {
            'name': 'John Doe',
            'email': 'test@example.com',
            'message': 'Hello world'
        }

        response = self.client.post(path=reverse(self.viewname), data=request_body)
        self.assertEquals(response.status_code, http.HTTPStatus.OK)
        self.assertEqual(len(mail.outbox), 1)
        self.assertEqual(mail.outbox[0].subject, 'Contact Form Submission')

Ошибка действий GitHub

======================================================================
FAIL: test_happy_path (app.tests.ContactApiViewTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/runner/work/repo/project/app/tests.py", line 137, in test_happy_path
    self.assertEqual(len(mail.outbox), 1)
AssertionError: 0 != 1

GitHub Действия django.yml

name: Django CI

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  build:

    runs-on: ubuntu-latest
    strategy:
      max-parallel: 4
      matrix:
        python-version: [3.9]

    steps:
    - uses: actions/checkout@v2
    - name: Set up Python ${{ matrix.python-version }}
      uses: actions/setup-python@v2
      with:
        python-version: ${{ matrix.python-version }}
    - name: Install Dependencies
      run: |
        python -m pip install --upgrade pip
        pip install -r requirements.txt
    - name: Run Tests
      env: 
        DJANGO_SECRET_KEY: secret
      run: |
        python manage.py test
Вернуться на верх