fixed default roles for mocked services

This commit is contained in:
IvanaH8
2020-12-16 11:17:43 +01:00
parent 4cc2f0a363
commit 8a7320b318
3 changed files with 17 additions and 2 deletions

View File

@@ -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)

View File

@@ -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]

View File

@@ -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,