diff --git a/pytest.ini b/pytest.ini
index 3b97c3651f31436f2d155ac1af94d2ef178277b1..98c5ccf6f89386ccf13d3d6cd81225d37e683cb3 100644
--- a/pytest.ini
+++ b/pytest.ini
@@ -1,9 +1,8 @@
 [pytest]
 # Remove the pytest_swh_* entries when they stop getting imported automatically
-addopts = -p no:flask -p no:pytest_swh_scheduler -p no:pytest_swh_storage -p no:pytest_swh_core
+addopts = --ignore=swh/deposit/settings -p no:flask -p no:pytest_swh_scheduler -p no:pytest_swh_storage -p no:pytest_swh_core
 norecursedirs = build docs .*
 DJANGO_SETTINGS_MODULE = swh.deposit.settings.testing
-
 markers =
     db: execute tests using a postgresql database
     fs: execute tests using the filesystem
diff --git a/swh/deposit/api/collection.py b/swh/deposit/api/collection.py
index e80c0bf0b5607583d2d64efd31af8e7740427d36..80c87a78021ff9e2136697d34a75f1c3aaafd084 100644
--- a/swh/deposit/api/collection.py
+++ b/swh/deposit/api/collection.py
@@ -9,22 +9,22 @@ from django.shortcuts import render
 from rest_framework import status
 from rest_framework.generics import ListAPIView
 
-from ..config import DEPOSIT_STATUS_LOAD_SUCCESS, EDIT_IRI
-from ..models import Deposit
-from ..parsers import (
-    SWHAtomEntryParser,
-    SWHFileUploadTarParser,
-    SWHFileUploadZipParser,
-    SWHMultiPartParser,
-)
-from .common import (
+from swh.deposit.api.common import (
     ACCEPT_ARCHIVE_CONTENT_TYPES,
     APIPost,
     ParsedRequestHeaders,
     Receipt,
     get_collection_by_name,
 )
-from .utils import DefaultPagination, DepositSerializer
+from swh.deposit.api.utils import DefaultPagination, DepositSerializer
+from swh.deposit.config import DEPOSIT_STATUS_LOAD_SUCCESS, EDIT_IRI
+from swh.deposit.models import Deposit
+from swh.deposit.parsers import (
+    SWHAtomEntryParser,
+    SWHFileUploadTarParser,
+    SWHFileUploadZipParser,
+    SWHMultiPartParser,
+)
 
 
 class CollectionAPI(ListAPIView, APIPost):
diff --git a/swh/deposit/api/common.py b/swh/deposit/api/common.py
index 7f82365e996ffd0effb64d9a0ccbf688365f1c03..c24d925ce49019085bc014ba822ac6f1a406f04c 100644
--- a/swh/deposit/api/common.py
+++ b/swh/deposit/api/common.py
@@ -23,13 +23,6 @@ from rest_framework.authentication import BaseAuthentication, BasicAuthenticatio
 from rest_framework.permissions import BasePermission, IsAuthenticated
 from rest_framework.request import Request
 from rest_framework.views import APIView
-
-from swh.deposit.api.checks import check_metadata, check_url_match_provider
-from swh.deposit.api.converters import convert_status_detail
-from swh.deposit.auth import HasDepositPermission, KeycloakBasicAuthentication
-from swh.deposit.models import DEPOSIT_METADATA_ONLY, Deposit
-from swh.deposit.parsers import parse_xml
-from swh.deposit.utils import compute_metadata_context, parse_swh_metadata_provenance
 from swh.model import hashutil
 from swh.model.model import (
     MetadataAuthority,
@@ -45,7 +38,10 @@ from swh.model.swhids import (
 )
 from swh.scheduler.utils import create_oneshot_task_dict
 
-from ..config import (
+from swh.deposit.api.checks import check_metadata, check_url_match_provider
+from swh.deposit.api.converters import convert_status_detail
+from swh.deposit.auth import HasDepositPermission, KeycloakBasicAuthentication
+from swh.deposit.config import (
     ARCHIVE_KEY,
     ARCHIVE_TYPE,
     CONT_FILE_IRI,
@@ -60,7 +56,7 @@ from ..config import (
     STATE_IRI,
     APIConfig,
 )
-from ..errors import (
+from swh.deposit.errors import (
     BAD_REQUEST,
     CHECKSUM_MISMATCH,
     ERROR_CONTENT,
@@ -73,10 +69,19 @@ from ..errors import (
     DepositError,
     ParserError,
 )
-from ..models import DepositClient, DepositCollection, DepositRequest
-from ..utils import (
+from swh.deposit.models import (
+    DEPOSIT_METADATA_ONLY,
+    Deposit,
+    DepositClient,
+    DepositCollection,
+    DepositRequest,
+)
+from swh.deposit.parsers import parse_xml
+from swh.deposit.utils import (
+    compute_metadata_context,
     extended_swhid_from_qualified,
     parse_swh_deposit_origin,
+    parse_swh_metadata_provenance,
     parse_swh_reference,
 )
 
diff --git a/swh/deposit/api/content.py b/swh/deposit/api/content.py
index 7def160210febc7a6a7c4624a49067a80d5c1721..1b5e1fffcaf5bf9eaa6c28315ba0f4df742955f6 100644
--- a/swh/deposit/api/content.py
+++ b/swh/deposit/api/content.py
@@ -7,8 +7,8 @@ from django.http import HttpResponse
 from django.shortcuts import render
 from rest_framework import status
 
-from ..models import DEPOSIT_STATUS_DETAIL, DepositRequest
-from .common import APIBase, get_deposit_by_id
+from swh.deposit.api.common import APIBase, get_deposit_by_id
+from swh.deposit.models import DEPOSIT_STATUS_DETAIL, DepositRequest
 
 
 class ContentAPI(APIBase):
diff --git a/swh/deposit/api/edit.py b/swh/deposit/api/edit.py
index 67e8bf85a63c618589ff0df7cab7f7fe3018dcb4..9ab054535ce1172a19706fe2c93ef39e7c237730 100644
--- a/swh/deposit/api/edit.py
+++ b/swh/deposit/api/edit.py
@@ -4,14 +4,13 @@
 # See top-level LICENSE file for more information
 
 from rest_framework.request import Request
-
-from swh.deposit.models import Deposit
 from swh.model.swhids import QualifiedSWHID
 
-from ..config import DEPOSIT_STATUS_LOAD_SUCCESS
-from ..errors import BAD_REQUEST, DepositError, ParserError
-from ..parsers import SWHAtomEntryParser, SWHMultiPartParser
-from .common import APIDelete, APIPut, ParsedRequestHeaders
+from swh.deposit.api.common import APIDelete, APIPut, ParsedRequestHeaders
+from swh.deposit.config import DEPOSIT_STATUS_LOAD_SUCCESS
+from swh.deposit.errors import BAD_REQUEST, DepositError, ParserError
+from swh.deposit.models import Deposit
+from swh.deposit.parsers import SWHAtomEntryParser, SWHMultiPartParser
 
 
 class EditAPI(APIPut, APIDelete):
diff --git a/swh/deposit/api/edit_media.py b/swh/deposit/api/edit_media.py
index b673ff759bedd410cdc498701e692009f34a08ea..e12b1ad7fd335cd2ef15544c76b882cb342a2f05 100644
--- a/swh/deposit/api/edit_media.py
+++ b/swh/deposit/api/edit_media.py
@@ -7,11 +7,7 @@ from typing import Optional, Tuple
 
 from rest_framework import status
 
-from ..config import CONT_FILE_IRI
-from ..errors import BAD_REQUEST, DepositError
-from ..models import Deposit
-from ..parsers import SWHFileUploadTarParser, SWHFileUploadZipParser
-from .common import (
+from swh.deposit.api.common import (
     ACCEPT_ARCHIVE_CONTENT_TYPES,
     APIDelete,
     APIPost,
@@ -19,6 +15,10 @@ from .common import (
     ParsedRequestHeaders,
     Receipt,
 )
+from swh.deposit.config import CONT_FILE_IRI
+from swh.deposit.errors import BAD_REQUEST, DepositError
+from swh.deposit.models import Deposit
+from swh.deposit.parsers import SWHFileUploadTarParser, SWHFileUploadZipParser
 
 
 class EditMediaAPI(APIPost, APIPut, APIDelete):
diff --git a/swh/deposit/api/private/__init__.py b/swh/deposit/api/private/__init__.py
index acf91c024a1dd1030289690ed1bdbaa7ceb56e2a..ab7217840eeb2f3ee233f832aaf916ff4f416351 100644
--- a/swh/deposit/api/private/__init__.py
+++ b/swh/deposit/api/private/__init__.py
@@ -8,8 +8,8 @@ from typing import Optional
 from rest_framework.permissions import AllowAny
 from rest_framework.views import APIView
 
-from ...config import METADATA_TYPE, APIConfig
-from ...models import Deposit, DepositRequest
+from swh.deposit.config import METADATA_TYPE, APIConfig
+from swh.deposit.models import Deposit, DepositRequest
 
 
 class DepositReadMixin:
diff --git a/swh/deposit/api/private/deposit_check.py b/swh/deposit/api/private/deposit_check.py
index e24310aa070ff9bfade754dd952549aaab5dba38..bfd12eee083f77d721b20327c60b5fb12d44abf5 100644
--- a/swh/deposit/api/private/deposit_check.py
+++ b/swh/deposit/api/private/deposit_check.py
@@ -14,14 +14,17 @@ import zipfile
 
 from rest_framework import status
 from rest_framework.request import Request
-
 from swh.scheduler.utils import create_oneshot_task_dict
 
-from . import APIPrivateView, DepositReadMixin
-from ...config import ARCHIVE_TYPE, DEPOSIT_STATUS_REJECTED, DEPOSIT_STATUS_VERIFIED
-from ...models import Deposit, DepositRequest
-from ..checks import check_metadata
-from ..common import APIGet
+from swh.deposit.api.checks import check_metadata
+from swh.deposit.api.common import APIGet
+from swh.deposit.api.private import APIPrivateView, DepositReadMixin
+from swh.deposit.config import (
+    ARCHIVE_TYPE,
+    DEPOSIT_STATUS_REJECTED,
+    DEPOSIT_STATUS_VERIFIED,
+)
+from swh.deposit.models import Deposit, DepositRequest
 
 MANDATORY_ARCHIVE_UNREADABLE = (
     "At least one of its associated archives is not readable"  # noqa
diff --git a/swh/deposit/api/private/deposit_list.py b/swh/deposit/api/private/deposit_list.py
index 30ca768e4305541bac6182258722793827893760..63c58112f3d104460d2f2c01238d1ca702203c67 100644
--- a/swh/deposit/api/private/deposit_list.py
+++ b/swh/deposit/api/private/deposit_list.py
@@ -19,13 +19,12 @@ from rest_framework.generics import ListAPIView
 from rest_framework.permissions import AllowAny
 from rest_framework.request import Request
 import sentry_sdk
+from swh.model.swhids import QualifiedSWHID
 
+from swh.deposit.api.private import APIPrivateView
 from swh.deposit.api.utils import DefaultPagination, DepositSerializer
+from swh.deposit.models import Deposit
 from swh.deposit.utils import parse_swh_deposit_origin, parse_swh_metadata_provenance
-from swh.model.swhids import QualifiedSWHID
-
-from . import APIPrivateView
-from ...models import Deposit
 
 
 def _enrich_deposit_with_metadata(deposit: Deposit) -> Deposit:
diff --git a/swh/deposit/api/private/deposit_read.py b/swh/deposit/api/private/deposit_read.py
index 94ecb201a5eec0a7bad5857edd966150a7ec8f6b..c8d8370cb6b028d00064e0e9b374b416ff8ad33b 100644
--- a/swh/deposit/api/private/deposit_read.py
+++ b/swh/deposit/api/private/deposit_read.py
@@ -12,17 +12,16 @@ from typing import Any, Dict, Iterator, List, Optional, Tuple
 from xml.etree import ElementTree
 
 from rest_framework import status
-
 from swh.core import tarball
-from swh.deposit.utils import NAMESPACES, normalize_date
 from swh.model.hashutil import hash_to_hex
 from swh.model.model import MetadataAuthorityType
 from swh.model.swhids import CoreSWHID
 
-from . import APIPrivateView, DepositReadMixin
-from ...config import ARCHIVE_TYPE, SWH_PERSON
-from ...models import Deposit
-from ..common import APIGet
+from swh.deposit.api.common import APIGet
+from swh.deposit.api.private import APIPrivateView, DepositReadMixin
+from swh.deposit.config import ARCHIVE_TYPE, SWH_PERSON
+from swh.deposit.models import Deposit
+from swh.deposit.utils import NAMESPACES, normalize_date
 
 
 @contextmanager
diff --git a/swh/deposit/api/private/deposit_update_status.py b/swh/deposit/api/private/deposit_update_status.py
index 2ccc45e17337a50b4a8db0b15efa65d5a9c1dd34..52ebf896a28edd6492ca831232b22ba6613dc973 100644
--- a/swh/deposit/api/private/deposit_update_status.py
+++ b/swh/deposit/api/private/deposit_update_status.py
@@ -4,14 +4,17 @@
 # See top-level LICENSE file for more information
 
 from rest_framework.parsers import JSONParser
-
 from swh.model.hashutil import hash_to_bytes
 from swh.model.swhids import CoreSWHID, ObjectType, QualifiedSWHID
 
-from . import APIPrivateView
-from ...errors import BAD_REQUEST, DepositError
-from ...models import DEPOSIT_STATUS_DETAIL, DEPOSIT_STATUS_LOAD_SUCCESS, Deposit
-from ..common import APIPut, ParsedRequestHeaders
+from swh.deposit.api.common import APIPut, ParsedRequestHeaders
+from swh.deposit.api.private import APIPrivateView
+from swh.deposit.errors import BAD_REQUEST, DepositError
+from swh.deposit.models import (
+    DEPOSIT_STATUS_DETAIL,
+    DEPOSIT_STATUS_LOAD_SUCCESS,
+    Deposit,
+)
 
 MANDATORY_KEYS = ["origin_url", "release_id", "directory_id", "snapshot_id"]
 
diff --git a/swh/deposit/api/private/urls.py b/swh/deposit/api/private/urls.py
index a5d29b0ed166216c7d2f71b5cfdfb552aa2e3624..650480a892060a72e8cff7e31071146fc1cdcb52 100644
--- a/swh/deposit/api/private/urls.py
+++ b/swh/deposit/api/private/urls.py
@@ -5,7 +5,11 @@
 
 from django.urls import re_path as url
 
-from ...config import (
+from swh.deposit.api.private.deposit_check import APIChecks
+from swh.deposit.api.private.deposit_list import APIList, deposit_list_datatables
+from swh.deposit.api.private.deposit_read import APIReadArchives, APIReadMetadata
+from swh.deposit.api.private.deposit_update_status import APIUpdateStatus
+from swh.deposit.config import (
     PRIVATE_CHECK_DEPOSIT,
     PRIVATE_GET_DEPOSIT_METADATA,
     PRIVATE_GET_RAW_CONTENT,
@@ -13,10 +17,6 @@ from ...config import (
     PRIVATE_LIST_DEPOSITS_DATATABLES,
     PRIVATE_PUT_DEPOSIT,
 )
-from .deposit_check import APIChecks
-from .deposit_list import APIList, deposit_list_datatables
-from .deposit_read import APIReadArchives, APIReadMetadata
-from .deposit_update_status import APIUpdateStatus
 
 urlpatterns = [
     # Retrieve deposit's raw archives' content
diff --git a/swh/deposit/api/state.py b/swh/deposit/api/state.py
index c56782feb5d08ee3834c512e5219694ac40ca114..08f8b47081a3afa6ceef7c3a05dbd9d396687bd7 100644
--- a/swh/deposit/api/state.py
+++ b/swh/deposit/api/state.py
@@ -7,9 +7,9 @@ from django.http import HttpResponse
 from django.shortcuts import render
 from rest_framework import status
 
-from ..models import DEPOSIT_STATUS_DETAIL
-from .common import APIBase, get_deposit_by_id
-from .converters import convert_status_detail
+from swh.deposit.api.common import APIBase, get_deposit_by_id
+from swh.deposit.api.converters import convert_status_detail
+from swh.deposit.models import DEPOSIT_STATUS_DETAIL
 
 
 class StateAPI(APIBase):
diff --git a/swh/deposit/api/sword_edit.py b/swh/deposit/api/sword_edit.py
index 1378a5c1572e9fb18ec56b4d77040b9c9e0d20a2..da7c2d056322f6fcf5e1ce6bd5c62bae5a066409 100644
--- a/swh/deposit/api/sword_edit.py
+++ b/swh/deposit/api/sword_edit.py
@@ -6,14 +6,13 @@
 from typing import Optional, Tuple
 
 from rest_framework import status
-
 from swh.storage import get_storage
 from swh.storage.interface import StorageInterface
 
-from ..config import EDIT_IRI, EM_IRI
-from ..models import Deposit
-from ..parsers import SWHAtomEntryParser, SWHMultiPartParser
-from .common import APIPost, ParsedRequestHeaders, Receipt
+from swh.deposit.api.common import APIPost, ParsedRequestHeaders, Receipt
+from swh.deposit.config import EDIT_IRI, EM_IRI
+from swh.deposit.models import Deposit
+from swh.deposit.parsers import SWHAtomEntryParser, SWHMultiPartParser
 
 
 class SwordEditAPI(APIPost):
diff --git a/swh/deposit/api/urls.py b/swh/deposit/api/urls.py
index c204c04d2f4869127665069d1c6d18b692ee3bd1..86b24a6b7dc2726e3d847aed306bf300b8f7b68c 100644
--- a/swh/deposit/api/urls.py
+++ b/swh/deposit/api/urls.py
@@ -10,14 +10,22 @@
 from django.shortcuts import render
 from django.urls import re_path as url
 
-from ..config import COL_IRI, CONT_FILE_IRI, EDIT_IRI, EM_IRI, SD_IRI, SE_IRI, STATE_IRI
-from .collection import CollectionAPI
-from .content import ContentAPI
-from .edit import EditAPI
-from .edit_media import EditMediaAPI
-from .service_document import ServiceDocumentAPI
-from .state import StateAPI
-from .sword_edit import SwordEditAPI
+from swh.deposit.api.collection import CollectionAPI
+from swh.deposit.api.content import ContentAPI
+from swh.deposit.api.edit import EditAPI
+from swh.deposit.api.edit_media import EditMediaAPI
+from swh.deposit.api.service_document import ServiceDocumentAPI
+from swh.deposit.api.state import StateAPI
+from swh.deposit.api.sword_edit import SwordEditAPI
+from swh.deposit.config import (
+    COL_IRI,
+    CONT_FILE_IRI,
+    EDIT_IRI,
+    EM_IRI,
+    SD_IRI,
+    SE_IRI,
+    STATE_IRI,
+)
 
 
 def api_view(req):
diff --git a/swh/deposit/auth.py b/swh/deposit/auth.py
index f1edd20fe6c64b1e22bf90831d008d86cd406a17..fac0dbdf51a43287a414607c12f2b2e8b77a8dc2 100644
--- a/swh/deposit/auth.py
+++ b/swh/deposit/auth.py
@@ -13,7 +13,6 @@ from rest_framework.authentication import BasicAuthentication
 from rest_framework.exceptions import AuthenticationFailed
 from rest_framework.permissions import BasePermission
 from sentry_sdk import capture_exception
-
 from swh.auth.django.models import OIDCUser
 from swh.auth.django.utils import oidc_user_from_profile
 from swh.auth.keycloak import (
@@ -21,9 +20,9 @@ from swh.auth.keycloak import (
     KeycloakOpenIDConnect,
     keycloak_error_message,
 )
-from swh.deposit.models import DepositClient
 
-from .errors import UNAUTHORIZED, make_error_response
+from swh.deposit.errors import UNAUTHORIZED, make_error_response
+from swh.deposit.models import DepositClient
 
 logger = logging.getLogger(__name__)
 
diff --git a/swh/deposit/cli/__init__.py b/swh/deposit/cli/__init__.py
index 663035c53f10933f901e476f3eff183cff065d4c..0a77542734eeb124dca8aac7654608f0250bb617 100644
--- a/swh/deposit/cli/__init__.py
+++ b/swh/deposit/cli/__init__.py
@@ -8,7 +8,6 @@ import logging
 # WARNING: do not import unnecessary things here to keep cli startup time under
 # control
 import click
-
 from swh.core.cli import CONTEXT_SETTINGS
 from swh.core.cli import swh as swh_cli_group
 
@@ -31,10 +30,10 @@ def main():
 
 # These import statements MUST be executed after defining the 'deposit' group
 # since the subcommands in these are defined using this 'deposit' group.
-from . import client  # noqa
+from swh.deposit.cli import client  # noqa
 
 try:
-    from . import admin  # noqa
+    from swh.deposit.cli import admin  # noqa
 except ImportError:  # server part is optional
     logger.debug("admin subcommand not loaded")
 
diff --git a/swh/deposit/models.py b/swh/deposit/models.py
index 32478b9be287e382212e941591a4827324dfb32b..f3ddd64de7da51ef9679969d782e053e2cd37a05 100644
--- a/swh/deposit/models.py
+++ b/swh/deposit/models.py
@@ -22,7 +22,7 @@ except ImportError:
 
 from swh.auth.django.models import OIDCUser
 
-from .config import (
+from swh.deposit.config import (
     ARCHIVE_TYPE,
     DEPOSIT_STATUS_DEPOSITED,
     DEPOSIT_STATUS_LOAD_FAILURE,
diff --git a/swh/deposit/settings/development.py b/swh/deposit/settings/development.py
index 08b9a4fd945a44fae85d61d9bc51daa437859022..484d39d753ff806bbfc9ff4a25e35325e3166a93 100644
--- a/swh/deposit/settings/development.py
+++ b/swh/deposit/settings/development.py
@@ -3,7 +3,7 @@
 # License: GNU General Public License version 3, or any later version
 # See top-level LICENSE file for more information
 
-from .common import *  # noqa
+from swh.deposit.settings.common import *  # noqa
 
 # SECURITY WARNING: don't run with debug turned on in production!
 DEBUG = True
diff --git a/swh/deposit/settings/production.py b/swh/deposit/settings/production.py
index 33e1d0639ac6a4289e2ad0a3f469bb2550403cfd..11941b0946f6653a0b439eab463ceb5e1acd9ae9 100644
--- a/swh/deposit/settings/production.py
+++ b/swh/deposit/settings/production.py
@@ -6,11 +6,10 @@
 import os
 
 import django
-
 from swh.core import config
 
-from .common import *  # noqa
-from .common import ALLOWED_HOSTS, CACHES
+from swh.deposit.settings.common import *  # noqa
+from swh.deposit.settings.common import ALLOWED_HOSTS, CACHES
 
 ALLOWED_HOSTS += ["deposit.softwareheritage.org"]
 # Setup support for proxy headers
diff --git a/swh/deposit/settings/testing.py b/swh/deposit/settings/testing.py
index 10e683f22f455966953ff92cb0749144f624fc06..c8a971898fee272e15a6c99ec49f04248ab1c707 100644
--- a/swh/deposit/settings/testing.py
+++ b/swh/deposit/settings/testing.py
@@ -3,10 +3,10 @@
 # License: GNU General Public License version 3, or any later version
 # See top-level LICENSE file for more information
 
-from .common import *  # noqa
-from .common import ALLOWED_HOSTS
-from .development import *  # noqa
-from .development import INSTALLED_APPS
+from swh.deposit.settings.common import *  # noqa
+from swh.deposit.settings.common import ALLOWED_HOSTS
+from swh.deposit.settings.development import *  # noqa
+from swh.deposit.settings.development import INSTALLED_APPS
 
 # django setup
 ALLOWED_HOSTS += ["testserver"]
diff --git a/swh/deposit/tests/api/test_basic_auth.py b/swh/deposit/tests/api/test_basic_auth.py
index c5ca171c1d47d1e0194f3dc69061a1730d7453a4..481458a7b316c22a377c7a525180ff2c947ccf9d 100644
--- a/swh/deposit/tests/api/test_basic_auth.py
+++ b/swh/deposit/tests/api/test_basic_auth.py
@@ -11,8 +11,7 @@ from django.urls import reverse_lazy as reverse
 import pytest
 
 from swh.deposit.config import SD_IRI
-
-from .test_service_document import check_response
+from swh.deposit.tests.api.test_service_document import check_response
 
 
 @pytest.fixture()
diff --git a/swh/deposit/tests/api/test_collection_add_to_origin.py b/swh/deposit/tests/api/test_collection_add_to_origin.py
index 91cef83f86238d1f9902c0b38c29dedb35f43b18..bb4d9b1af0a9fcdaa7dbea7d66699e60e3cd3fd6 100644
--- a/swh/deposit/tests/api/test_collection_add_to_origin.py
+++ b/swh/deposit/tests/api/test_collection_add_to_origin.py
@@ -10,10 +10,9 @@ from swh.deposit.config import COL_IRI, DEPOSIT_STATUS_LOAD_SUCCESS
 from swh.deposit.models import Deposit
 from swh.deposit.parsers import parse_xml
 from swh.deposit.tests.common import post_atom
+from swh.deposit.tests.conftest import internal_create_deposit
 from swh.deposit.utils import NAMESPACES
 
-from ..conftest import internal_create_deposit
-
 
 def test_add_deposit_with_add_to_origin(
     authenticated_client,
diff --git a/swh/deposit/tests/api/test_collection_reuse_slug.py b/swh/deposit/tests/api/test_collection_reuse_slug.py
index 6968f51bdd0c44ac30589e16a05eed0f76e4306c..0c3f2cdaf695222adc20810379254c99517e5e34 100644
--- a/swh/deposit/tests/api/test_collection_reuse_slug.py
+++ b/swh/deposit/tests/api/test_collection_reuse_slug.py
@@ -16,10 +16,9 @@ from swh.deposit.config import (
 from swh.deposit.models import Deposit
 from swh.deposit.parsers import parse_xml
 from swh.deposit.tests.common import post_atom
+from swh.deposit.tests.conftest import internal_create_deposit
 from swh.deposit.utils import NAMESPACES
 
-from ..conftest import internal_create_deposit
-
 
 def test_act_on_deposit_rejected_is_not_permitted(
     authenticated_client, deposit_collection, rejected_deposit, atom_dataset
diff --git a/swh/deposit/tests/api/test_deposit_private_check.py b/swh/deposit/tests/api/test_deposit_private_check.py
index f582153786c3577cce8db7f9651fcf923f190204..f3cb00ce64314aee977901f5f5aeed62ddcc8a23 100644
--- a/swh/deposit/tests/api/test_deposit_private_check.py
+++ b/swh/deposit/tests/api/test_deposit_private_check.py
@@ -27,13 +27,14 @@ from swh.deposit.config import (
 from swh.deposit.models import Deposit
 from swh.deposit.parsers import parse_xml
 from swh.deposit.tests.common import (
+    SUPPORTED_TARBALL_MODES,
     create_arborescence_archive,
     create_archive_with_archive,
+    post_archive,
+    post_atom,
 )
 from swh.deposit.utils import NAMESPACES
 
-from ..common import SUPPORTED_TARBALL_MODES, post_archive, post_atom
-
 PRIVATE_CHECK_DEPOSIT_NC = PRIVATE_CHECK_DEPOSIT + "-nc"
 
 
diff --git a/swh/deposit/tests/api/test_deposit_private_read_archive.py b/swh/deposit/tests/api/test_deposit_private_read_archive.py
index f2e3e07d03c6c9c17d40a1c517e3ab5d0557feef..0b9755acc34082cae940544a98bdf8e80424ca4c 100644
--- a/swh/deposit/tests/api/test_deposit_private_read_archive.py
+++ b/swh/deposit/tests/api/test_deposit_private_read_archive.py
@@ -12,9 +12,11 @@ from rest_framework import status
 from swh.deposit.api.private.deposit_read import aggregate_tarballs
 from swh.deposit.config import EM_IRI, PRIVATE_GET_RAW_CONTENT
 from swh.deposit.models import DepositRequest
-from swh.deposit.tests.common import create_arborescence_archive
-
-from ..common import compute_info, post_archive
+from swh.deposit.tests.common import (
+    compute_info,
+    create_arborescence_archive,
+    post_archive,
+)
 
 PRIVATE_GET_RAW_CONTENT_NC = PRIVATE_GET_RAW_CONTENT + "-nc"
 
diff --git a/swh/deposit/tests/cli/test_client.py b/swh/deposit/tests/cli/test_client.py
index a169960174ad04455267388ce52eb4b9272f2032..a30c3c5429b3b49eabcf0f262391714e39d39629 100644
--- a/swh/deposit/tests/cli/test_client.py
+++ b/swh/deposit/tests/cli/test_client.py
@@ -13,6 +13,7 @@ from unittest.mock import MagicMock
 from xml.etree import ElementTree
 
 import pytest
+from swh.model.exceptions import ValidationError
 import yaml
 
 from swh.deposit.api.checks import (
@@ -29,10 +30,8 @@ from swh.deposit.client import (
     ServiceDocumentDepositClient,
 )
 from swh.deposit.parsers import parse_xml
+from swh.deposit.tests.conftest import TEST_USER
 from swh.deposit.utils import NAMESPACES
-from swh.model.exceptions import ValidationError
-
-from ..conftest import TEST_USER
 
 
 def generate_slug() -> str:
@@ -327,7 +326,7 @@ def test_cli_single_minimal_deposit_with_slug(
         assert authors[0].text == "Jane Doe"
 
     count_warnings = 0
-    for (_, log_level, _) in caplog.record_tuples:
+    for _, log_level, _ in caplog.record_tuples:
         count_warnings += 1 if log_level == logging.WARNING else 0
 
     assert (
@@ -412,7 +411,7 @@ def test_cli_single_minimal_deposit_with_create_origin(
         assert authors[0].text == "Jane Doe"
 
     count_warnings = 0
-    for (_, log_level, _) in caplog.record_tuples:
+    for _, log_level, _ in caplog.record_tuples:
         count_warnings += 1 if log_level == logging.WARNING else 0
 
     assert (
@@ -916,7 +915,7 @@ def test_cli_metadata_only_deposit_full_metadata_file(
 
     count_warnings = 0
     warning_record: Optional[str] = None
-    for (_, log_level, msg) in caplog.record_tuples:
+    for _, log_level, msg in caplog.record_tuples:
         if log_level == logging.WARNING:
             count_warnings += 1
             warning_record = msg
@@ -1025,7 +1024,7 @@ def test_cli_deposit_warning_missing_origin(
     )
     # fmt: on
 
-    for (_, log_level, _) in caplog.record_tuples:
+    for _, log_level, _ in caplog.record_tuples:
         # all messages are info or below messages so everything is fine
         assert log_level < logging.WARNING
 
diff --git a/tox.ini b/tox.ini
index 69fc39f8ba6cb0ced1901d4a0d555262d604a1b6..b511d7dd585b57e9c4691c34bc61984f26879c43 100644
--- a/tox.ini
+++ b/tox.ini
@@ -25,6 +25,7 @@ commands =
          --rootdir {envsitepackagesdir} \
          --cov={envsitepackagesdir}/swh/deposit \
          --cov-branch \
+         --ignore {envsitepackagesdir}/swh/deposit/settings/ \
          {envsitepackagesdir}/swh/deposit \
          {posargs}
 # --rootdir and --import-mode are required to make tests that depends