66 lines
2.4 KiB
Python
66 lines
2.4 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_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_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_name, proc.as_command())
|
|
self.assertEqual(proc.logger, logger)
|
|
|
|
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_name, proc.as_command())
|
|
self.assertEqual(proc.logger, logger)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|