Files
mongo/buildscripts/tests/resmokelib/testing/testcases/test_pytest.py
Juan Gu 7209d62b77 SERVER-99522 Delete dead py linters (#31760)
GitOrigin-RevId: 3aedfa559dda734d4d89fefe0fe1154a5a3cf04d
2025-04-09 19:33:45 +00:00

80 lines
3.2 KiB
Python

"""Unit tests for the buildscripts.resmokelib.testing.testcases.pytest module."""
import logging
import sys
import unittest
from buildscripts.resmokelib.testing.testcases import pytest
_IS_WINDOWS = sys.platform == "win32"
def get_filename(filename):
if _IS_WINDOWS:
return filename.replace("/", "\\")
return filename
class TestPyTestCase(unittest.TestCase):
def test__make_process(self):
logger = logging.getLogger("pytest")
filename = "myfile.py"
pytest_case = pytest.PyTestCase(logger, [filename])
self.assertEqual(pytest_case.test_name, filename)
self.assertEqual(pytest_case.logger, logger)
proc = pytest_case._make_process()
self.assertIn(" -m unittest", proc.as_command())
self.assertIn(pytest_case.test_module_name, proc.as_command())
self.assertEqual(proc.logger, logger)
def test__make_process_dir(self):
logger = logging.getLogger("pytest")
filename = "dir1/dir2/myfile.py"
pytest_case = pytest.PyTestCase(logger, [filename])
self.assertEqual(pytest_case.test_name, filename)
self.assertEqual(pytest_case.logger, logger)
proc = pytest_case._make_process()
self.assertIn(" -m unittest", proc.as_command())
self.assertIn(pytest_case.test_module_name, proc.as_command())
self.assertEqual(proc.logger, logger)
def test__make_process_windows_file(self):
logger = logging.getLogger("pytest")
filename = "dir1\\dir2\\myfile.py"
pytest_case = pytest.PyTestCase(logger, [filename])
self.assertEqual(pytest_case.test_name, filename)
self.assertEqual(pytest_case.logger, logger)
proc = pytest_case._make_process()
self.assertIn(" -m unittest", proc.as_command())
self.assertIn(pytest_case.test_module_name, proc.as_command())
self.assertEqual(proc.logger, logger)
def test_test_module_name(self):
logger = logging.getLogger("pytest")
filename = get_filename("dir1/dir2/dir3/myfile.py")
pytest_case = pytest.PyTestCase(logger, [filename])
self.assertEqual(pytest_case.test_module_name, "dir1.dir2.dir3.myfile")
def test_test_module_name_absolute_dir(self):
logger = logging.getLogger("pytest")
filename = get_filename("/dir1/dir2/dir3/myfile.py")
pytest_case = pytest.PyTestCase(logger, [filename])
self.assertEqual(pytest_case.test_module_name, ".dir1.dir2.dir3.myfile")
def test_test_module_name_no_dir(self):
logger = logging.getLogger("pytest")
filename = "myfile.py"
pytest_case = pytest.PyTestCase(logger, [filename])
self.assertEqual(pytest_case.test_module_name, "myfile")
def test__make_process_with_space(self):
logger = logging.getLogger("pytest")
filename = "this file name has space.py:q:"
pytest_case = pytest.PyTestCase(logger, [filename])
self.assertEqual(pytest_case.test_name, filename)
self.assertEqual(pytest_case.logger, logger)
proc = pytest_case._make_process()
self.assertIn(" -m unittest", proc.as_command())
self.assertIn(pytest_case.test_module_name, proc.as_command())
self.assertEqual(proc.logger, logger)