From 9e565386d3fafc8cc15d07095e50d574e5f53802 Mon Sep 17 00:00:00 2001 From: Baptiste Mispelon Date: Sat, 30 Nov 2019 22:10:16 +0100 Subject: Fixed #27430 -- Added -b/--buffer option to DiscoverRunner. --- tests/test_runner/test_discover_runner.py | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) (limited to 'tests/test_runner') diff --git a/tests/test_runner/test_discover_runner.py b/tests/test_runner/test_discover_runner.py index 2334fe6b7f..186dc52a44 100644 --- a/tests/test_runner/test_discover_runner.py +++ b/tests/test_runner/test_discover_runner.py @@ -6,7 +6,7 @@ from unittest import TestSuite, TextTestRunner, defaultTestLoader, skipUnless from django.db import connections from django.test import SimpleTestCase from django.test.runner import DiscoverRunner -from django.test.utils import captured_stdout +from django.test.utils import captured_stderr, captured_stdout from django.utils.version import PY37 @@ -269,6 +269,34 @@ class DiscoverRunnerTests(SimpleTestCase): with self.assertRaisesMessage(ValueError, msg): DiscoverRunner(pdb=True, parallel=2) + def test_buffer_with_parallel(self): + msg = ( + 'You cannot use -b/--buffer with parallel tests; pass ' + '--parallel=1 to use it.' + ) + with self.assertRaisesMessage(ValueError, msg): + DiscoverRunner(buffer=True, parallel=2) + + def test_buffer_mode_test_pass(self): + runner = DiscoverRunner(buffer=True, verbose=0) + with captured_stdout() as stdout, captured_stderr() as stderr: + suite = runner.build_suite([ + 'test_runner_apps.buffer.tests_buffer.WriteToStdoutStderrTestCase.test_pass', + ]) + runner.run_suite(suite) + self.assertNotIn('Write to stderr.', stderr.getvalue()) + self.assertNotIn('Write to stdout.', stdout.getvalue()) + + def test_buffer_mode_test_fail(self): + runner = DiscoverRunner(buffer=True, verbose=0) + with captured_stdout() as stdout, captured_stderr() as stderr: + suite = runner.build_suite([ + 'test_runner_apps.buffer.tests_buffer.WriteToStdoutStderrTestCase.test_fail', + ]) + runner.run_suite(suite) + self.assertIn('Write to stderr.', stderr.getvalue()) + self.assertIn('Write to stdout.', stdout.getvalue()) + class DiscoverRunnerGetDatabasesTests(SimpleTestCase): runner = DiscoverRunner(verbosity=2) -- cgit v1.3