summaryrefslogtreecommitdiff
path: root/tests/user_commands/utils.py
blob: 84f6bdbc5c2c6bacd1290f513e81dbed3a8b0d45 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
from io import StringIO
from unittest import mock


class AssertFormatterFailureCaughtContext:

    def __init__(self, test, shutil_which_result="nonexistent"):
        self.stdout = StringIO()
        self.stderr = StringIO()
        self.test = test
        self.shutil_which_result = shutil_which_result

    def __enter__(self):
        self.mocker = mock.patch(
            "django.core.management.utils.shutil.which",
            return_value=self.shutil_which_result,
        )
        self.mocker.start()
        return self

    def __exit__(self, exc_type, exc_value, traceback):
        self.mocker.stop()
        self.test.assertIn("Formatters failed to launch", self.stderr.getvalue())