mirror of
https://github.com/jupyterhub/jupyterhub.git
synced 2025-10-14 13:33:00 +00:00
fixed default roles for mocked services
This commit is contained in:
@@ -259,3 +259,16 @@ def update_roles(db, obj, kind, roles=None):
|
|||||||
# users and services can have 'user' or 'admin' roles as default
|
# users and services can have 'user' or 'admin' roles as default
|
||||||
else:
|
else:
|
||||||
switch_default_role(db, obj, kind, obj.admin)
|
switch_default_role(db, obj, kind, obj.admin)
|
||||||
|
|
||||||
|
|
||||||
|
def mock_roles(app, name, kind):
|
||||||
|
|
||||||
|
"""Loads and assigns default roles for mocked objects"""
|
||||||
|
|
||||||
|
Class = get_orm_class(kind)
|
||||||
|
|
||||||
|
obj = Class.find(app.db, name=name)
|
||||||
|
default_roles = get_default_roles()
|
||||||
|
for role in default_roles:
|
||||||
|
add_role(app.db, role)
|
||||||
|
update_roles(db=app.db, obj=obj, kind=kind)
|
||||||
|
@@ -44,6 +44,7 @@ import jupyterhub.services.service
|
|||||||
from . import mocking
|
from . import mocking
|
||||||
from .. import crypto
|
from .. import crypto
|
||||||
from .. import orm
|
from .. import orm
|
||||||
|
from ..roles import mock_roles
|
||||||
from ..utils import random_port
|
from ..utils import random_port
|
||||||
from .mocking import MockHub
|
from .mocking import MockHub
|
||||||
from .test_services import mockservice_cmd
|
from .test_services import mockservice_cmd
|
||||||
@@ -245,6 +246,7 @@ def _mockservice(request, app, url=False):
|
|||||||
):
|
):
|
||||||
app.services = [spec]
|
app.services = [spec]
|
||||||
app.init_services()
|
app.init_services()
|
||||||
|
mock_roles(app, name, 'services')
|
||||||
assert name in app._service_map
|
assert name in app._service_map
|
||||||
service = app._service_map[name]
|
service = app._service_map[name]
|
||||||
|
|
||||||
|
@@ -1594,7 +1594,7 @@ async def test_get_services(app, mockservice_url):
|
|||||||
mockservice.name: {
|
mockservice.name: {
|
||||||
'name': mockservice.name,
|
'name': mockservice.name,
|
||||||
'admin': True,
|
'admin': True,
|
||||||
'roles': [],
|
'roles': ['admin'],
|
||||||
'command': mockservice.command,
|
'command': mockservice.command,
|
||||||
'pid': mockservice.proc.pid,
|
'pid': mockservice.proc.pid,
|
||||||
'prefix': mockservice.server.base_url,
|
'prefix': mockservice.server.base_url,
|
||||||
@@ -1620,7 +1620,7 @@ async def test_get_service(app, mockservice_url):
|
|||||||
assert service == {
|
assert service == {
|
||||||
'name': mockservice.name,
|
'name': mockservice.name,
|
||||||
'admin': True,
|
'admin': True,
|
||||||
'roles': [],
|
'roles': ['admin'],
|
||||||
'command': mockservice.command,
|
'command': mockservice.command,
|
||||||
'pid': mockservice.proc.pid,
|
'pid': mockservice.proc.pid,
|
||||||
'prefix': mockservice.server.base_url,
|
'prefix': mockservice.server.base_url,
|
||||||
|
Reference in New Issue
Block a user