test_authentic: restrict scope of import_template command test (#71867)
This commit is contained in:
parent
93fc9d9960
commit
02df3a7a81
|
@ -1,665 +1,26 @@
|
|||
{
|
||||
"roles": [
|
||||
{
|
||||
"slug": "test-role",
|
||||
"name": "test role",
|
||||
"description": "",
|
||||
"external_id": "",
|
||||
"ou": {
|
||||
"name": "test ou",
|
||||
"slug": "test-ou"
|
||||
},
|
||||
"service": null
|
||||
}
|
||||
],
|
||||
"ous": [
|
||||
{
|
||||
"default": true,
|
||||
"slug": "test-ou",
|
||||
"name": "test ou",
|
||||
"description": "",
|
||||
"default": null,
|
||||
"email_is_unique": false,
|
||||
"name": "Collectivit\u00e9 par d\u00e9faut",
|
||||
"slug": "default",
|
||||
"username_is_unique": false,
|
||||
"validate_emails": false
|
||||
}
|
||||
],
|
||||
"roles": [
|
||||
{
|
||||
"description": "",
|
||||
"external_id": "",
|
||||
"name": "Debug eo",
|
||||
"ou": {
|
||||
"name": "Collectivit\u00e9 par d\u00e9faut",
|
||||
"slug": "default"
|
||||
},
|
||||
"service": null,
|
||||
"slug": "debug-eo"
|
||||
},
|
||||
{
|
||||
"description": "",
|
||||
"external_id": "",
|
||||
"name": "Manager",
|
||||
"ou": null,
|
||||
"parents": [
|
||||
{
|
||||
"name": "Manager of organizational units",
|
||||
"ou": null,
|
||||
"service": null,
|
||||
"slug": "_a2-manager-of-organizational-units"
|
||||
},
|
||||
{
|
||||
"name": "Manager of roles",
|
||||
"ou": null,
|
||||
"service": null,
|
||||
"slug": "_a2-manager-of-roles"
|
||||
},
|
||||
{
|
||||
"name": "Manager of services",
|
||||
"ou": null,
|
||||
"service": null,
|
||||
"slug": "_a2-manager-of-services"
|
||||
},
|
||||
{
|
||||
"name": "Manager of users",
|
||||
"ou": null,
|
||||
"service": null,
|
||||
"slug": "_a2-manager-of-users"
|
||||
},
|
||||
{
|
||||
"name": "Manager of API clients",
|
||||
"ou": null,
|
||||
"service": null,
|
||||
"slug": "_a2-manager-of-api-clients"
|
||||
},
|
||||
{
|
||||
"name": "Manager of authenticators",
|
||||
"ou": null,
|
||||
"service": null,
|
||||
"slug": "_a2-manager-of-authenticators"
|
||||
}
|
||||
],
|
||||
"permissions": [
|
||||
{
|
||||
"operation": {
|
||||
"slug": "manage_members"
|
||||
},
|
||||
"ou": null,
|
||||
"target": {
|
||||
"name": "Manager",
|
||||
"ou": null,
|
||||
"service": null,
|
||||
"slug": "_a2-manager"
|
||||
},
|
||||
"target_ct": {
|
||||
"app_label": "a2_rbac",
|
||||
"model": "role"
|
||||
}
|
||||
}
|
||||
],
|
||||
"service": null,
|
||||
"slug": "_a2-manager"
|
||||
},
|
||||
{
|
||||
"description": "",
|
||||
"external_id": "",
|
||||
"name": "Manager of organizational units",
|
||||
"ou": null,
|
||||
"permissions": [
|
||||
{
|
||||
"operation": {
|
||||
"slug": "admin"
|
||||
},
|
||||
"ou": null,
|
||||
"target": {
|
||||
"app_label": "a2_rbac",
|
||||
"model": "organizationalunit"
|
||||
},
|
||||
"target_ct": {
|
||||
"app_label": "contenttypes",
|
||||
"model": "contenttype"
|
||||
}
|
||||
},
|
||||
{
|
||||
"operation": {
|
||||
"slug": "search"
|
||||
},
|
||||
"ou": null,
|
||||
"target": {
|
||||
"app_label": "a2_rbac",
|
||||
"model": "organizationalunit"
|
||||
},
|
||||
"target_ct": {
|
||||
"app_label": "contenttypes",
|
||||
"model": "contenttype"
|
||||
}
|
||||
}
|
||||
],
|
||||
"service": null,
|
||||
"slug": "_a2-manager-of-organizational-units"
|
||||
},
|
||||
{
|
||||
"description": "",
|
||||
"external_id": "",
|
||||
"name": "Manager of roles",
|
||||
"ou": null,
|
||||
"permissions": [
|
||||
{
|
||||
"operation": {
|
||||
"slug": "admin"
|
||||
},
|
||||
"ou": null,
|
||||
"target": {
|
||||
"app_label": "a2_rbac",
|
||||
"model": "role"
|
||||
},
|
||||
"target_ct": {
|
||||
"app_label": "contenttypes",
|
||||
"model": "contenttype"
|
||||
}
|
||||
},
|
||||
{
|
||||
"operation": {
|
||||
"slug": "search"
|
||||
},
|
||||
"ou": null,
|
||||
"target": {
|
||||
"app_label": "a2_rbac",
|
||||
"model": "organizationalunit"
|
||||
},
|
||||
"target_ct": {
|
||||
"app_label": "contenttypes",
|
||||
"model": "contenttype"
|
||||
}
|
||||
},
|
||||
{
|
||||
"operation": {
|
||||
"slug": "view"
|
||||
},
|
||||
"ou": null,
|
||||
"target": {
|
||||
"app_label": "custom_user",
|
||||
"model": "user"
|
||||
},
|
||||
"target_ct": {
|
||||
"app_label": "contenttypes",
|
||||
"model": "contenttype"
|
||||
}
|
||||
}
|
||||
],
|
||||
"service": null,
|
||||
"slug": "_a2-manager-of-roles"
|
||||
},
|
||||
{
|
||||
"description": "",
|
||||
"external_id": "",
|
||||
"name": "Manager of services",
|
||||
"ou": null,
|
||||
"permissions": [
|
||||
{
|
||||
"operation": {
|
||||
"slug": "admin"
|
||||
},
|
||||
"ou": null,
|
||||
"target": {
|
||||
"app_label": "authentic2",
|
||||
"model": "service"
|
||||
},
|
||||
"target_ct": {
|
||||
"app_label": "contenttypes",
|
||||
"model": "contenttype"
|
||||
}
|
||||
},
|
||||
{
|
||||
"operation": {
|
||||
"slug": "search"
|
||||
},
|
||||
"ou": null,
|
||||
"target": {
|
||||
"app_label": "a2_rbac",
|
||||
"model": "organizationalunit"
|
||||
},
|
||||
"target_ct": {
|
||||
"app_label": "contenttypes",
|
||||
"model": "contenttype"
|
||||
}
|
||||
}
|
||||
],
|
||||
"service": null,
|
||||
"slug": "_a2-manager-of-services"
|
||||
},
|
||||
{
|
||||
"description": "",
|
||||
"external_id": "",
|
||||
"name": "Manager of users",
|
||||
"ou": null,
|
||||
"permissions": [
|
||||
{
|
||||
"operation": {
|
||||
"slug": "admin"
|
||||
},
|
||||
"ou": null,
|
||||
"target": {
|
||||
"app_label": "custom_user",
|
||||
"model": "user"
|
||||
},
|
||||
"target_ct": {
|
||||
"app_label": "contenttypes",
|
||||
"model": "contenttype"
|
||||
}
|
||||
},
|
||||
{
|
||||
"operation": {
|
||||
"slug": "manage_authorizations"
|
||||
},
|
||||
"ou": null,
|
||||
"target": {
|
||||
"app_label": "custom_user",
|
||||
"model": "user"
|
||||
},
|
||||
"target_ct": {
|
||||
"app_label": "contenttypes",
|
||||
"model": "contenttype"
|
||||
}
|
||||
},
|
||||
{
|
||||
"operation": {
|
||||
"slug": "search"
|
||||
},
|
||||
"ou": null,
|
||||
"target": {
|
||||
"app_label": "a2_rbac",
|
||||
"model": "organizationalunit"
|
||||
},
|
||||
"target_ct": {
|
||||
"app_label": "contenttypes",
|
||||
"model": "contenttype"
|
||||
}
|
||||
}
|
||||
],
|
||||
"service": null,
|
||||
"slug": "_a2-manager-of-users"
|
||||
},
|
||||
{
|
||||
"description": "",
|
||||
"external_id": "",
|
||||
"name": "Manager of API clients",
|
||||
"ou": null,
|
||||
"permissions": [
|
||||
{
|
||||
"operation": {
|
||||
"slug": "admin"
|
||||
},
|
||||
"ou": null,
|
||||
"target": {
|
||||
"app_label": "authentic2",
|
||||
"model": "apiclient"
|
||||
},
|
||||
"target_ct": {
|
||||
"app_label": "contenttypes",
|
||||
"model": "contenttype"
|
||||
}
|
||||
},
|
||||
{
|
||||
"operation": {
|
||||
"slug": "search"
|
||||
},
|
||||
"ou": null,
|
||||
"target": {
|
||||
"app_label": "a2_rbac",
|
||||
"model": "organizationalunit"
|
||||
},
|
||||
"target_ct": {
|
||||
"app_label": "contenttypes",
|
||||
"model": "contenttype"
|
||||
}
|
||||
}
|
||||
],
|
||||
"service": null,
|
||||
"slug": "_a2-manager-of-api-clients"
|
||||
},
|
||||
{
|
||||
"description": "",
|
||||
"external_id": "",
|
||||
"name": "Manager of authenticators",
|
||||
"ou": null,
|
||||
"permissions": [
|
||||
{
|
||||
"operation": {
|
||||
"slug": "admin"
|
||||
},
|
||||
"ou": null,
|
||||
"target": {
|
||||
"app_label": "authenticators",
|
||||
"model": "baseauthenticator"
|
||||
},
|
||||
"target_ct": {
|
||||
"app_label": "contenttypes",
|
||||
"model": "contenttype"
|
||||
}
|
||||
},
|
||||
{
|
||||
"operation": {
|
||||
"slug": "search"
|
||||
},
|
||||
"ou": null,
|
||||
"target": {
|
||||
"app_label": "a2_rbac",
|
||||
"model": "organizationalunit"
|
||||
},
|
||||
"target_ct": {
|
||||
"app_label": "contenttypes",
|
||||
"model": "contenttype"
|
||||
}
|
||||
}
|
||||
],
|
||||
"service": null,
|
||||
"slug": "_a2-manager-of-authenticators"
|
||||
},
|
||||
{
|
||||
"description": "",
|
||||
"external_id": "",
|
||||
"name": "Managers of \"Collectivit\u00e9 par d\u00e9faut\"",
|
||||
"ou": null,
|
||||
"parents": [
|
||||
{
|
||||
"name": "Roles - Collectivit\u00e9 par d\u00e9faut",
|
||||
"ou": {
|
||||
"name": "Collectivit\u00e9 par d\u00e9faut",
|
||||
"slug": "default"
|
||||
},
|
||||
"service": null,
|
||||
"slug": "_a2-manager-of-roles-default"
|
||||
},
|
||||
{
|
||||
"name": "Services - Collectivit\u00e9 par d\u00e9faut",
|
||||
"ou": {
|
||||
"name": "Collectivit\u00e9 par d\u00e9faut",
|
||||
"slug": "default"
|
||||
},
|
||||
"service": null,
|
||||
"slug": "_a2-manager-of-services-default"
|
||||
},
|
||||
{
|
||||
"name": "Users - Collectivit\u00e9 par d\u00e9faut",
|
||||
"ou": {
|
||||
"name": "Collectivit\u00e9 par d\u00e9faut",
|
||||
"slug": "default"
|
||||
},
|
||||
"service": null,
|
||||
"slug": "_a2-manager-of-users-default"
|
||||
},
|
||||
{
|
||||
"name": "Authenticators - Collectivité par défaut",
|
||||
"ou": {
|
||||
"name": "Collectivité par défaut",
|
||||
"slug": "default"
|
||||
},
|
||||
"service": null,
|
||||
"slug": "_a2-manager-of-authenticators-default"
|
||||
}
|
||||
],
|
||||
"permissions": [
|
||||
{
|
||||
"operation": {
|
||||
"slug": "view"
|
||||
},
|
||||
"ou": null,
|
||||
"target": {
|
||||
"name": "Collectivit\u00e9 par d\u00e9faut",
|
||||
"slug": "default"
|
||||
},
|
||||
"target_ct": {
|
||||
"app_label": "a2_rbac",
|
||||
"model": "organizationalunit"
|
||||
}
|
||||
}
|
||||
],
|
||||
"service": null,
|
||||
"slug": "_a2-managers-of-default"
|
||||
},
|
||||
{
|
||||
"description": "",
|
||||
"external_id": "",
|
||||
"name": "Managers of role \"Debug eo\"",
|
||||
"ou": {
|
||||
"name": "Collectivit\u00e9 par d\u00e9faut",
|
||||
"slug": "default"
|
||||
},
|
||||
"permissions": [
|
||||
{
|
||||
"operation": {
|
||||
"slug": "manage_members"
|
||||
},
|
||||
"ou": null,
|
||||
"target": {
|
||||
"name": "Managers of role \"Debug eo\"",
|
||||
"ou": {
|
||||
"name": "Collectivit\u00e9 par d\u00e9faut",
|
||||
"slug": "default"
|
||||
},
|
||||
"service": null,
|
||||
"slug": "_a2-managers-of-role-debug-eo"
|
||||
},
|
||||
"target_ct": {
|
||||
"app_label": "a2_rbac",
|
||||
"model": "role"
|
||||
}
|
||||
},
|
||||
{
|
||||
"operation": {
|
||||
"slug": "manage_members"
|
||||
},
|
||||
"ou": null,
|
||||
"target": {
|
||||
"name": "Debug eo",
|
||||
"ou": {
|
||||
"name": "Collectivit\u00e9 par d\u00e9faut",
|
||||
"slug": "default"
|
||||
},
|
||||
"service": null,
|
||||
"slug": "debug-eo"
|
||||
},
|
||||
"target_ct": {
|
||||
"app_label": "a2_rbac",
|
||||
"model": "role"
|
||||
}
|
||||
},
|
||||
{
|
||||
"operation": {
|
||||
"slug": "view"
|
||||
},
|
||||
"ou": null,
|
||||
"target": {
|
||||
"app_label": "custom_user",
|
||||
"model": "user"
|
||||
},
|
||||
"target_ct": {
|
||||
"app_label": "contenttypes",
|
||||
"model": "contenttype"
|
||||
}
|
||||
}
|
||||
],
|
||||
"service": null,
|
||||
"slug": "_a2-managers-of-role-debug-eo"
|
||||
},
|
||||
{
|
||||
"description": "",
|
||||
"external_id": "",
|
||||
"name": "Roles - Collectivit\u00e9 par d\u00e9faut",
|
||||
"ou": {
|
||||
"name": "Collectivit\u00e9 par d\u00e9faut",
|
||||
"slug": "default"
|
||||
},
|
||||
"permissions": [
|
||||
{
|
||||
"operation": {
|
||||
"slug": "admin"
|
||||
},
|
||||
"ou": {
|
||||
"name": "Collectivit\u00e9 par d\u00e9faut",
|
||||
"slug": "default"
|
||||
},
|
||||
"target": {
|
||||
"app_label": "a2_rbac",
|
||||
"model": "role"
|
||||
},
|
||||
"target_ct": {
|
||||
"app_label": "contenttypes",
|
||||
"model": "contenttype"
|
||||
}
|
||||
},
|
||||
{
|
||||
"operation": {
|
||||
"slug": "search"
|
||||
},
|
||||
"ou": null,
|
||||
"target": {
|
||||
"name": "Collectivit\u00e9 par d\u00e9faut",
|
||||
"slug": "default"
|
||||
},
|
||||
"target_ct": {
|
||||
"app_label": "a2_rbac",
|
||||
"model": "organizationalunit"
|
||||
}
|
||||
},
|
||||
{
|
||||
"operation": {
|
||||
"slug": "view"
|
||||
},
|
||||
"ou": {
|
||||
"name": "Collectivit\u00e9 par d\u00e9faut",
|
||||
"slug": "default"
|
||||
},
|
||||
"target": {
|
||||
"app_label": "custom_user",
|
||||
"model": "user"
|
||||
},
|
||||
"target_ct": {
|
||||
"app_label": "contenttypes",
|
||||
"model": "contenttype"
|
||||
}
|
||||
}
|
||||
],
|
||||
"service": null,
|
||||
"slug": "_a2-manager-of-roles-default"
|
||||
},
|
||||
{
|
||||
"description": "",
|
||||
"external_id": "",
|
||||
"name": "Services - Collectivit\u00e9 par d\u00e9faut",
|
||||
"ou": {
|
||||
"name": "Collectivit\u00e9 par d\u00e9faut",
|
||||
"slug": "default"
|
||||
},
|
||||
"permissions": [
|
||||
{
|
||||
"operation": {
|
||||
"slug": "admin"
|
||||
},
|
||||
"ou": {
|
||||
"name": "Collectivit\u00e9 par d\u00e9faut",
|
||||
"slug": "default"
|
||||
},
|
||||
"target": {
|
||||
"app_label": "authentic2",
|
||||
"model": "service"
|
||||
},
|
||||
"target_ct": {
|
||||
"app_label": "contenttypes",
|
||||
"model": "contenttype"
|
||||
}
|
||||
},
|
||||
{
|
||||
"operation": {
|
||||
"slug": "search"
|
||||
},
|
||||
"ou": null,
|
||||
"target": {
|
||||
"name": "Collectivit\u00e9 par d\u00e9faut",
|
||||
"slug": "default"
|
||||
},
|
||||
"target_ct": {
|
||||
"app_label": "a2_rbac",
|
||||
"model": "organizationalunit"
|
||||
}
|
||||
}
|
||||
],
|
||||
"service": null,
|
||||
"slug": "_a2-manager-of-services-default"
|
||||
},
|
||||
{
|
||||
"description": "",
|
||||
"external_id": "",
|
||||
"name": "Users - Collectivit\u00e9 par d\u00e9faut",
|
||||
"ou": {
|
||||
"name": "Collectivit\u00e9 par d\u00e9faut",
|
||||
"slug": "default"
|
||||
},
|
||||
"permissions": [
|
||||
{
|
||||
"operation": {
|
||||
"slug": "admin"
|
||||
},
|
||||
"ou": {
|
||||
"name": "Collectivit\u00e9 par d\u00e9faut",
|
||||
"slug": "default"
|
||||
},
|
||||
"target": {
|
||||
"app_label": "custom_user",
|
||||
"model": "user"
|
||||
},
|
||||
"target_ct": {
|
||||
"app_label": "contenttypes",
|
||||
"model": "contenttype"
|
||||
}
|
||||
},
|
||||
{
|
||||
"operation": {
|
||||
"slug": "search"
|
||||
},
|
||||
"ou": null,
|
||||
"target": {
|
||||
"name": "Collectivit\u00e9 par d\u00e9faut",
|
||||
"slug": "default"
|
||||
},
|
||||
"target_ct": {
|
||||
"app_label": "a2_rbac",
|
||||
"model": "organizationalunit"
|
||||
}
|
||||
}
|
||||
],
|
||||
"service": null,
|
||||
"slug": "_a2-manager-of-users-default"
|
||||
},
|
||||
{
|
||||
"description": "",
|
||||
"external_id": "",
|
||||
"name": "Authenticators - Collectivité par défaut",
|
||||
"ou": {
|
||||
"name": "Collectivité par défaut", "slug": "default"
|
||||
},
|
||||
"permissions": [
|
||||
{
|
||||
"operation": {
|
||||
"slug": "admin"
|
||||
},
|
||||
"ou": {
|
||||
"name": "Collectivité par défaut",
|
||||
"slug": "default"
|
||||
},
|
||||
"target": {
|
||||
"app_label": "authenticators",
|
||||
"model": "baseauthenticator"
|
||||
},
|
||||
"target_ct": {
|
||||
"app_label": "contenttypes",
|
||||
"model": "contenttype"
|
||||
}
|
||||
},
|
||||
{
|
||||
"operation": {
|
||||
"slug": "search"
|
||||
},
|
||||
"ou": null,
|
||||
"target": {
|
||||
"name": "Collectivité par défaut",
|
||||
"slug": "default"
|
||||
},
|
||||
"target_ct": {
|
||||
"app_label": "a2_rbac",
|
||||
"model": "organizationalunit"
|
||||
}
|
||||
}
|
||||
],
|
||||
"service": null,
|
||||
"slug": "_a2-manager-of-authenticators-default"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
@ -6,6 +6,7 @@ import time
|
|||
from unittest import mock
|
||||
|
||||
import pytest
|
||||
from authentic2.a2_rbac.models import OrganizationalUnit, Role
|
||||
from authentic2.data_transfer import export_site
|
||||
from django.core.management import call_command
|
||||
from django.db import connection
|
||||
|
@ -536,34 +537,23 @@ def test_hobo_deploy(monkeypatch, tenant_base, mocker, skeleton_dir, tmp_path):
|
|||
|
||||
|
||||
def test_import_template(db, tenant_base):
|
||||
def listify(value):
|
||||
if isinstance(value, dict):
|
||||
value = list((k, listify(v) or []) for k, v in value.items())
|
||||
value.sort()
|
||||
if isinstance(value, list):
|
||||
value = list(listify(x) for x in value)
|
||||
value.sort()
|
||||
return value
|
||||
|
||||
def sort_and_remove_uuid(value):
|
||||
if isinstance(value, dict):
|
||||
if 'uuid' in value:
|
||||
value.pop('uuid')
|
||||
value = {k: sort_and_remove_uuid(v) for k, v in value.items()}
|
||||
if isinstance(value, list):
|
||||
value = [sort_and_remove_uuid(elt) for elt in value]
|
||||
value.sort(key=lambda elt: listify(elt))
|
||||
return value
|
||||
|
||||
call_command('create_tenant', 'authentic.example.net')
|
||||
tenant = TenantMiddleware.get_tenant_by_hostname('authentic.example.net')
|
||||
connection.set_tenant(tenant)
|
||||
call_command('import_template', '--basepath=%s' % os.path.dirname(__file__), 'data_authentic_export_site')
|
||||
content = open('%s/data_authentic_export_site.json' % os.path.dirname(__file__)).read()
|
||||
|
||||
export_ref = sort_and_remove_uuid(export_site())
|
||||
file_ref = sort_and_remove_uuid(json.loads(content))
|
||||
assert export_ref == file_ref
|
||||
Role.objects.all().delete()
|
||||
OrganizationalUnit.objects.all().delete()
|
||||
|
||||
call_command('import_template', '--basepath=%s' % os.path.dirname(__file__), 'data_authentic_export_site')
|
||||
|
||||
# we don't care about testing automatically created internal roles, remove them
|
||||
Role.objects.filter(slug__startswith='_').delete()
|
||||
|
||||
site_export = export_site()
|
||||
assert len(site_export['roles']) == 1
|
||||
assert site_export['roles'][0]['name'] == 'test role'
|
||||
assert len(site_export['ous']) == 1
|
||||
assert site_export['ous'][0]['name'] == 'test ou'
|
||||
|
||||
|
||||
def test_hobo_deploy_with_legacy_urls(monkeypatch, tenant_base, mocker, skeleton_dir, tmp_path):
|
||||
|
|
Loading…
Reference in New Issue