You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
122 lines
2.9 KiB
122 lines
2.9 KiB
# coding: utf-8
|
|
from __future__ import unicode_literals, division, absolute_import, print_function
|
|
|
|
import imp
|
|
import os
|
|
import unittest
|
|
|
|
|
|
__version__ = '1.4.0'
|
|
__version_info__ = (1, 4, 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_init import InitTests
|
|
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,
|
|
InitTests,
|
|
KeysTests,
|
|
OCSPTests,
|
|
PEMTests,
|
|
PKCS12Tests,
|
|
TSPTests,
|
|
UtilTests,
|
|
ParserTests,
|
|
X509Tests,
|
|
CoreTests
|
|
]
|