about summary refs log tree commit diff
diff options
context:
space:
mode:
authorFrederick Muriuki Muriithi2024-04-24 11:34:09 +0300
committerFrederick Muriuki Muriithi2024-04-24 11:34:09 +0300
commit6d61ef8de94fa87cb6ee31cc57f1f37dd04d097d (patch)
tree24234aa8fa1c4b6227322aa3c58e130697cb96bb
parentb317cd7e3684bf7c034ad0a1bb208d55fb87b164 (diff)
downloadgn-auth-6d61ef8de94fa87cb6ee31cc57f1f37dd04d097d.tar.gz
Move the errors module up one level to break circular dependencies.
-rw-r--r--gn_auth/auth/authentication/oauth2/grants/password_grant.py3
-rw-r--r--gn_auth/auth/authentication/oauth2/models/oauth2client.py3
-rw-r--r--gn_auth/auth/authentication/oauth2/models/oauth2token.py2
-rw-r--r--gn_auth/auth/authentication/oauth2/views.py4
-rw-r--r--gn_auth/auth/authentication/users.py2
-rw-r--r--gn_auth/auth/authorisation/checks.py4
-rw-r--r--gn_auth/auth/authorisation/data/views.py2
-rw-r--r--gn_auth/auth/authorisation/resources/errors.py2
-rw-r--r--gn_auth/auth/authorisation/resources/groups/data.py2
-rw-r--r--gn_auth/auth/authorisation/resources/groups/models.py2
-rw-r--r--gn_auth/auth/authorisation/resources/groups/views.py2
-rw-r--r--gn_auth/auth/authorisation/resources/models.py2
-rw-r--r--gn_auth/auth/authorisation/resources/views.py2
-rw-r--r--gn_auth/auth/authorisation/roles/models.py3
-rw-r--r--gn_auth/auth/authorisation/users/admin/views.py2
-rw-r--r--gn_auth/auth/authorisation/users/collections/models.py2
-rw-r--r--gn_auth/auth/authorisation/users/collections/views.py3
-rw-r--r--gn_auth/auth/authorisation/users/masquerade/models.py4
-rw-r--r--gn_auth/auth/authorisation/users/masquerade/views.py4
-rw-r--r--gn_auth/auth/authorisation/users/views.py2
-rw-r--r--gn_auth/auth/errors.py (renamed from gn_auth/auth/authorisation/errors.py)0
-rw-r--r--gn_auth/errors.py2
-rw-r--r--scripts/gn_auth_wsgi.py3
-rw-r--r--tests/unit/auth/test_groups.py2
-rw-r--r--tests/unit/auth/test_resources.py2
-rw-r--r--tests/unit/auth/test_roles.py2
26 files changed, 31 insertions, 32 deletions
diff --git a/gn_auth/auth/authentication/oauth2/grants/password_grant.py b/gn_auth/auth/authentication/oauth2/grants/password_grant.py
index 79382fd..acd0958 100644
--- a/gn_auth/auth/authentication/oauth2/grants/password_grant.py
+++ b/gn_auth/auth/authentication/oauth2/grants/password_grant.py
@@ -4,10 +4,9 @@ from flask import current_app as app
 from authlib.oauth2.rfc6749 import grants
 
 from gn_auth.auth.db import sqlite3 as db
+from gn_auth.auth.errors import NotFoundError
 from gn_auth.auth.authentication.users import valid_login, user_by_email
 
-from gn_auth.auth.authorisation.errors import NotFoundError
-
 class PasswordGrant(grants.ResourceOwnerPasswordCredentialsGrant):
     """Implement the 'Password' grant."""
     TOKEN_ENDPOINT_AUTH_METHODS = ["client_secret_basic", "client_secret_post"]
diff --git a/gn_auth/auth/authentication/oauth2/models/oauth2client.py b/gn_auth/auth/authentication/oauth2/models/oauth2client.py
index 98c3001..0f40688 100644
--- a/gn_auth/auth/authentication/oauth2/models/oauth2client.py
+++ b/gn_auth/auth/authentication/oauth2/models/oauth2client.py
@@ -11,13 +11,12 @@ from authlib.oauth2.rfc6749 import ClientMixin
 from pymonad.maybe import Just, Maybe, Nothing
 
 from gn_auth.auth.db import sqlite3 as db
+from gn_auth.auth.errors import NotFoundError
 from gn_auth.auth.authentication.users import (User,
                                                fetch_users,
                                                user_by_id,
                                                same_password)
 
-from gn_auth.auth.authorisation.errors import NotFoundError
-
 
 @dataclass(frozen=True)
 class OAuth2Client(ClientMixin):
diff --git a/gn_auth/auth/authentication/oauth2/models/oauth2token.py b/gn_auth/auth/authentication/oauth2/models/oauth2token.py
index 45962cd..6ec5c3d 100644
--- a/gn_auth/auth/authentication/oauth2/models/oauth2token.py
+++ b/gn_auth/auth/authentication/oauth2/models/oauth2token.py
@@ -10,8 +10,8 @@ from pymonad.tools import monad_from_none_or_value
 from pymonad.maybe import Just, Maybe, Nothing
 
 from gn_auth.auth.db import sqlite3 as db
+from gn_auth.auth.errors import NotFoundError
 from gn_auth.auth.authentication.users import User, user_by_id
-from gn_auth.auth.authorisation.errors import NotFoundError
 
 from .oauth2client import client, OAuth2Client
 
diff --git a/gn_auth/auth/authentication/oauth2/views.py b/gn_auth/auth/authentication/oauth2/views.py
index add2cba..8e2ceef 100644
--- a/gn_auth/auth/authentication/oauth2/views.py
+++ b/gn_auth/auth/authentication/oauth2/views.py
@@ -16,13 +16,13 @@ from flask import (
 
 from gn_auth.auth.db import sqlite3 as db
 from gn_auth.auth.db.sqlite3 import with_db_connection
-from gn_auth.auth.authorisation.errors import ForbiddenAccess
+from gn_auth.auth.errors import NotFoundError, ForbiddenAccess
+from gn_auth.auth.authentication.users import valid_login, user_by_email
 
 from .resource_server import require_oauth
 from .endpoints.revocation import RevocationEndpoint
 from .endpoints.introspection import IntrospectionEndpoint
 
-from ..users import valid_login, NotFoundError, user_by_email
 
 auth = Blueprint("auth", __name__)
 
diff --git a/gn_auth/auth/authentication/users.py b/gn_auth/auth/authentication/users.py
index 1f364b8..ca37524 100644
--- a/gn_auth/auth/authentication/users.py
+++ b/gn_auth/auth/authentication/users.py
@@ -7,7 +7,7 @@ from argon2 import PasswordHasher
 from argon2.exceptions import VerifyMismatchError
 
 from gn_auth.auth.db import sqlite3 as db
-from gn_auth.auth.authorisation.errors import NotFoundError
+from gn_auth.auth.errors import NotFoundError
 
 
 @dataclass(frozen=True)
diff --git a/gn_auth/auth/authorisation/checks.py b/gn_auth/auth/authorisation/checks.py
index 4d5b6bc..66bb723 100644
--- a/gn_auth/auth/authorisation/checks.py
+++ b/gn_auth/auth/authorisation/checks.py
@@ -4,9 +4,9 @@ from typing import Callable
 
 from flask import request, current_app as app
 
-from . import privileges as auth_privs
-from .errors import InvalidData, AuthorisationError
+from gn_auth.auth.errors import InvalidData, AuthorisationError
 
+from . import privileges as auth_privs
 from ..db import sqlite3 as db
 from ..authentication.oauth2.resource_server import require_oauth
 
diff --git a/gn_auth/auth/authorisation/data/views.py b/gn_auth/auth/authorisation/data/views.py
index 01fffcd..83f4e4b 100644
--- a/gn_auth/auth/authorisation/data/views.py
+++ b/gn_auth/auth/authorisation/data/views.py
@@ -14,6 +14,7 @@ from flask import request, jsonify, Response, Blueprint, current_app as app
 from gn_auth import jobs
 from gn_auth.commands import run_async_cmd
 
+from gn_auth.auth.errors import InvalidData, NotFoundError
 from gn_auth.auth.authorisation.resources.groups.models import group_by_id
 
 from ...db import sqlite3 as db
@@ -21,7 +22,6 @@ from ...db import mariadb as gn3db
 from ...db.sqlite3 import with_db_connection
 
 from ..checks import require_json
-from ..errors import InvalidData, NotFoundError
 
 from ..users.models import user_resource_roles
 
diff --git a/gn_auth/auth/authorisation/resources/errors.py b/gn_auth/auth/authorisation/resources/errors.py
index dc6c379..a13ea1f 100644
--- a/gn_auth/auth/authorisation/resources/errors.py
+++ b/gn_auth/auth/authorisation/resources/errors.py
@@ -1,6 +1,6 @@
 """Exceptions for Authorisation"""
 
-from gn_auth.auth.authorisation.errors import AuthorisationError
+from gn_auth.auth.errors import AuthorisationError
 
 class MissingGroupError(AuthorisationError):
     """Raised for any resource operation without a group."""
diff --git a/gn_auth/auth/authorisation/resources/groups/data.py b/gn_auth/auth/authorisation/resources/groups/data.py
index 9fcdc6e..702955d 100644
--- a/gn_auth/auth/authorisation/resources/groups/data.py
+++ b/gn_auth/auth/authorisation/resources/groups/data.py
@@ -4,8 +4,8 @@ from MySQLdb.cursors import DictCursor
 from gn_auth.auth.db import mariadb as gn3db
 from gn_auth.auth.db import sqlite3 as authdb
 
+from gn_auth.auth.errors import NotFoundError
 from gn_auth.auth.authorisation.checks import authorised_p
-from gn_auth.auth.authorisation.errors import NotFoundError
 from gn_auth.auth.authorisation.resources.groups import Group
 
 def __fetch_mrna_data_by_ids__(
diff --git a/gn_auth/auth/authorisation/resources/groups/models.py b/gn_auth/auth/authorisation/resources/groups/models.py
index e8c3492..3feefa6 100644
--- a/gn_auth/auth/authorisation/resources/groups/models.py
+++ b/gn_auth/auth/authorisation/resources/groups/models.py
@@ -15,7 +15,7 @@ from gn_auth.auth.authorisation.checks import authorised_p
 from gn_auth.auth.authorisation.privileges import Privilege
 from gn_auth.auth.authorisation.resources.base import Resource
 from gn_auth.auth.authorisation.resources.errors import MissingGroupError
-from gn_auth.auth.authorisation.errors import (
+from gn_auth.auth.errors import (
     NotFoundError, AuthorisationError, InconsistencyError)
 from gn_auth.auth.authorisation.roles.models import (
     Role, create_role, check_user_editable, revoke_user_role_by_name,
diff --git a/gn_auth/auth/authorisation/resources/groups/views.py b/gn_auth/auth/authorisation/resources/groups/views.py
index 303368c..fe7a3de 100644
--- a/gn_auth/auth/authorisation/resources/groups/views.py
+++ b/gn_auth/auth/authorisation/resources/groups/views.py
@@ -19,7 +19,7 @@ from gn_auth.auth.authorisation.roles.models import user_roles
 
 from gn_auth.auth.authorisation.checks import authorised_p
 from gn_auth.auth.authorisation.privileges import Privilege, privileges_by_ids
-from gn_auth.auth.authorisation.errors import InvalidData, NotFoundError, AuthorisationError
+from gn_auth.auth.errors import InvalidData, NotFoundError, AuthorisationError
 
 from gn_auth.auth.authentication.users import User
 from gn_auth.auth.authentication.oauth2.resource_server import require_oauth
diff --git a/gn_auth/auth/authorisation/resources/models.py b/gn_auth/auth/authorisation/resources/models.py
index 9931559..e23aac5 100644
--- a/gn_auth/auth/authorisation/resources/models.py
+++ b/gn_auth/auth/authorisation/resources/models.py
@@ -11,7 +11,7 @@ from gn_auth.auth.db.sqlite3 import with_db_connection
 from gn_auth.auth.authorisation.roles import Role
 from gn_auth.auth.authorisation.privileges import Privilege
 from gn_auth.auth.authorisation.checks import authorised_p
-from gn_auth.auth.authorisation.errors import NotFoundError, AuthorisationError
+from gn_auth.auth.errors import NotFoundError, AuthorisationError
 
 from .checks import authorised_for
 from .base import Resource, ResourceCategory
diff --git a/gn_auth/auth/authorisation/resources/views.py b/gn_auth/auth/authorisation/resources/views.py
index e256b3e..58adaa2 100644
--- a/gn_auth/auth/authorisation/resources/views.py
+++ b/gn_auth/auth/authorisation/resources/views.py
@@ -14,7 +14,7 @@ from gn_auth.auth.db import sqlite3 as db
 from gn_auth.auth.db.sqlite3 import with_db_connection
 
 from gn_auth.auth.authorisation.roles import Role
-from gn_auth.auth.authorisation.errors import InvalidData, InconsistencyError, AuthorisationError
+from gn_auth.auth.errors import InvalidData, InconsistencyError, AuthorisationError
 
 from gn_auth.auth.authentication.oauth2.resource_server import require_oauth
 from gn_auth.auth.authentication.users import User, user_by_id, user_by_email
diff --git a/gn_auth/auth/authorisation/roles/models.py b/gn_auth/auth/authorisation/roles/models.py
index b45dcc1..3ec3316 100644
--- a/gn_auth/auth/authorisation/roles/models.py
+++ b/gn_auth/auth/authorisation/roles/models.py
@@ -7,12 +7,13 @@ from typing import Sequence, Iterable
 
 from pymonad.either import Left, Right, Either
 
+from gn_auth.auth.errors import NotFoundError, AuthorisationError
+
 from ...db import sqlite3 as db
 from ...authentication.users import User
 
 from ..checks import authorised_p
 from ..privileges import Privilege
-from ..errors import NotFoundError, AuthorisationError
 
 
 @dataclass(frozen=True)
diff --git a/gn_auth/auth/authorisation/users/admin/views.py b/gn_auth/auth/authorisation/users/admin/views.py
index aed8b31..7ffee95 100644
--- a/gn_auth/auth/authorisation/users/admin/views.py
+++ b/gn_auth/auth/authorisation/users/admin/views.py
@@ -18,7 +18,7 @@ from flask import (
 
 
 from gn_auth import session
-from gn_auth.auth.authorisation.errors import NotFoundError
+from gn_auth.auth.errors import NotFoundError
 
 from ....db import sqlite3 as db
 from ....db.sqlite3 import with_db_connection
diff --git a/gn_auth/auth/authorisation/users/collections/models.py b/gn_auth/auth/authorisation/users/collections/models.py
index 9397094..b4a24f3 100644
--- a/gn_auth/auth/authorisation/users/collections/models.py
+++ b/gn_auth/auth/authorisation/users/collections/models.py
@@ -6,7 +6,7 @@ from datetime import datetime
 from redis import Redis
 from email_validator import validate_email, EmailNotValidError
 
-from ...errors import InvalidData, NotFoundError
+from gn_auth.auth.errors import InvalidData, NotFoundError
 
 from ..models import User
 
diff --git a/gn_auth/auth/authorisation/users/collections/views.py b/gn_auth/auth/authorisation/users/collections/views.py
index 6c68b35..eeae91d 100644
--- a/gn_auth/auth/authorisation/users/collections/views.py
+++ b/gn_auth/auth/authorisation/users/collections/views.py
@@ -4,6 +4,8 @@ from uuid import UUID
 from redis import Redis
 from flask import jsonify, request, Response, Blueprint, current_app
 
+from gn_auth.auth.errors import NotFoundError
+
 from ....db import sqlite3 as db
 from ....db.sqlite3 import with_db_connection
 
@@ -11,7 +13,6 @@ from ....authentication.users import User, user_by_id
 from ....authentication.oauth2.resource_server import require_oauth
 
 from ...checks import require_json
-from ...errors import NotFoundError
 
 from .models import (
     add_traits,
diff --git a/gn_auth/auth/authorisation/users/masquerade/models.py b/gn_auth/auth/authorisation/users/masquerade/models.py
index 86b9e53..57bc564 100644
--- a/gn_auth/auth/authorisation/users/masquerade/models.py
+++ b/gn_auth/auth/authorisation/users/masquerade/models.py
@@ -6,9 +6,9 @@ from datetime import datetime
 from flask import current_app as app
 
 
-from ...errors import ForbiddenAccess
-from ...roles.models import user_roles
+from gn_auth.auth.errors import ForbiddenAccess
 
+from ...roles.models import user_roles
 from ....db import sqlite3 as db
 from ....authentication.users import User
 from ....authentication.oauth2.models.oauth2token import (
diff --git a/gn_auth/auth/authorisation/users/masquerade/views.py b/gn_auth/auth/authorisation/users/masquerade/views.py
index b0464ba..276859a 100644
--- a/gn_auth/auth/authorisation/users/masquerade/views.py
+++ b/gn_auth/auth/authorisation/users/masquerade/views.py
@@ -5,9 +5,9 @@ from functools import partial
 
 from flask import request, jsonify, Response, Blueprint
 
-from ...errors import InvalidData
-from ...checks import require_json
+from gn_auth.auth.errors import InvalidData
 
+from ...checks import require_json
 from ....db.sqlite3 import with_db_connection
 from ....authentication.users import user_by_id
 from ....authentication.oauth2.resource_server import require_oauth
diff --git a/gn_auth/auth/authorisation/users/views.py b/gn_auth/auth/authorisation/users/views.py
index 7a32292..9ea0c59 100644
--- a/gn_auth/auth/authorisation/users/views.py
+++ b/gn_auth/auth/authorisation/users/views.py
@@ -14,7 +14,7 @@ from gn_auth.auth.authorisation.resources.models import (
     user_resources as _user_resources)
 from gn_auth.auth.authorisation.roles.models import (
     assign_default_roles, user_roles as _user_roles)
-from gn_auth.auth.authorisation.errors import (
+from gn_auth.auth.errors import (
     NotFoundError, UsernameError, PasswordError, UserRegistrationError)
 from gn_auth.auth.authorisation.resources.groups.models import (
     user_group as _user_group)
diff --git a/gn_auth/auth/authorisation/errors.py b/gn_auth/auth/errors.py
index 60d6a22..60d6a22 100644
--- a/gn_auth/auth/authorisation/errors.py
+++ b/gn_auth/auth/errors.py
diff --git a/gn_auth/errors.py b/gn_auth/errors.py
index 7e90659..7b6ad33 100644
--- a/gn_auth/errors.py
+++ b/gn_auth/errors.py
@@ -4,7 +4,7 @@ import traceback
 from werkzeug.exceptions import NotFound
 from flask import Flask, request, jsonify, current_app, render_template
 
-from gn_auth.auth.authorisation.errors import AuthorisationError
+from gn_auth.auth.errors import AuthorisationError
 
 def add_trace(exc: Exception, errobj: dict) -> dict:
     """Add the traceback to the error handling object."""
diff --git a/scripts/gn_auth_wsgi.py b/scripts/gn_auth_wsgi.py
index 1de0b56..811a0d5 100644
--- a/scripts/gn_auth_wsgi.py
+++ b/scripts/gn_auth_wsgi.py
@@ -17,9 +17,8 @@ from gn_auth import migrations
 from gn_auth import create_app
 
 from gn_auth.auth.db import sqlite3 as db
+from gn_auth.auth.errors import NotFoundError
 from gn_auth.auth.authentication.users import user_by_id, hash_password
-
-from gn_auth.auth.authorisation.errors import NotFoundError
 from gn_auth.auth.authorisation.users.admin.models import make_sys_admin
 
 from scripts import register_sys_admin as rsysadm# type: ignore[import]
diff --git a/tests/unit/auth/test_groups.py b/tests/unit/auth/test_groups.py
index a6a0da5..c9d8b19 100644
--- a/tests/unit/auth/test_groups.py
+++ b/tests/unit/auth/test_groups.py
@@ -5,10 +5,10 @@ import pytest
 from pymonad.maybe import Nothing
 
 from gn_auth.auth.db import sqlite3 as db
+from gn_auth.auth.errors import AuthorisationError
 from gn_auth.auth.authentication.users import User
 from gn_auth.auth.authorisation.roles import Role
 from gn_auth.auth.authorisation.privileges import Privilege
-from gn_auth.auth.authorisation.errors import AuthorisationError
 from gn_auth.auth.authorisation.resources.groups.models import (
     Group, GroupRole, user_group, create_group, create_group_role)
 
diff --git a/tests/unit/auth/test_resources.py b/tests/unit/auth/test_resources.py
index 9b4d0e7..85641be 100644
--- a/tests/unit/auth/test_resources.py
+++ b/tests/unit/auth/test_resources.py
@@ -4,8 +4,8 @@ import uuid
 import pytest
 
 from gn_auth.auth.db import sqlite3 as db
+from gn_auth.auth.errors import AuthorisationError
 
-from gn_auth.auth.authorisation.errors import AuthorisationError
 from gn_auth.auth.authorisation.resources.groups import Group
 from gn_auth.auth.authorisation.resources.models import (
     Resource, user_resources, create_resource, ResourceCategory,
diff --git a/tests/unit/auth/test_roles.py b/tests/unit/auth/test_roles.py
index 6c8dbae..00148a0 100644
--- a/tests/unit/auth/test_roles.py
+++ b/tests/unit/auth/test_roles.py
@@ -4,8 +4,8 @@ import uuid
 import pytest
 
 from gn_auth.auth.db import sqlite3 as db
+from gn_auth.auth.errors import AuthorisationError
 from gn_auth.auth.authorisation.privileges import Privilege
-from gn_auth.auth.authorisation.errors import AuthorisationError
 from gn_auth.auth.authorisation.roles.models import Role, user_roles, create_role
 
 from tests.unit.auth import conftest