blob: d267878f61a9dbe6687b2189e403c4156b4a6b55 [file] [log] [blame]
# coding: utf-8
from __future__ import unicode_literals, division, absolute_import, print_function
import imp
import os
import unittest
__version__ = '1.0.0'
__version_info__ = (1, 0, 0)
def _import_from(mod, path, mod_dir=None):
"""
Imports a module from a specific path
:param mod:
A unicode string of the module name
:param path:
A unicode string to the directory containing the module
:param mod_dir:
If the sub directory of "path" is different than the "mod" name,
pass the sub directory as a unicode string
:return:
None if not loaded, otherwise the module
"""
if mod_dir is None:
mod_dir = mod
if not os.path.exists(path):
return None
if not os.path.exists(os.path.join(path, mod_dir)):
return None
try:
mod_info = imp.find_module(mod_dir, [path])
return imp.load_module(mod, *mod_info)
except ImportError:
return None
def make_suite():
"""
Constructs a unittest.TestSuite() of all tests for the package. For use
with setuptools.
:return:
A unittest.TestSuite() object
"""
loader = unittest.TestLoader()
suite = unittest.TestSuite()
for test_class in test_classes():
tests = loader.loadTestsFromTestCase(test_class)
suite.addTests(tests)
return suite
def test_classes():
"""
Returns a list of unittest.TestCase classes for the package
:return:
A list of unittest.TestCase classes
"""
# If we are in a source folder and these tests aren't installed as a
# package, we want to load asn1crypto from this source folder
tests_dir = os.path.dirname(os.path.abspath(__file__))
asn1crypto = None
if os.path.basename(tests_dir) == 'tests':
asn1crypto = _import_from(
'asn1crypto',
os.path.join(tests_dir, '..')
)
if asn1crypto is None:
import asn1crypto
if asn1crypto.__version__ != __version__:
raise AssertionError(
('asn1crypto_tests version %s can not be run with ' % __version__) +
('asn1crypto version %s' % asn1crypto.__version__)
)
from .test_algos import AlgoTests
from .test_cms import CMSTests
from .test_crl import CRLTests
from .test_csr import CSRTests
from .test_keys import KeysTests
from .test_ocsp import OCSPTests
from .test_pem import PEMTests
from .test_pkcs12 import PKCS12Tests
from .test_tsp import TSPTests
from .test_x509 import X509Tests
from .test_util import UtilTests
from .test_parser import ParserTests
from .test_core import CoreTests
return [
AlgoTests,
CMSTests,
CRLTests,
CSRTests,
KeysTests,
OCSPTests,
PEMTests,
PKCS12Tests,
TSPTests,
UtilTests,
ParserTests,
X509Tests,
CoreTests
]