mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-07-19 16:40:32 +03:00
Python: introduce tests for interpreters
This adds tests to the passthru of all Python interpreters.
This commit is contained in:
parent
39aac70d74
commit
dbf125d286
3 changed files with 117 additions and 0 deletions
50
pkgs/development/interpreters/python/tests/test_python.py
Normal file
50
pkgs/development/interpreters/python/tests/test_python.py
Normal file
|
@ -0,0 +1,50 @@
|
|||
"""
|
||||
Python interpreter and environment tests.
|
||||
|
||||
These need to be executed with the standard library unittest.
|
||||
Third party test runners such as pytest cannot be used because
|
||||
that would interfere with the tests.
|
||||
"""
|
||||
|
||||
import platform
|
||||
import sys
|
||||
import unittest
|
||||
import site
|
||||
|
||||
|
||||
ENV = "@env@"
|
||||
INTERPRETER = "@interpreter@"
|
||||
PYTHON_VERSION = "@pythonVersion@"
|
||||
|
||||
IS_VENV = @is_venv@
|
||||
IS_NIXENV = @is_nixenv@
|
||||
IS_PYPY = platform.python_implementation() == "PyPy"
|
||||
|
||||
|
||||
class TestCasePython(unittest.TestCase):
|
||||
|
||||
@unittest.skipIf(IS_PYPY, "Executable is incorrect and needs to be fixed.")
|
||||
def test_interpreter(self):
|
||||
self.assertEqual(sys.executable, INTERPRETER)
|
||||
|
||||
@unittest.skipIf(IS_NIXENV or IS_PYPY, "Prefix is incorrect and needs to be fixed.")
|
||||
def test_prefix(self):
|
||||
self.assertEqual(sys.prefix, ENV)
|
||||
self.assertEqual(sys.prefix, sys.exec_prefix)
|
||||
|
||||
def test_site_prefix(self):
|
||||
self.assertTrue(sys.prefix in site.PREFIXES)
|
||||
|
||||
@unittest.skipIf(sys.version_info.major==2, "Python 2 does not have base_prefix")
|
||||
def test_base_prefix(self):
|
||||
if IS_VENV:
|
||||
self.assertNotEqual(sys.prefix, sys.base_prefix)
|
||||
else:
|
||||
self.assertEqual(sys.prefix, sys.base_prefix)
|
||||
|
||||
def test_python_version(self):
|
||||
self.assertTrue(platform.python_version().startswith(PYTHON_VERSION))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
Loading…
Add table
Add a link
Reference in a new issue