diff options
author | ohemorange <ebportnoy@gmail.com> | 2019-11-27 02:25:41 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-11-27 02:25:41 +0300 |
commit | d2b65b47f2e2968df62e0feea5ebf28bfdd3e4b2 (patch) | |
tree | 9c686c839091476d244237c75e58e90d818ef5a7 /acme/tests/jose_test.py | |
parent | b624172f6827b35214bc3a2df076df0bc524cba2 (diff) |
Refactor tests out of packaged module for acme plugin (#7600)
* Move acme tests to tests/ directory outside of acme module
* Fix call to messages_test in client_test
* Move test_util.py and testdata/ into tests/
* Update manifest to package tests
* Exclude pycache and .py[cod]
Diffstat (limited to 'acme/tests/jose_test.py')
-rw-r--r-- | acme/tests/jose_test.py | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/acme/tests/jose_test.py b/acme/tests/jose_test.py new file mode 100644 index 000000000..340624a4f --- /dev/null +++ b/acme/tests/jose_test.py @@ -0,0 +1,53 @@ +"""Tests for acme.jose shim.""" +import importlib +import unittest + +class JoseTest(unittest.TestCase): + """Tests for acme.jose shim.""" + + def _test_it(self, submodule, attribute): + if submodule: + acme_jose_path = 'acme.jose.' + submodule + josepy_path = 'josepy.' + submodule + else: + acme_jose_path = 'acme.jose' + josepy_path = 'josepy' + acme_jose_mod = importlib.import_module(acme_jose_path) + josepy_mod = importlib.import_module(josepy_path) + + self.assertIs(acme_jose_mod, josepy_mod) + self.assertIs(getattr(acme_jose_mod, attribute), getattr(josepy_mod, attribute)) + + # We use the imports below with eval, but pylint doesn't + # understand that. + # pylint: disable=eval-used,unused-variable + import acme + import josepy + acme_jose_mod = eval(acme_jose_path) + josepy_mod = eval(josepy_path) + self.assertIs(acme_jose_mod, josepy_mod) + self.assertIs(getattr(acme_jose_mod, attribute), getattr(josepy_mod, attribute)) + + def test_top_level(self): + self._test_it('', 'RS512') + + def test_submodules(self): + # This test ensures that the modules in josepy that were + # available at the time it was moved into its own package are + # available under acme.jose. Backwards compatibility with new + # modules or testing code is not maintained. + mods_and_attrs = [('b64', 'b64decode',), + ('errors', 'Error',), + ('interfaces', 'JSONDeSerializable',), + ('json_util', 'Field',), + ('jwa', 'HS256',), + ('jwk', 'JWK',), + ('jws', 'JWS',), + ('util', 'ImmutableMap',),] + + for mod, attr in mods_and_attrs: + self._test_it(mod, attr) + + +if __name__ == '__main__': + unittest.main() # pragma: no cover |