Source code for geomodels.tests
"""Unit tests for the geomodels package."""
import os
import sys
import locale
import platform
import unittest
def print_versions():
"""Print platform information and library version."""
from .. import lib_version_str, __version__ # avoid circular imports
geographiclib_data = os.environ.get("GEOGRAPHICLIB_DATA", "not specified")
print(f"geomodels version: {__version__}")
print(f"GeographicLib version: {lib_version_str()}")
print(f"GEOGRAPHICLIB_DATA: {geographiclib_data}")
print(f"Python version: {platform.python_version()}")
print(f"Platform: {platform.platform()}")
print(f"Byte-ordering: {sys.byteorder}")
print(f"Default encoding: {sys.getdefaultencoding()}")
print(f"Default FS encoding: {sys.getfilesystemencoding()}")
print(f"Locale: {locale.getlocale()}")
print()
sys.stdout.flush()
def suite():
"""Return the test suite for the geomodels package."""
loader = unittest.TestLoader()
return loader.discover(start_dir=os.path.dirname(__file__))
[docs]
def test(verbosity: int = 1, failfast: bool = False):
"""Run the test suite for the geomodels package.
:param int verbosity:
verbosity level (higher is more verbose).
Default: 1.
:param bool failfast:
stop the test run on the first error or failure.
Default: False.
"""
print_versions()
runner = unittest.TextTestRunner(verbosity=verbosity, failfast=failfast)
result = runner.run(suite())
return os.EX_OK if result.wasSuccessful() else 1