Skip to content

Commit

Permalink
Increased test-coverage
Browse files Browse the repository at this point in the history
  • Loading branch information
Peter Slump committed Mar 3, 2018
1 parent 75fe8d2 commit d177d53
Show file tree
Hide file tree
Showing 10 changed files with 180 additions and 13 deletions.
2 changes: 1 addition & 1 deletion src/keycloak/admin/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -80,5 +80,5 @@ def _add_auth_header(self, headers=None):

headers = headers or {}
headers['Authorization'] = "Bearer {}".format(token)
headers['Content-type'] = 'application/json'
headers['Content-Type'] = 'application/json'
return headers
10 changes: 4 additions & 6 deletions src/keycloak/admin/roles.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
import json

from collections import OrderedDict

from keycloak.admin import KeycloakAdminBase


Expand All @@ -23,9 +25,7 @@ def by_name(self, role_name):
def create(self, name, description=None, id=None, client_role=None,
composite=None, composites=None, container_id=None,
scope_param_required=None):
payload = {
'name': name
}
payload = OrderedDict(name=name)

if description is not None:
payload['description'] = description
Expand Down Expand Up @@ -74,9 +74,7 @@ def __init__(self, realm_name, client_id, role_name, *args, **kwargs):
def update(self, name, description=None, id=None, client_role=None,
composite=None, composites=None, container_id=None,
scope_param_required=None):
payload = {
'name': name
}
payload = OrderedDict(name=name)

if description is not None:
payload['description'] = description
Expand Down
6 changes: 3 additions & 3 deletions src/keycloak/admin/users.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
import json

from collections import OrderedDict

from keycloak.admin import KeycloakAdminBase


Expand Down Expand Up @@ -29,9 +31,7 @@ def create(self, username, credentials=None, first_name=None,
:param str email:
:param boolean enabled:
"""
payload = {
'username': username,
}
payload = OrderedDict(username=username)

if credentials is not None:
payload['credentials'] = [credentials]
Expand Down
3 changes: 2 additions & 1 deletion src/keycloak/openid_connect.py
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,8 @@ def refresh_token(self, refresh_token, grant_type='refresh_token',
"""
if scope:
return self._token_request(grant_type=grant_type,
refresh_token=refresh_token, scope=scope)
refresh_token=refresh_token,
scope=scope)
else:
return self._token_request(grant_type=grant_type,
refresh_token=refresh_token)
Expand Down
Empty file.
80 changes: 80 additions & 0 deletions tests/keycloak/admin/test_roles.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
import mock

from unittest import TestCase

from keycloak.admin import KeycloakAdmin
from keycloak.realm import KeycloakRealm


class KeycloakAdminRolesTestCase(TestCase):

def setUp(self):
self.realm = mock.MagicMock(spec_set=KeycloakRealm)
self.admin = KeycloakAdmin(realm=self.realm)
self.admin.set_token('some-token')

def test_create(self):
self.admin.realms.by_name('realm-name').clients.by_id('#123').roles.\
create(
name='my-role-name',
description='my-description',
id='my-id',
client_role='my-client-role',
composite=False,
composites='my-composites',
container_id='my-container-id',
scope_param_required=True
)
self.realm.client.get_full_url.assert_called_once_with(
'/auth/admin/realms/realm-name/clients/#123/roles'
)
self.realm.client.post.assert_called_once_with(
url=self.realm.client.get_full_url.return_value,
data='{'
'"name": "my-role-name", '
'"description": "my-description", '
'"id": "my-id", '
'"clientRole": "my-client-role", '
'"composite": false, '
'"composites": "my-composites", '
'"containerId": "my-container-id", '
'"scopeParamRequired": true'
'}',
headers={
'Authorization': 'Bearer some-token',
'Content-Type': 'application/json'
}
)

def test_update(self):
self.admin.realms.by_name('realm-name').clients.by_id(
'#123').roles.by_name('role-name').update(
name='my-role-name',
description='my-description',
id='my-id',
client_role='my-client-role',
composite=False,
composites='my-composites',
container_id='my-container-id',
scope_param_required=True
)
self.realm.client.get_full_url.assert_called_once_with(
'/auth/admin/realms/realm-name/clients/#123/roles/role-name'
)
self.realm.client.put.assert_called_once_with(
url=self.realm.client.get_full_url.return_value,
data='{'
'"name": "my-role-name", '
'"description": "my-description", '
'"id": "my-id", '
'"clientRole": "my-client-role", '
'"composite": false, '
'"composites": "my-composites", '
'"containerId": "my-container-id", '
'"scopeParamRequired": true'
'}',
headers={
'Authorization': 'Bearer some-token',
'Content-Type': 'application/json'
}
)
40 changes: 40 additions & 0 deletions tests/keycloak/admin/test_users.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
import mock

from unittest import TestCase

from keycloak.admin import KeycloakAdmin
from keycloak.realm import KeycloakRealm


class KeycloakAdminUsersTestCase(TestCase):

def setUp(self):
self.realm = mock.MagicMock(spec_set=KeycloakRealm)
self.admin = KeycloakAdmin(realm=self.realm)
self.admin.set_token('some-token')

def test_create(self):
self.admin.realms.by_name('realm-name').users.create(
username='my-username',
credentials={'some': 'value'},
first_name='my-first-name',
last_name='my-last-name',
email='my-email',
enabled=True
)
self.realm.client.get_full_url.assert_called_once_with(
'/auth/admin/realms/realm-name/users'
)
self.realm.client.post.assert_called_once_with(
url=self.realm.client.get_full_url.return_value,
data='{"username": "my-username", '
'"credentials": [{"some": "value"}], '
'"firstName": "my-first-name", '
'"lastName": "my-last-name", '
'"email": "my-email", '
'"enabled": true}',
headers={
'Authorization': 'Bearer some-token',
'Content-Type': 'application/json'
}
)
19 changes: 19 additions & 0 deletions tests/keycloak/test_admin.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import mock

from unittest import TestCase

from keycloak.admin import KeycloakAdmin
from keycloak.admin.realm import Realms
from keycloak.realm import KeycloakRealm


class KeycloakAdminTestCase(TestCase):

def setUp(self):
self.realm = mock.MagicMock(spec_set=KeycloakRealm)
self.admin = KeycloakAdmin(realm=self.realm)

def test_realm(self):

realm = self.admin.realms
self.assertIsInstance(realm, Realms)
30 changes: 30 additions & 0 deletions tests/keycloak/test_authz.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import mock

from unittest import TestCase

from keycloak.authz import KeycloakAuthz
from keycloak.realm import KeycloakRealm


class KeycloakAuthzTestCase(TestCase):

def setUp(self):
self.realm = mock.MagicMock(spec_set=KeycloakRealm)
self.realm.realm_name = 'realm-name'
self.client_id = 'client-id'

self.authz = KeycloakAuthz(realm=self.realm, client_id=self.client_id)

def test_entitlement(self):
result = self.authz.entitlement(token='some-token')

self.realm.client.get_full_url.assert_called_once_with(
'auth/realms/realm-name/authz/entitlement/client-id'
)
self.realm.client.get.assert_called_once_with(
self.realm.client.get_full_url.return_value,
headers={
'Authorization': 'Bearer some-token'
}
)
self.assertEqual(result, self.realm.client.get.return_value)
3 changes: 1 addition & 2 deletions tests/keycloak/test_openid_connect.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ def setUp(self):
'token_endpoint': 'https://token'
}


def test_well_known(self):
"""
Case: .well-known is requested
Expand Down Expand Up @@ -134,4 +133,4 @@ def test_refresh_token(self):
'refresh_token': 'refresh-token'
}
)
self.assertEqual(response, self.realm.client.post.return_value)
self.assertEqual(response, self.realm.client.post.return_value)

0 comments on commit d177d53

Please sign in to comment.