| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- import io
- import sys
- import unittest
- from unittest.mock import MagicMock, patch
- import run_coverage
- class RunCoverageTest(unittest.TestCase):
- def test_run_command_does_not_use_shell(self):
- completed = MagicMock(returncode=0)
- with patch('run_coverage.subprocess.run', return_value=completed) as run, \
- patch('sys.stdout', io.StringIO()):
- ok = run_coverage.run_command(
- [sys.executable, '-m', 'coverage', 'report'],
- 'Generating console coverage report',
- )
- self.assertTrue(ok)
- run.assert_called_once_with(
- [sys.executable, '-m', 'coverage', 'report'],
- shell=False,
- )
- def test_build_coverage_commands_uses_current_python(self):
- commands = run_coverage.build_coverage_commands()
- self.assertEqual(
- [sys.executable, '-m', 'coverage', 'run', '-m', 'unittest',
- 'discover', '-s', 'tests', '-p', 'test_*.py'],
- commands[0][0],
- )
- self.assertEqual('Running tests with coverage', commands[0][1])
- self.assertEqual([sys.executable, '-m', 'coverage', 'report'], commands[1][0])
- self.assertEqual([sys.executable, '-m', 'coverage', 'html'], commands[2][0])
- self.assertEqual([sys.executable, '-m', 'coverage', 'xml'], commands[3][0])
- self.assertEqual('Generating XML coverage report (for CI/CD)', commands[3][1])
- if __name__ == '__main__':
- unittest.main()
|