Skip to content

Commit fae83ff

Browse files
author
Marko Mrdjenovic
committed
moved register to jwk
1 parent 163b01b commit fae83ff

File tree

4 files changed

+16
-23
lines changed

4 files changed

+16
-23
lines changed

jose/constants.py

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,5 @@ class Algorithms(object):
3535

3636
KEYS = {}
3737

38-
def register_key(self, algorithm, key_class):
39-
from jose.jwk import Key
40-
if not issubclass(key_class, Key):
41-
raise TypeError("Key class not a subclass of jwk.Key")
42-
self.KEYS[algorithm] = key_class
43-
self.SUPPORTED.add(algorithm)
44-
return True
45-
4638

4739
ALGORITHMS = Algorithms()

jose/jwk.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,14 @@ def get_key(algorithm):
5959
return None
6060

6161

62+
def register_key(algorithm, key_class):
63+
if not issubclass(key_class, Key):
64+
raise TypeError("Key class not a subclass of jwk.Key")
65+
ALGORITHMS.KEYS[algorithm] = key_class
66+
ALGORITHMS.SUPPORTED.add(algorithm)
67+
return True
68+
69+
6270
def construct(key_data, algorithm=None):
6371
"""
6472
Construct a Key object for the given algorithm with the given

tests/algorithms/test_base.py

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
2-
from jose.jwk import Key, HMACKey, RSAKey, ECKey
3-
from jose.constants import ALGORITHMS
1+
from jose.jwk import Key
42

53
import pytest
64

@@ -20,13 +18,3 @@ def test_verify_is_interface(self, alg):
2018
with pytest.raises(NotImplementedError):
2119
alg.verify('msg', 'sig')
2220

23-
24-
class TestAlgorithms:
25-
26-
def test_register_key(self):
27-
assert ALGORITHMS.register_key("ALG", Key)
28-
from jose.jwk import get_key
29-
assert get_key("ALG") == Key
30-
31-
with pytest.raises(TypeError):
32-
assert ALGORITHMS.register_key("ALG", object)

tests/test_jwk.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
1-
21
from jose import jwk
32
from jose.exceptions import JWKError
43

54
import pytest
65

7-
86
hmac_key = {
97
"kty": "oct",
108
"kid": "018c0ae5-4d9b-471b-bfd6-eef314bc7037",
@@ -122,3 +120,10 @@ def test_get_key(self):
122120
assert jwk.get_key("ES256") == jwk.ECKey
123121

124122
assert jwk.get_key("NONEXISTENT") == None
123+
124+
def test_register_key(self):
125+
assert jwk.register_key("ALG", jwk.Key)
126+
assert jwk.get_key("ALG") == jwk.Key
127+
128+
with pytest.raises(TypeError):
129+
assert jwk.register_key("ALG", object)

0 commit comments

Comments
 (0)