==> Building on minun ==> Checking for remote environment... ==> Syncing package to remote host... sending incremental file list created directory packages/python-django-guardian ./ .SRCINFO 924 100% 0.00kB/s 0:00:00 924 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=7/9) .nvchecker.toml 99 100% 96.68kB/s 0:00:00 99 100% 96.68kB/s 0:00:00 (xfr#2, to-chk=6/9) LICENSE 646 100% 630.86kB/s 0:00:00 646 100% 630.86kB/s 0:00:00 (xfr#3, to-chk=5/9) PKGBUILD 1,351 100% 1.29MB/s 0:00:00 1,351 100% 1.29MB/s 0:00:00 (xfr#4, to-chk=4/9) REUSE.toml 375 100% 366.21kB/s 0:00:00 375 100% 366.21kB/s 0:00:00 (xfr#5, to-chk=3/9) python-django-guardian-3.3.0-1.log 742 100% 724.61kB/s 0:00:00 742 100% 724.61kB/s 0:00:00 (xfr#6, to-chk=2/9) LICENSES/ LICENSES/0BSD.txt -> ../LICENSE sent 2,752 bytes received 198 bytes 5,900.00 bytes/sec total size is 3,597 speedup is 1.22 ==> Running pkgctl build --arch riscv64 on remote host... ==> WARNING: invalid architecture: riscv64 ==> Updating pacman database cache [?25l:: Synchronizing package databases... core downloading... extra downloading... multilib downloading... [?25h==> Building python-django-guardian  -> repo: extra  -> arch: riscv64  -> worker: felix-4 ==> Building python-django-guardian for [extra] (riscv64) ]3008;start=8ea8c429d04c4aae91af9d68d22de839;user=root;hostname=minun.felixc.at;machineid=0ffe3ef7ad56462790c2861f2a747f6b;bootid=32d9c4b537a24816afcaf7574fd06933;pid=2894153;pidfdid=57408870;comm=systemd-nspawn;container=arch-nspawn-2894153;type=container\]11;?\]2;🔵 Container arch-nspawn-2894153 on minun.felixc.at\:: Synchronizing package databases... core downloading... extra downloading... :: Starting full system upgrade... there is nothing to do [!p]104[?7h]3008;end=8ea8c429d04c4aae91af9d68d22de839\==> Building in chroot for [extra] (riscv64)... ==> Synchronizing chroot copy [/var/lib/archbuild/extra-riscv64/root] -> [felix-4]...done ==> Making package: python-django-guardian 3.3.0-1 (Thu Mar 5 19:21:41 2026) ==> Retrieving sources...  -> Downloading python-django-guardian-3.3.0.tar.gz... % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 293.9k 0 293.9k 0 0 436.9k 0 0 100 293.9k 0 293.9k 0 0 436.9k 0 0 100 293.9k 0 293.9k 0 0 436.8k 0 0 ==> Validating source files with sha512sums... python-django-guardian-3.3.0.tar.gz ... Passed ==> Validating source files with b2sums... python-django-guardian-3.3.0.tar.gz ... Passed ]3008;start=880c073a89714eb5a45f9eac84391d7a;user=root;hostname=minun.felixc.at;machineid=0ffe3ef7ad56462790c2861f2a747f6b;bootid=32d9c4b537a24816afcaf7574fd06933;pid=2895201;pidfdid=57409918;comm=systemd-nspawn;container=arch-nspawn-2895201;type=container\]11;?\]2;🔵 Container arch-nspawn-2895201 on minun.felixc.at\==> Making package: python-django-guardian 3.3.0-1 (Thu Mar 5 18:21:58 2026) ==> Checking runtime dependencies... ==> Installing missing dependencies... resolving dependencies... looking for conflicting packages... Package (7) New Version Net Change Download Size core/mpdecimal 4.0.1-1 0.31 MiB extra/python-asgiref 3.11.1-1 0.25 MiB 0.05 MiB extra/python-pytz 2025.2-2 0.17 MiB extra/python-sqlparse 0.5.3-2 0.52 MiB core/python 3.14.3-1 132.79 MiB extra/python-django 5.2.12-1 35.87 MiB 5.13 MiB extra/python-django-environ 0.12.0-2 0.18 MiB 0.04 MiB Total Download Size: 5.22 MiB Total Installed Size: 170.10 MiB :: Proceed with installation? [Y/n] :: Retrieving packages... python-django-5.2.12-1-any downloading... python-asgiref-3.11.1-1-any downloading... python-django-environ-0.12.0-2-any downloading... checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... installing mpdecimal... installing python... Optional dependencies for python python-setuptools: for building Python packages using tooling that is usually bundled with Python python-pip: for installing Python packages using tooling that is usually bundled with Python python-pipx: for installing Python software not packaged on Arch Linux sqlite: for a default database integration [installed] xz: for lzma [installed] tk: for tkinter installing python-pytz... installing python-sqlparse... installing python-asgiref... installing python-django... Optional dependencies for python-django python-psycopg2: for PostgreSQL backend python-argon2-cffi: for Argon2 password hashing support installing python-django-environ... Optional dependencies for python-django-environ python-simplejson: for an alternative JSON implementation :: Running post-transaction hooks... (1/1) Arming ConditionNeedsUpdate... ==> Checking buildtime dependencies... ==> Installing missing dependencies... resolving dependencies... looking for conflicting packages... Package (18) New Version Net Change Download Size extra/python-autocommand 2.2.2-9 0.08 MiB extra/python-iniconfig 2.1.0-3.1 0.05 MiB extra/python-jaraco.collections 5.1.0-3 0.11 MiB extra/python-jaraco.context 6.0.1-3 0.04 MiB extra/python-jaraco.functools 4.1.0-3 0.07 MiB extra/python-jaraco.text 4.0.0-4 0.08 MiB extra/python-more-itertools 10.8.0-2 0.73 MiB extra/python-packaging 26.0-1 0.89 MiB extra/python-platformdirs 4.9.3-1 0.40 MiB extra/python-pluggy 1.6.0-3.1 0.23 MiB extra/python-pygments 2.19.2-3 15.30 MiB extra/python-pyproject-hooks 1.2.0-6 0.11 MiB extra/python-build 1.4.0-1 0.24 MiB extra/python-installer 0.7.0-14 0.20 MiB extra/python-pytest 1:8.4.2-3 4.69 MiB extra/python-pytest-django 4.11.1-3 0.27 MiB 0.05 MiB extra/python-setuptools 1:80.9.0-4 8.03 MiB extra/python-wheel 0.46.3-1 0.31 MiB Total Download Size: 0.05 MiB Total Installed Size: 31.82 MiB :: Proceed with installation? [Y/n] :: Retrieving packages... python-pytest-django-4.11.1-3-any downloading... checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... installing python-packaging... installing python-pyproject-hooks... installing python-build... Optional dependencies for python-build python-pip: to use as the Python package installer (default) python-uv: to use as the Python package installer python-virtualenv: to use virtualenv for build isolation installing python-installer... installing python-more-itertools... installing python-jaraco.functools... installing python-jaraco.context... installing python-autocommand... installing python-jaraco.text... Optional dependencies for python-jaraco.text python-inflect: for show-newlines script installing python-jaraco.collections... installing python-platformdirs... installing python-wheel... Optional dependencies for python-wheel python-keyring: for wheel.signatures python-xdg: for wheel.signatures python-setuptools: for legacy bdist_wheel subcommand [pending] installing python-setuptools... installing python-iniconfig... installing python-pluggy... installing python-pygments... installing python-pytest... installing python-pytest-django... :: Running post-transaction hooks... (1/1) Arming ConditionNeedsUpdate... ==> Retrieving sources... -> Found python-django-guardian-3.3.0.tar.gz ==> WARNING: Skipping all source file integrity checks. ==> Extracting sources... -> Extracting python-django-guardian-3.3.0.tar.gz with bsdtar ==> Starting prepare()... ==> Starting build()... * Getting build dependencies for wheel... /usr/lib/python3.14/site-packages/setuptools/config/_apply_pyprojecttoml.py:82: SetuptoolsDeprecationWarning: `project.license` as a TOML table is deprecated !! ******************************************************************************** Please use a simple string containing a SPDX expression for `project.license`. You can also use `project.license-files`. (Both options available on setuptools>=77.0.0). This deprecation is overdue, please update your project and remove deprecated calls to avoid build errors in the future. See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! corresp(dist, value, root_dir) /usr/lib/python3.14/site-packages/setuptools/config/_apply_pyprojecttoml.py:61: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: BSD License See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! dist._finalize_license_expression() /usr/lib/python3.14/site-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: BSD License See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! self._finalize_license_expression() running egg_info creating django_guardian.egg-info writing django_guardian.egg-info/PKG-INFO writing dependency_links to django_guardian.egg-info/dependency_links.txt writing requirements to django_guardian.egg-info/requires.txt writing top-level names to django_guardian.egg-info/top_level.txt writing manifest file 'django_guardian.egg-info/SOURCES.txt' reading manifest file 'django_guardian.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no files found matching 'README.rst' warning: no files found matching '*.txt' adding license file 'LICENSE' writing manifest file 'django_guardian.egg-info/SOURCES.txt' * Building wheel... /usr/lib/python3.14/site-packages/setuptools/config/_apply_pyprojecttoml.py:82: SetuptoolsDeprecationWarning: `project.license` as a TOML table is deprecated !! ******************************************************************************** Please use a simple string containing a SPDX expression for `project.license`. You can also use `project.license-files`. (Both options available on setuptools>=77.0.0). This deprecation is overdue, please update your project and remove deprecated calls to avoid build errors in the future. See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! corresp(dist, value, root_dir) /usr/lib/python3.14/site-packages/setuptools/config/_apply_pyprojecttoml.py:61: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: BSD License See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! dist._finalize_license_expression() /usr/lib/python3.14/site-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: BSD License See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! self._finalize_license_expression() running bdist_wheel running build running build_py creating build/lib/guardian copying guardian/__init__.py -> build/lib/guardian copying guardian/admin.py -> build/lib/guardian copying guardian/apps.py -> build/lib/guardian copying guardian/backends.py -> build/lib/guardian copying guardian/checks.py -> build/lib/guardian copying guardian/compat.py -> build/lib/guardian copying guardian/core.py -> build/lib/guardian copying guardian/ctypes.py -> build/lib/guardian copying guardian/decorators.py -> build/lib/guardian copying guardian/exceptions.py -> build/lib/guardian copying guardian/forms.py -> build/lib/guardian copying guardian/managers.py -> build/lib/guardian copying guardian/mixins.py -> build/lib/guardian copying guardian/shortcuts.py -> build/lib/guardian copying guardian/utils.py -> build/lib/guardian creating build/lib/guardian/conf copying guardian/conf/__init__.py -> build/lib/guardian/conf copying guardian/conf/settings.py -> build/lib/guardian/conf creating build/lib/guardian/management copying guardian/management/__init__.py -> build/lib/guardian/management creating build/lib/guardian/management/commands copying guardian/management/commands/__init__.py -> build/lib/guardian/management/commands copying guardian/management/commands/clean_orphan_obj_perms.py -> build/lib/guardian/management/commands creating build/lib/guardian/migrations copying guardian/migrations/0001_initial.py -> build/lib/guardian/migrations copying guardian/migrations/0002_generic_permissions_index.py -> build/lib/guardian/migrations copying guardian/migrations/0003_remove_groupobjectpermission_guardian_gr_content_ae6aec_idx_and_more.py -> build/lib/guardian/migrations copying guardian/migrations/__init__.py -> build/lib/guardian/migrations creating build/lib/guardian/templatetags copying guardian/templatetags/__init__.py -> build/lib/guardian/templatetags copying guardian/templatetags/guardian_tags.py -> build/lib/guardian/templatetags creating build/lib/guardian/testapp copying guardian/testapp/__init__.py -> build/lib/guardian/testapp copying guardian/testapp/models.py -> build/lib/guardian/testapp copying guardian/testapp/testsettings.py -> build/lib/guardian/testapp creating build/lib/guardian/testapp/migrations copying guardian/testapp/migrations/0001_initial.py -> build/lib/guardian/testapp/migrations copying guardian/testapp/migrations/0002_logentrywithgroup.py -> build/lib/guardian/testapp/migrations copying guardian/testapp/migrations/0003_auto_20190611_0440.py -> build/lib/guardian/testapp/migrations copying guardian/testapp/migrations/0004_childtestmodel_parenttestmodel.py -> build/lib/guardian/testapp/migrations copying guardian/testapp/migrations/0005_uuidpkmodel.py -> build/lib/guardian/testapp/migrations copying guardian/testapp/migrations/0006_auto_20230727_0658.py -> build/lib/guardian/testapp/migrations copying guardian/testapp/migrations/0007_genericgroupobjectpermission.py -> build/lib/guardian/testapp/migrations copying guardian/testapp/migrations/0008_fix_project_timezone.py -> build/lib/guardian/testapp/migrations copying guardian/testapp/migrations/0009_userprofile.py -> build/lib/guardian/testapp/migrations copying guardian/testapp/migrations/0010_textpkmodel.py -> build/lib/guardian/testapp/migrations copying guardian/testapp/migrations/__init__.py -> build/lib/guardian/testapp/migrations creating build/lib/guardian/testapp/tests copying guardian/testapp/tests/__init__.py -> build/lib/guardian/testapp/tests copying guardian/testapp/tests/conf.py -> build/lib/guardian/testapp/tests copying guardian/testapp/tests/test_admin.py -> build/lib/guardian/testapp/tests copying guardian/testapp/tests/test_backend_integration.py -> build/lib/guardian/testapp/tests copying guardian/testapp/tests/test_backends.py -> build/lib/guardian/testapp/tests copying guardian/testapp/tests/test_checks.py -> build/lib/guardian/testapp/tests copying guardian/testapp/tests/test_conf.py -> build/lib/guardian/testapp/tests copying guardian/testapp/tests/test_core.py -> build/lib/guardian/testapp/tests copying guardian/testapp/tests/test_custompkmodel.py -> build/lib/guardian/testapp/tests copying guardian/testapp/tests/test_decorators.py -> build/lib/guardian/testapp/tests copying guardian/testapp/tests/test_direct_rel.py -> build/lib/guardian/testapp/tests copying guardian/testapp/tests/test_forms.py -> build/lib/guardian/testapp/tests copying guardian/testapp/tests/test_indexes.py -> build/lib/guardian/testapp/tests copying guardian/testapp/tests/test_management.py -> build/lib/guardian/testapp/tests copying guardian/testapp/tests/test_managers.py -> build/lib/guardian/testapp/tests copying guardian/testapp/tests/test_mixins.py -> build/lib/guardian/testapp/tests copying guardian/testapp/tests/test_orphans.py -> build/lib/guardian/testapp/tests copying guardian/testapp/tests/test_other.py -> build/lib/guardian/testapp/tests copying guardian/testapp/tests/test_shortcuts.py -> build/lib/guardian/testapp/tests copying guardian/testapp/tests/test_tags.py -> build/lib/guardian/testapp/tests copying guardian/testapp/tests/test_utils.py -> build/lib/guardian/testapp/tests copying guardian/testapp/tests/urls.py -> build/lib/guardian/testapp/tests running egg_info writing django_guardian.egg-info/PKG-INFO writing dependency_links to django_guardian.egg-info/dependency_links.txt writing requirements to django_guardian.egg-info/requires.txt writing top-level names to django_guardian.egg-info/top_level.txt reading manifest file 'django_guardian.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no files found matching 'README.rst' warning: no files found matching '*.txt' adding license file 'LICENSE' writing manifest file 'django_guardian.egg-info/SOURCES.txt' /usr/lib/python3.14/site-packages/setuptools/command/build_py.py:212: _Warning: Package 'guardian.locale.es.LC_MESSAGES' is absent from the `packages` configuration. !! ******************************************************************************** ############################ # Package would be ignored # ############################ Python recognizes 'guardian.locale.es.LC_MESSAGES' as an importable package[^1], but it is absent from setuptools' `packages` configuration. This leads to an ambiguous overall configuration. If you want to distribute this package, please make sure that 'guardian.locale.es.LC_MESSAGES' is explicitly added to the `packages` configuration field. Alternatively, you can also rely on setuptools' discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html If you don't want 'guardian.locale.es.LC_MESSAGES' to be distributed and are already explicitly excluding 'guardian.locale.es.LC_MESSAGES' via `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, you can try to use `exclude_package_data`, or `include-package-data=False` in combination with a more fine grained `package-data` configuration. You can read more about "package data files" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/datafiles.html [^1]: For Python, any directory (with suitable naming) can be imported, even if it does not contain any `.py` files. On the other hand, currently there is no concept of package data directory, all directories are treated like packages. ******************************************************************************** !! check.warn(importable) /usr/lib/python3.14/site-packages/setuptools/command/build_py.py:212: _Warning: Package 'guardian.locale.fr.LC_MESSAGES' is absent from the `packages` configuration. !! ******************************************************************************** ############################ # Package would be ignored # ############################ Python recognizes 'guardian.locale.fr.LC_MESSAGES' as an importable package[^1], but it is absent from setuptools' `packages` configuration. This leads to an ambiguous overall configuration. If you want to distribute this package, please make sure that 'guardian.locale.fr.LC_MESSAGES' is explicitly added to the `packages` configuration field. Alternatively, you can also rely on setuptools' discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html If you don't want 'guardian.locale.fr.LC_MESSAGES' to be distributed and are already explicitly excluding 'guardian.locale.fr.LC_MESSAGES' via `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, you can try to use `exclude_package_data`, or `include-package-data=False` in combination with a more fine grained `package-data` configuration. You can read more about "package data files" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/datafiles.html [^1]: For Python, any directory (with suitable naming) can be imported, even if it does not contain any `.py` files. On the other hand, currently there is no concept of package data directory, all directories are treated like packages. ******************************************************************************** !! check.warn(importable) /usr/lib/python3.14/site-packages/setuptools/command/build_py.py:212: _Warning: Package 'guardian.locale.nl.LC_MESSAGES' is absent from the `packages` configuration. !! ******************************************************************************** ############################ # Package would be ignored # ############################ Python recognizes 'guardian.locale.nl.LC_MESSAGES' as an importable package[^1], but it is absent from setuptools' `packages` configuration. This leads to an ambiguous overall configuration. If you want to distribute this package, please make sure that 'guardian.locale.nl.LC_MESSAGES' is explicitly added to the `packages` configuration field. Alternatively, you can also rely on setuptools' discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html If you don't want 'guardian.locale.nl.LC_MESSAGES' to be distributed and are already explicitly excluding 'guardian.locale.nl.LC_MESSAGES' via `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, you can try to use `exclude_package_data`, or `include-package-data=False` in combination with a more fine grained `package-data` configuration. You can read more about "package data files" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/datafiles.html [^1]: For Python, any directory (with suitable naming) can be imported, even if it does not contain any `.py` files. On the other hand, currently there is no concept of package data directory, all directories are treated like packages. ******************************************************************************** !! check.warn(importable) /usr/lib/python3.14/site-packages/setuptools/command/build_py.py:212: _Warning: Package 'guardian.locale.pl.LC_MESSAGES' is absent from the `packages` configuration. !! ******************************************************************************** ############################ # Package would be ignored # ############################ Python recognizes 'guardian.locale.pl.LC_MESSAGES' as an importable package[^1], but it is absent from setuptools' `packages` configuration. This leads to an ambiguous overall configuration. If you want to distribute this package, please make sure that 'guardian.locale.pl.LC_MESSAGES' is explicitly added to the `packages` configuration field. Alternatively, you can also rely on setuptools' discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html If you don't want 'guardian.locale.pl.LC_MESSAGES' to be distributed and are already explicitly excluding 'guardian.locale.pl.LC_MESSAGES' via `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, you can try to use `exclude_package_data`, or `include-package-data=False` in combination with a more fine grained `package-data` configuration. You can read more about "package data files" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/datafiles.html [^1]: For Python, any directory (with suitable naming) can be imported, even if it does not contain any `.py` files. On the other hand, currently there is no concept of package data directory, all directories are treated like packages. ******************************************************************************** !! check.warn(importable) /usr/lib/python3.14/site-packages/setuptools/command/build_py.py:212: _Warning: Package 'guardian.locale.pt_BR.LC_MESSAGES' is absent from the `packages` configuration. !! ******************************************************************************** ############################ # Package would be ignored # ############################ Python recognizes 'guardian.locale.pt_BR.LC_MESSAGES' as an importable package[^1], but it is absent from setuptools' `packages` configuration. This leads to an ambiguous overall configuration. If you want to distribute this package, please make sure that 'guardian.locale.pt_BR.LC_MESSAGES' is explicitly added to the `packages` configuration field. Alternatively, you can also rely on setuptools' discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html If you don't want 'guardian.locale.pt_BR.LC_MESSAGES' to be distributed and are already explicitly excluding 'guardian.locale.pt_BR.LC_MESSAGES' via `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, you can try to use `exclude_package_data`, or `include-package-data=False` in combination with a more fine grained `package-data` configuration. You can read more about "package data files" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/datafiles.html [^1]: For Python, any directory (with suitable naming) can be imported, even if it does not contain any `.py` files. On the other hand, currently there is no concept of package data directory, all directories are treated like packages. ******************************************************************************** !! check.warn(importable) /usr/lib/python3.14/site-packages/setuptools/command/build_py.py:212: _Warning: Package 'guardian.locale.ru.LC_MESSAGES' is absent from the `packages` configuration. !! ******************************************************************************** ############################ # Package would be ignored # ############################ Python recognizes 'guardian.locale.ru.LC_MESSAGES' as an importable package[^1], but it is absent from setuptools' `packages` configuration. This leads to an ambiguous overall configuration. If you want to distribute this package, please make sure that 'guardian.locale.ru.LC_MESSAGES' is explicitly added to the `packages` configuration field. Alternatively, you can also rely on setuptools' discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html If you don't want 'guardian.locale.ru.LC_MESSAGES' to be distributed and are already explicitly excluding 'guardian.locale.ru.LC_MESSAGES' via `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, you can try to use `exclude_package_data`, or `include-package-data=False` in combination with a more fine grained `package-data` configuration. You can read more about "package data files" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/datafiles.html [^1]: For Python, any directory (with suitable naming) can be imported, even if it does not contain any `.py` files. On the other hand, currently there is no concept of package data directory, all directories are treated like packages. ******************************************************************************** !! check.warn(importable) /usr/lib/python3.14/site-packages/setuptools/command/build_py.py:212: _Warning: Package 'guardian.locale.zh_Hans.LC_MESSAGES' is absent from the `packages` configuration. !! ******************************************************************************** ############################ # Package would be ignored # ############################ Python recognizes 'guardian.locale.zh_Hans.LC_MESSAGES' as an importable package[^1], but it is absent from setuptools' `packages` configuration. This leads to an ambiguous overall configuration. If you want to distribute this package, please make sure that 'guardian.locale.zh_Hans.LC_MESSAGES' is explicitly added to the `packages` configuration field. Alternatively, you can also rely on setuptools' discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html If you don't want 'guardian.locale.zh_Hans.LC_MESSAGES' to be distributed and are already explicitly excluding 'guardian.locale.zh_Hans.LC_MESSAGES' via `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, you can try to use `exclude_package_data`, or `include-package-data=False` in combination with a more fine grained `package-data` configuration. You can read more about "package data files" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/datafiles.html [^1]: For Python, any directory (with suitable naming) can be imported, even if it does not contain any `.py` files. On the other hand, currently there is no concept of package data directory, all directories are treated like packages. ******************************************************************************** !! check.warn(importable) /usr/lib/python3.14/site-packages/setuptools/command/build_py.py:212: _Warning: Package 'guardian.models' is absent from the `packages` configuration. !! ******************************************************************************** ############################ # Package would be ignored # ############################ Python recognizes 'guardian.models' as an importable package[^1], but it is absent from setuptools' `packages` configuration. This leads to an ambiguous overall configuration. If you want to distribute this package, please make sure that 'guardian.models' is explicitly added to the `packages` configuration field. Alternatively, you can also rely on setuptools' discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html If you don't want 'guardian.models' to be distributed and are already explicitly excluding 'guardian.models' via `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, you can try to use `exclude_package_data`, or `include-package-data=False` in combination with a more fine grained `package-data` configuration. You can read more about "package data files" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/datafiles.html [^1]: For Python, any directory (with suitable naming) can be imported, even if it does not contain any `.py` files. On the other hand, currently there is no concept of package data directory, all directories are treated like packages. ******************************************************************************** !! check.warn(importable) /usr/lib/python3.14/site-packages/setuptools/command/build_py.py:212: _Warning: Package 'guardian.static.guardian.img' is absent from the `packages` configuration. !! ******************************************************************************** ############################ # Package would be ignored # ############################ Python recognizes 'guardian.static.guardian.img' as an importable package[^1], but it is absent from setuptools' `packages` configuration. This leads to an ambiguous overall configuration. If you want to distribute this package, please make sure that 'guardian.static.guardian.img' is explicitly added to the `packages` configuration field. Alternatively, you can also rely on setuptools' discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html If you don't want 'guardian.static.guardian.img' to be distributed and are already explicitly excluding 'guardian.static.guardian.img' via `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, you can try to use `exclude_package_data`, or `include-package-data=False` in combination with a more fine grained `package-data` configuration. You can read more about "package data files" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/datafiles.html [^1]: For Python, any directory (with suitable naming) can be imported, even if it does not contain any `.py` files. On the other hand, currently there is no concept of package data directory, all directories are treated like packages. ******************************************************************************** !! check.warn(importable) /usr/lib/python3.14/site-packages/setuptools/command/build_py.py:212: _Warning: Package 'guardian.templates.admin.guardian.contrib.grappelli' is absent from the `packages` configuration. !! ******************************************************************************** ############################ # Package would be ignored # ############################ Python recognizes 'guardian.templates.admin.guardian.contrib.grappelli' as an importable package[^1], but it is absent from setuptools' `packages` configuration. This leads to an ambiguous overall configuration. If you want to distribute this package, please make sure that 'guardian.templates.admin.guardian.contrib.grappelli' is explicitly added to the `packages` configuration field. Alternatively, you can also rely on setuptools' discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html If you don't want 'guardian.templates.admin.guardian.contrib.grappelli' to be distributed and are already explicitly excluding 'guardian.templates.admin.guardian.contrib.grappelli' via `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, you can try to use `exclude_package_data`, or `include-package-data=False` in combination with a more fine grained `package-data` configuration. You can read more about "package data files" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/datafiles.html [^1]: For Python, any directory (with suitable naming) can be imported, even if it does not contain any `.py` files. On the other hand, currently there is no concept of package data directory, all directories are treated like packages. ******************************************************************************** !! check.warn(importable) /usr/lib/python3.14/site-packages/setuptools/command/build_py.py:212: _Warning: Package 'guardian.templates.admin.guardian.model' is absent from the `packages` configuration. !! ******************************************************************************** ############################ # Package would be ignored # ############################ Python recognizes 'guardian.templates.admin.guardian.model' as an importable package[^1], but it is absent from setuptools' `packages` configuration. This leads to an ambiguous overall configuration. If you want to distribute this package, please make sure that 'guardian.templates.admin.guardian.model' is explicitly added to the `packages` configuration field. Alternatively, you can also rely on setuptools' discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html If you don't want 'guardian.templates.admin.guardian.model' to be distributed and are already explicitly excluding 'guardian.templates.admin.guardian.model' via `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, you can try to use `exclude_package_data`, or `include-package-data=False` in combination with a more fine grained `package-data` configuration. You can read more about "package data files" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/datafiles.html [^1]: For Python, any directory (with suitable naming) can be imported, even if it does not contain any `.py` files. On the other hand, currently there is no concept of package data directory, all directories are treated like packages. ******************************************************************************** !! check.warn(importable) /usr/lib/python3.14/site-packages/setuptools/command/build_py.py:212: _Warning: Package 'guardian.testapp.tests.templates' is absent from the `packages` configuration. !! ******************************************************************************** ############################ # Package would be ignored # ############################ Python recognizes 'guardian.testapp.tests.templates' as an importable package[^1], but it is absent from setuptools' `packages` configuration. This leads to an ambiguous overall configuration. If you want to distribute this package, please make sure that 'guardian.testapp.tests.templates' is explicitly added to the `packages` configuration field. Alternatively, you can also rely on setuptools' discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html If you don't want 'guardian.testapp.tests.templates' to be distributed and are already explicitly excluding 'guardian.testapp.tests.templates' via `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, you can try to use `exclude_package_data`, or `include-package-data=False` in combination with a more fine grained `package-data` configuration. You can read more about "package data files" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/datafiles.html [^1]: For Python, any directory (with suitable naming) can be imported, even if it does not contain any `.py` files. On the other hand, currently there is no concept of package data directory, all directories are treated like packages. ******************************************************************************** !! check.warn(importable) copying guardian/py.typed -> build/lib/guardian creating build/lib/guardian/locale/es/LC_MESSAGES copying guardian/locale/es/LC_MESSAGES/django.mo -> build/lib/guardian/locale/es/LC_MESSAGES copying guardian/locale/es/LC_MESSAGES/django.po -> build/lib/guardian/locale/es/LC_MESSAGES creating build/lib/guardian/locale/fr/LC_MESSAGES copying guardian/locale/fr/LC_MESSAGES/django.mo -> build/lib/guardian/locale/fr/LC_MESSAGES copying guardian/locale/fr/LC_MESSAGES/django.po -> build/lib/guardian/locale/fr/LC_MESSAGES creating build/lib/guardian/locale/nl/LC_MESSAGES copying guardian/locale/nl/LC_MESSAGES/django.mo -> build/lib/guardian/locale/nl/LC_MESSAGES copying guardian/locale/nl/LC_MESSAGES/django.po -> build/lib/guardian/locale/nl/LC_MESSAGES creating build/lib/guardian/locale/pl/LC_MESSAGES copying guardian/locale/pl/LC_MESSAGES/django.mo -> build/lib/guardian/locale/pl/LC_MESSAGES copying guardian/locale/pl/LC_MESSAGES/django.po -> build/lib/guardian/locale/pl/LC_MESSAGES creating build/lib/guardian/locale/pt_BR/LC_MESSAGES copying guardian/locale/pt_BR/LC_MESSAGES/django.mo -> build/lib/guardian/locale/pt_BR/LC_MESSAGES copying guardian/locale/pt_BR/LC_MESSAGES/django.po -> build/lib/guardian/locale/pt_BR/LC_MESSAGES creating build/lib/guardian/locale/ru/LC_MESSAGES copying guardian/locale/ru/LC_MESSAGES/django.mo -> build/lib/guardian/locale/ru/LC_MESSAGES copying guardian/locale/ru/LC_MESSAGES/django.po -> build/lib/guardian/locale/ru/LC_MESSAGES creating build/lib/guardian/locale/zh_Hans/LC_MESSAGES copying guardian/locale/zh_Hans/LC_MESSAGES/django.mo -> build/lib/guardian/locale/zh_Hans/LC_MESSAGES copying guardian/locale/zh_Hans/LC_MESSAGES/django.po -> build/lib/guardian/locale/zh_Hans/LC_MESSAGES creating build/lib/guardian/models copying guardian/models/__init__.py -> build/lib/guardian/models copying guardian/models/models.py -> build/lib/guardian/models creating build/lib/guardian/static/guardian/img copying guardian/static/guardian/img/icon-no.svg -> build/lib/guardian/static/guardian/img copying guardian/static/guardian/img/icon-yes.svg -> build/lib/guardian/static/guardian/img creating build/lib/guardian/templates/admin/guardian/contrib/grappelli copying guardian/templates/admin/guardian/contrib/grappelli/field.html -> build/lib/guardian/templates/admin/guardian/contrib/grappelli copying guardian/templates/admin/guardian/contrib/grappelli/obj_perms_manage.html -> build/lib/guardian/templates/admin/guardian/contrib/grappelli copying guardian/templates/admin/guardian/contrib/grappelli/obj_perms_manage_group.html -> build/lib/guardian/templates/admin/guardian/contrib/grappelli copying guardian/templates/admin/guardian/contrib/grappelli/obj_perms_manage_user.html -> build/lib/guardian/templates/admin/guardian/contrib/grappelli creating build/lib/guardian/templates/admin/guardian/model copying guardian/templates/admin/guardian/model/change_form.html -> build/lib/guardian/templates/admin/guardian/model copying guardian/templates/admin/guardian/model/field.html -> build/lib/guardian/templates/admin/guardian/model copying guardian/templates/admin/guardian/model/obj_perms_manage.html -> build/lib/guardian/templates/admin/guardian/model copying guardian/templates/admin/guardian/model/obj_perms_manage_group.html -> build/lib/guardian/templates/admin/guardian/model copying guardian/templates/admin/guardian/model/obj_perms_manage_user.html -> build/lib/guardian/templates/admin/guardian/model copying guardian/templates/admin/guardian/model/obj_perms_no.html -> build/lib/guardian/templates/admin/guardian/model copying guardian/templates/admin/guardian/model/obj_perms_yes.html -> build/lib/guardian/templates/admin/guardian/model creating build/lib/guardian/testapp/tests/templates copying guardian/testapp/tests/templates/404.html -> build/lib/guardian/testapp/tests/templates copying guardian/testapp/tests/templates/500.html -> build/lib/guardian/testapp/tests/templates copying guardian/testapp/tests/templates/blank.html -> build/lib/guardian/testapp/tests/templates copying guardian/testapp/tests/templates/dummy403.html -> build/lib/guardian/testapp/tests/templates copying guardian/testapp/tests/templates/dummy404.html -> build/lib/guardian/testapp/tests/templates copying guardian/testapp/tests/templates/list.html -> build/lib/guardian/testapp/tests/templates installing to build/bdist.linux-riscv64/wheel running install running install_lib creating build/bdist.linux-riscv64/wheel creating build/bdist.linux-riscv64/wheel/guardian copying build/lib/guardian/__init__.py -> build/bdist.linux-riscv64/wheel/./guardian copying build/lib/guardian/admin.py -> build/bdist.linux-riscv64/wheel/./guardian copying build/lib/guardian/apps.py -> build/bdist.linux-riscv64/wheel/./guardian copying build/lib/guardian/backends.py -> build/bdist.linux-riscv64/wheel/./guardian copying build/lib/guardian/checks.py -> build/bdist.linux-riscv64/wheel/./guardian copying build/lib/guardian/compat.py -> build/bdist.linux-riscv64/wheel/./guardian copying build/lib/guardian/core.py -> build/bdist.linux-riscv64/wheel/./guardian copying build/lib/guardian/ctypes.py -> build/bdist.linux-riscv64/wheel/./guardian copying build/lib/guardian/decorators.py -> build/bdist.linux-riscv64/wheel/./guardian copying build/lib/guardian/exceptions.py -> build/bdist.linux-riscv64/wheel/./guardian copying build/lib/guardian/forms.py -> build/bdist.linux-riscv64/wheel/./guardian copying build/lib/guardian/managers.py -> build/bdist.linux-riscv64/wheel/./guardian copying build/lib/guardian/mixins.py -> build/bdist.linux-riscv64/wheel/./guardian copying build/lib/guardian/shortcuts.py -> build/bdist.linux-riscv64/wheel/./guardian copying build/lib/guardian/utils.py -> build/bdist.linux-riscv64/wheel/./guardian creating build/bdist.linux-riscv64/wheel/guardian/conf copying build/lib/guardian/conf/__init__.py -> build/bdist.linux-riscv64/wheel/./guardian/conf copying build/lib/guardian/conf/settings.py -> build/bdist.linux-riscv64/wheel/./guardian/conf creating build/bdist.linux-riscv64/wheel/guardian/management copying build/lib/guardian/management/__init__.py -> build/bdist.linux-riscv64/wheel/./guardian/management creating build/bdist.linux-riscv64/wheel/guardian/management/commands copying build/lib/guardian/management/commands/__init__.py -> build/bdist.linux-riscv64/wheel/./guardian/management/commands copying build/lib/guardian/management/commands/clean_orphan_obj_perms.py -> build/bdist.linux-riscv64/wheel/./guardian/management/commands creating build/bdist.linux-riscv64/wheel/guardian/migrations copying build/lib/guardian/migrations/0001_initial.py -> build/bdist.linux-riscv64/wheel/./guardian/migrations copying build/lib/guardian/migrations/0002_generic_permissions_index.py -> build/bdist.linux-riscv64/wheel/./guardian/migrations copying build/lib/guardian/migrations/0003_remove_groupobjectpermission_guardian_gr_content_ae6aec_idx_and_more.py -> build/bdist.linux-riscv64/wheel/./guardian/migrations copying build/lib/guardian/migrations/__init__.py -> build/bdist.linux-riscv64/wheel/./guardian/migrations creating build/bdist.linux-riscv64/wheel/guardian/templatetags copying build/lib/guardian/templatetags/__init__.py -> build/bdist.linux-riscv64/wheel/./guardian/templatetags copying build/lib/guardian/templatetags/guardian_tags.py -> build/bdist.linux-riscv64/wheel/./guardian/templatetags creating build/bdist.linux-riscv64/wheel/guardian/testapp copying build/lib/guardian/testapp/__init__.py -> build/bdist.linux-riscv64/wheel/./guardian/testapp copying build/lib/guardian/testapp/models.py -> build/bdist.linux-riscv64/wheel/./guardian/testapp copying build/lib/guardian/testapp/testsettings.py -> build/bdist.linux-riscv64/wheel/./guardian/testapp creating build/bdist.linux-riscv64/wheel/guardian/testapp/migrations copying build/lib/guardian/testapp/migrations/0001_initial.py -> build/bdist.linux-riscv64/wheel/./guardian/testapp/migrations copying build/lib/guardian/testapp/migrations/0002_logentrywithgroup.py -> build/bdist.linux-riscv64/wheel/./guardian/testapp/migrations copying build/lib/guardian/testapp/migrations/0003_auto_20190611_0440.py -> build/bdist.linux-riscv64/wheel/./guardian/testapp/migrations copying build/lib/guardian/testapp/migrations/0004_childtestmodel_parenttestmodel.py -> build/bdist.linux-riscv64/wheel/./guardian/testapp/migrations copying build/lib/guardian/testapp/migrations/0005_uuidpkmodel.py -> build/bdist.linux-riscv64/wheel/./guardian/testapp/migrations copying build/lib/guardian/testapp/migrations/0006_auto_20230727_0658.py -> build/bdist.linux-riscv64/wheel/./guardian/testapp/migrations copying build/lib/guardian/testapp/migrations/0007_genericgroupobjectpermission.py -> build/bdist.linux-riscv64/wheel/./guardian/testapp/migrations copying build/lib/guardian/testapp/migrations/0008_fix_project_timezone.py -> build/bdist.linux-riscv64/wheel/./guardian/testapp/migrations copying build/lib/guardian/testapp/migrations/0009_userprofile.py -> build/bdist.linux-riscv64/wheel/./guardian/testapp/migrations copying build/lib/guardian/testapp/migrations/0010_textpkmodel.py -> build/bdist.linux-riscv64/wheel/./guardian/testapp/migrations copying build/lib/guardian/testapp/migrations/__init__.py -> build/bdist.linux-riscv64/wheel/./guardian/testapp/migrations creating build/bdist.linux-riscv64/wheel/guardian/testapp/tests copying build/lib/guardian/testapp/tests/__init__.py -> build/bdist.linux-riscv64/wheel/./guardian/testapp/tests copying build/lib/guardian/testapp/tests/conf.py -> build/bdist.linux-riscv64/wheel/./guardian/testapp/tests copying build/lib/guardian/testapp/tests/test_admin.py -> build/bdist.linux-riscv64/wheel/./guardian/testapp/tests copying build/lib/guardian/testapp/tests/test_backend_integration.py -> build/bdist.linux-riscv64/wheel/./guardian/testapp/tests copying build/lib/guardian/testapp/tests/test_backends.py -> build/bdist.linux-riscv64/wheel/./guardian/testapp/tests copying build/lib/guardian/testapp/tests/test_checks.py -> build/bdist.linux-riscv64/wheel/./guardian/testapp/tests copying build/lib/guardian/testapp/tests/test_conf.py -> build/bdist.linux-riscv64/wheel/./guardian/testapp/tests copying build/lib/guardian/testapp/tests/test_core.py -> build/bdist.linux-riscv64/wheel/./guardian/testapp/tests copying build/lib/guardian/testapp/tests/test_custompkmodel.py -> build/bdist.linux-riscv64/wheel/./guardian/testapp/tests copying build/lib/guardian/testapp/tests/test_decorators.py -> build/bdist.linux-riscv64/wheel/./guardian/testapp/tests copying build/lib/guardian/testapp/tests/test_direct_rel.py -> build/bdist.linux-riscv64/wheel/./guardian/testapp/tests copying build/lib/guardian/testapp/tests/test_forms.py -> build/bdist.linux-riscv64/wheel/./guardian/testapp/tests copying build/lib/guardian/testapp/tests/test_indexes.py -> build/bdist.linux-riscv64/wheel/./guardian/testapp/tests copying build/lib/guardian/testapp/tests/test_management.py -> build/bdist.linux-riscv64/wheel/./guardian/testapp/tests copying build/lib/guardian/testapp/tests/test_managers.py -> build/bdist.linux-riscv64/wheel/./guardian/testapp/tests copying build/lib/guardian/testapp/tests/test_mixins.py -> build/bdist.linux-riscv64/wheel/./guardian/testapp/tests copying build/lib/guardian/testapp/tests/test_orphans.py -> build/bdist.linux-riscv64/wheel/./guardian/testapp/tests copying build/lib/guardian/testapp/tests/test_other.py -> build/bdist.linux-riscv64/wheel/./guardian/testapp/tests copying build/lib/guardian/testapp/tests/test_shortcuts.py -> build/bdist.linux-riscv64/wheel/./guardian/testapp/tests copying build/lib/guardian/testapp/tests/test_tags.py -> build/bdist.linux-riscv64/wheel/./guardian/testapp/tests copying build/lib/guardian/testapp/tests/test_utils.py -> build/bdist.linux-riscv64/wheel/./guardian/testapp/tests copying build/lib/guardian/testapp/tests/urls.py -> build/bdist.linux-riscv64/wheel/./guardian/testapp/tests creating build/bdist.linux-riscv64/wheel/guardian/testapp/tests/templates copying build/lib/guardian/testapp/tests/templates/404.html -> build/bdist.linux-riscv64/wheel/./guardian/testapp/tests/templates copying build/lib/guardian/testapp/tests/templates/500.html -> build/bdist.linux-riscv64/wheel/./guardian/testapp/tests/templates copying build/lib/guardian/testapp/tests/templates/blank.html -> build/bdist.linux-riscv64/wheel/./guardian/testapp/tests/templates copying build/lib/guardian/testapp/tests/templates/dummy403.html -> build/bdist.linux-riscv64/wheel/./guardian/testapp/tests/templates copying build/lib/guardian/testapp/tests/templates/dummy404.html -> build/bdist.linux-riscv64/wheel/./guardian/testapp/tests/templates copying build/lib/guardian/testapp/tests/templates/list.html -> build/bdist.linux-riscv64/wheel/./guardian/testapp/tests/templates copying build/lib/guardian/py.typed -> build/bdist.linux-riscv64/wheel/./guardian creating build/bdist.linux-riscv64/wheel/guardian/locale creating build/bdist.linux-riscv64/wheel/guardian/locale/es creating build/bdist.linux-riscv64/wheel/guardian/locale/es/LC_MESSAGES copying build/lib/guardian/locale/es/LC_MESSAGES/django.mo -> build/bdist.linux-riscv64/wheel/./guardian/locale/es/LC_MESSAGES copying build/lib/guardian/locale/es/LC_MESSAGES/django.po -> build/bdist.linux-riscv64/wheel/./guardian/locale/es/LC_MESSAGES creating build/bdist.linux-riscv64/wheel/guardian/locale/fr creating build/bdist.linux-riscv64/wheel/guardian/locale/fr/LC_MESSAGES copying build/lib/guardian/locale/fr/LC_MESSAGES/django.mo -> build/bdist.linux-riscv64/wheel/./guardian/locale/fr/LC_MESSAGES copying build/lib/guardian/locale/fr/LC_MESSAGES/django.po -> build/bdist.linux-riscv64/wheel/./guardian/locale/fr/LC_MESSAGES creating build/bdist.linux-riscv64/wheel/guardian/locale/nl creating build/bdist.linux-riscv64/wheel/guardian/locale/nl/LC_MESSAGES copying build/lib/guardian/locale/nl/LC_MESSAGES/django.mo -> build/bdist.linux-riscv64/wheel/./guardian/locale/nl/LC_MESSAGES copying build/lib/guardian/locale/nl/LC_MESSAGES/django.po -> build/bdist.linux-riscv64/wheel/./guardian/locale/nl/LC_MESSAGES creating build/bdist.linux-riscv64/wheel/guardian/locale/pl creating build/bdist.linux-riscv64/wheel/guardian/locale/pl/LC_MESSAGES copying build/lib/guardian/locale/pl/LC_MESSAGES/django.mo -> build/bdist.linux-riscv64/wheel/./guardian/locale/pl/LC_MESSAGES copying build/lib/guardian/locale/pl/LC_MESSAGES/django.po -> build/bdist.linux-riscv64/wheel/./guardian/locale/pl/LC_MESSAGES creating build/bdist.linux-riscv64/wheel/guardian/locale/pt_BR creating build/bdist.linux-riscv64/wheel/guardian/locale/pt_BR/LC_MESSAGES copying build/lib/guardian/locale/pt_BR/LC_MESSAGES/django.mo -> build/bdist.linux-riscv64/wheel/./guardian/locale/pt_BR/LC_MESSAGES copying build/lib/guardian/locale/pt_BR/LC_MESSAGES/django.po -> build/bdist.linux-riscv64/wheel/./guardian/locale/pt_BR/LC_MESSAGES creating build/bdist.linux-riscv64/wheel/guardian/locale/ru creating build/bdist.linux-riscv64/wheel/guardian/locale/ru/LC_MESSAGES copying build/lib/guardian/locale/ru/LC_MESSAGES/django.mo -> build/bdist.linux-riscv64/wheel/./guardian/locale/ru/LC_MESSAGES copying build/lib/guardian/locale/ru/LC_MESSAGES/django.po -> build/bdist.linux-riscv64/wheel/./guardian/locale/ru/LC_MESSAGES creating build/bdist.linux-riscv64/wheel/guardian/locale/zh_Hans creating build/bdist.linux-riscv64/wheel/guardian/locale/zh_Hans/LC_MESSAGES copying build/lib/guardian/locale/zh_Hans/LC_MESSAGES/django.mo -> build/bdist.linux-riscv64/wheel/./guardian/locale/zh_Hans/LC_MESSAGES copying build/lib/guardian/locale/zh_Hans/LC_MESSAGES/django.po -> build/bdist.linux-riscv64/wheel/./guardian/locale/zh_Hans/LC_MESSAGES creating build/bdist.linux-riscv64/wheel/guardian/models copying build/lib/guardian/models/__init__.py -> build/bdist.linux-riscv64/wheel/./guardian/models copying build/lib/guardian/models/models.py -> build/bdist.linux-riscv64/wheel/./guardian/models creating build/bdist.linux-riscv64/wheel/guardian/static creating build/bdist.linux-riscv64/wheel/guardian/static/guardian creating build/bdist.linux-riscv64/wheel/guardian/static/guardian/img copying build/lib/guardian/static/guardian/img/icon-no.svg -> build/bdist.linux-riscv64/wheel/./guardian/static/guardian/img copying build/lib/guardian/static/guardian/img/icon-yes.svg -> build/bdist.linux-riscv64/wheel/./guardian/static/guardian/img creating build/bdist.linux-riscv64/wheel/guardian/templates creating build/bdist.linux-riscv64/wheel/guardian/templates/admin creating build/bdist.linux-riscv64/wheel/guardian/templates/admin/guardian creating build/bdist.linux-riscv64/wheel/guardian/templates/admin/guardian/contrib creating build/bdist.linux-riscv64/wheel/guardian/templates/admin/guardian/contrib/grappelli copying build/lib/guardian/templates/admin/guardian/contrib/grappelli/field.html -> build/bdist.linux-riscv64/wheel/./guardian/templates/admin/guardian/contrib/grappelli copying build/lib/guardian/templates/admin/guardian/contrib/grappelli/obj_perms_manage.html -> build/bdist.linux-riscv64/wheel/./guardian/templates/admin/guardian/contrib/grappelli copying build/lib/guardian/templates/admin/guardian/contrib/grappelli/obj_perms_manage_group.html -> build/bdist.linux-riscv64/wheel/./guardian/templates/admin/guardian/contrib/grappelli copying build/lib/guardian/templates/admin/guardian/contrib/grappelli/obj_perms_manage_user.html -> build/bdist.linux-riscv64/wheel/./guardian/templates/admin/guardian/contrib/grappelli creating build/bdist.linux-riscv64/wheel/guardian/templates/admin/guardian/model copying build/lib/guardian/templates/admin/guardian/model/change_form.html -> build/bdist.linux-riscv64/wheel/./guardian/templates/admin/guardian/model copying build/lib/guardian/templates/admin/guardian/model/field.html -> build/bdist.linux-riscv64/wheel/./guardian/templates/admin/guardian/model copying build/lib/guardian/templates/admin/guardian/model/obj_perms_manage.html -> build/bdist.linux-riscv64/wheel/./guardian/templates/admin/guardian/model copying build/lib/guardian/templates/admin/guardian/model/obj_perms_manage_group.html -> build/bdist.linux-riscv64/wheel/./guardian/templates/admin/guardian/model copying build/lib/guardian/templates/admin/guardian/model/obj_perms_manage_user.html -> build/bdist.linux-riscv64/wheel/./guardian/templates/admin/guardian/model copying build/lib/guardian/templates/admin/guardian/model/obj_perms_no.html -> build/bdist.linux-riscv64/wheel/./guardian/templates/admin/guardian/model copying build/lib/guardian/templates/admin/guardian/model/obj_perms_yes.html -> build/bdist.linux-riscv64/wheel/./guardian/templates/admin/guardian/model running install_egg_info Copying django_guardian.egg-info to build/bdist.linux-riscv64/wheel/./django_guardian-3.3.0-py3.14.egg-info running install_scripts creating build/bdist.linux-riscv64/wheel/django_guardian-3.3.0.dist-info/WHEEL creating '/build/python-django-guardian/src/django-guardian-3.3.0/dist/.tmp-1nz0zgka/django_guardian-3.3.0-py3-none-any.whl' and adding 'build/bdist.linux-riscv64/wheel' to it adding 'django_guardian-3.3.0.dist-info/licenses/LICENSE' adding 'guardian/__init__.py' adding 'guardian/admin.py' adding 'guardian/apps.py' adding 'guardian/backends.py' adding 'guardian/checks.py' adding 'guardian/compat.py' adding 'guardian/core.py' adding 'guardian/ctypes.py' adding 'guardian/decorators.py' adding 'guardian/exceptions.py' adding 'guardian/forms.py' adding 'guardian/managers.py' adding 'guardian/mixins.py' adding 'guardian/py.typed' adding 'guardian/shortcuts.py' adding 'guardian/utils.py' adding 'guardian/conf/__init__.py' adding 'guardian/conf/settings.py' adding 'guardian/locale/es/LC_MESSAGES/django.mo' adding 'guardian/locale/es/LC_MESSAGES/django.po' adding 'guardian/locale/fr/LC_MESSAGES/django.mo' adding 'guardian/locale/fr/LC_MESSAGES/django.po' adding 'guardian/locale/nl/LC_MESSAGES/django.mo' adding 'guardian/locale/nl/LC_MESSAGES/django.po' adding 'guardian/locale/pl/LC_MESSAGES/django.mo' adding 'guardian/locale/pl/LC_MESSAGES/django.po' adding 'guardian/locale/pt_BR/LC_MESSAGES/django.mo' adding 'guardian/locale/pt_BR/LC_MESSAGES/django.po' adding 'guardian/locale/ru/LC_MESSAGES/django.mo' adding 'guardian/locale/ru/LC_MESSAGES/django.po' adding 'guardian/locale/zh_Hans/LC_MESSAGES/django.mo' adding 'guardian/locale/zh_Hans/LC_MESSAGES/django.po' adding 'guardian/management/__init__.py' adding 'guardian/management/commands/__init__.py' adding 'guardian/management/commands/clean_orphan_obj_perms.py' adding 'guardian/migrations/0001_initial.py' adding 'guardian/migrations/0002_generic_permissions_index.py' adding 'guardian/migrations/0003_remove_groupobjectpermission_guardian_gr_content_ae6aec_idx_and_more.py' adding 'guardian/migrations/__init__.py' adding 'guardian/models/__init__.py' adding 'guardian/models/models.py' adding 'guardian/static/guardian/img/icon-no.svg' adding 'guardian/static/guardian/img/icon-yes.svg' adding 'guardian/templates/admin/guardian/contrib/grappelli/field.html' adding 'guardian/templates/admin/guardian/contrib/grappelli/obj_perms_manage.html' adding 'guardian/templates/admin/guardian/contrib/grappelli/obj_perms_manage_group.html' adding 'guardian/templates/admin/guardian/contrib/grappelli/obj_perms_manage_user.html' adding 'guardian/templates/admin/guardian/model/change_form.html' adding 'guardian/templates/admin/guardian/model/field.html' adding 'guardian/templates/admin/guardian/model/obj_perms_manage.html' adding 'guardian/templates/admin/guardian/model/obj_perms_manage_group.html' adding 'guardian/templates/admin/guardian/model/obj_perms_manage_user.html' adding 'guardian/templates/admin/guardian/model/obj_perms_no.html' adding 'guardian/templates/admin/guardian/model/obj_perms_yes.html' adding 'guardian/templatetags/__init__.py' adding 'guardian/templatetags/guardian_tags.py' adding 'guardian/testapp/__init__.py' adding 'guardian/testapp/models.py' adding 'guardian/testapp/testsettings.py' adding 'guardian/testapp/migrations/0001_initial.py' adding 'guardian/testapp/migrations/0002_logentrywithgroup.py' adding 'guardian/testapp/migrations/0003_auto_20190611_0440.py' adding 'guardian/testapp/migrations/0004_childtestmodel_parenttestmodel.py' adding 'guardian/testapp/migrations/0005_uuidpkmodel.py' adding 'guardian/testapp/migrations/0006_auto_20230727_0658.py' adding 'guardian/testapp/migrations/0007_genericgroupobjectpermission.py' adding 'guardian/testapp/migrations/0008_fix_project_timezone.py' adding 'guardian/testapp/migrations/0009_userprofile.py' adding 'guardian/testapp/migrations/0010_textpkmodel.py' adding 'guardian/testapp/migrations/__init__.py' adding 'guardian/testapp/tests/__init__.py' adding 'guardian/testapp/tests/conf.py' adding 'guardian/testapp/tests/test_admin.py' adding 'guardian/testapp/tests/test_backend_integration.py' adding 'guardian/testapp/tests/test_backends.py' adding 'guardian/testapp/tests/test_checks.py' adding 'guardian/testapp/tests/test_conf.py' adding 'guardian/testapp/tests/test_core.py' adding 'guardian/testapp/tests/test_custompkmodel.py' adding 'guardian/testapp/tests/test_decorators.py' adding 'guardian/testapp/tests/test_direct_rel.py' adding 'guardian/testapp/tests/test_forms.py' adding 'guardian/testapp/tests/test_indexes.py' adding 'guardian/testapp/tests/test_management.py' adding 'guardian/testapp/tests/test_managers.py' adding 'guardian/testapp/tests/test_mixins.py' adding 'guardian/testapp/tests/test_orphans.py' adding 'guardian/testapp/tests/test_other.py' adding 'guardian/testapp/tests/test_shortcuts.py' adding 'guardian/testapp/tests/test_tags.py' adding 'guardian/testapp/tests/test_utils.py' adding 'guardian/testapp/tests/urls.py' adding 'guardian/testapp/tests/templates/404.html' adding 'guardian/testapp/tests/templates/500.html' adding 'guardian/testapp/tests/templates/blank.html' adding 'guardian/testapp/tests/templates/dummy403.html' adding 'guardian/testapp/tests/templates/dummy404.html' adding 'guardian/testapp/tests/templates/list.html' adding 'django_guardian-3.3.0.dist-info/METADATA' adding 'django_guardian-3.3.0.dist-info/WHEEL' adding 'django_guardian-3.3.0.dist-info/top_level.txt' adding 'django_guardian-3.3.0.dist-info/RECORD' removing build/bdist.linux-riscv64/wheel Successfully built django_guardian-3.3.0-py3-none-any.whl ==> Starting check()... ============================= test session starts ============================== platform linux -- Python 3.14.3, pytest-8.4.2, pluggy-1.6.0 -- /usr/bin/python cachedir: .pytest_cache django: version: 5.2.12, settings: guardian.testapp.testsettings (from ini) rootdir: /build/python-django-guardian/src/django-guardian-3.3.0 configfile: pyproject.toml plugins: django-4.11.1 collecting ... collected 424 items guardian/testapp/tests/test_admin.py::AdminTests::test_view PASSED [ 0%] guardian/testapp/tests/test_admin.py::AdminTests::test_view_manage_group PASSED [ 0%] guardian/testapp/tests/test_admin.py::AdminTests::test_view_manage_group_form PASSED [ 0%] guardian/testapp/tests/test_admin.py::AdminTests::test_view_manage_group_form_empty_group PASSED [ 0%] guardian/testapp/tests/test_admin.py::AdminTests::test_view_manage_group_form_wrong_field PASSED [ 1%] guardian/testapp/tests/test_admin.py::AdminTests::test_view_manage_group_form_wrong_group PASSED [ 1%] guardian/testapp/tests/test_admin.py::AdminTests::test_view_manage_group_wrong_perms PASSED [ 1%] guardian/testapp/tests/test_admin.py::AdminTests::test_view_manage_negative_group_form PASSED [ 1%] guardian/testapp/tests/test_admin.py::AdminTests::test_view_manage_negative_user_form PASSED [ 2%] guardian/testapp/tests/test_admin.py::AdminTests::test_view_manage_user PASSED [ 2%] guardian/testapp/tests/test_admin.py::AdminTests::test_view_manage_user_form PASSED [ 2%] guardian/testapp/tests/test_admin.py::AdminTests::test_view_manage_user_form_empty_user PASSED [ 2%] guardian/testapp/tests/test_admin.py::AdminTests::test_view_manage_user_form_wrong_field PASSED [ 3%] guardian/testapp/tests/test_admin.py::AdminTests::test_view_manage_user_form_wrong_user PASSED [ 3%] guardian/testapp/tests/test_admin.py::AdminTests::test_view_manage_user_wrong_perms PASSED [ 3%] guardian/testapp/tests/test_admin.py::AdminTests::test_view_manage_wrong_obj PASSED [ 3%] guardian/testapp/tests/test_admin.py::AdminTests::test_view_manage_wrong_user PASSED [ 4%] guardian/testapp/tests/test_admin.py::GuardedModelAdminTests::test_obj_perms_group_select_form_attr PASSED [ 4%] guardian/testapp/tests/test_admin.py::GuardedModelAdminTests::test_obj_perms_manage_group_form_attr PASSED [ 4%] guardian/testapp/tests/test_admin.py::GuardedModelAdminTests::test_obj_perms_manage_group_template_attr PASSED [ 4%] guardian/testapp/tests/test_admin.py::GuardedModelAdminTests::test_obj_perms_manage_template_attr PASSED [ 4%] guardian/testapp/tests/test_admin.py::GuardedModelAdminTests::test_obj_perms_manage_user_form_attr PASSED [ 5%] guardian/testapp/tests/test_admin.py::GuardedModelAdminTests::test_obj_perms_manage_user_template_attr PASSED [ 5%] guardian/testapp/tests/test_admin.py::GuardedModelAdminTests::test_obj_perms_user_select_form_attr PASSED [ 5%] guardian/testapp/tests/test_admin.py::GuardedModelAdminTests::test_user_can_acces_owned_objects_only PASSED [ 5%] guardian/testapp/tests/test_admin.py::GuardedModelAdminTests::test_user_can_acces_owned_objects_only_unless_superuser PASSED [ 6%] guardian/testapp/tests/test_admin.py::GuardedModelAdminTests::test_user_can_access_owned_by_group_objects_only PASSED [ 6%] guardian/testapp/tests/test_admin.py::GuardedModelAdminTests::test_user_can_access_owned_by_group_objects_only_unless_superuser PASSED [ 6%] guardian/testapp/tests/test_admin.py::GrappelliGuardedModelAdminTests::test_get_obj_perms_manage_group_template PASSED [ 6%] guardian/testapp/tests/test_admin.py::GrappelliGuardedModelAdminTests::test_get_obj_perms_manage_template PASSED [ 7%] guardian/testapp/tests/test_admin.py::GrappelliGuardedModelAdminTests::test_get_obj_perms_manage_user_template PASSED [ 7%] guardian/testapp/tests/test_admin.py::GuardedInlineAdminMixinTests::test_inline_add_permission_only_denies_other_permissions PASSED [ 7%] guardian/testapp/tests/test_admin.py::GuardedInlineAdminMixinTests::test_inline_change_permission_only_denies_other_permissions PASSED [ 7%] guardian/testapp/tests/test_admin.py::GuardedInlineAdminMixinTests::test_inline_delete_permission_only_denies_other_permissions PASSED [ 8%] guardian/testapp/tests/test_admin.py::GuardedInlineAdminMixinTests::test_inline_different_objects_permission_isolation PASSED [ 8%] guardian/testapp/tests/test_admin.py::GuardedInlineAdminMixinTests::test_inline_global_vs_object_permission_isolation PASSED [ 8%] guardian/testapp/tests/test_admin.py::GuardedInlineAdminMixinTests::test_inline_has_add_permission_global PASSED [ 8%] guardian/testapp/tests/test_admin.py::GuardedInlineAdminMixinTests::test_inline_has_add_permission_with_object_permission PASSED [ 8%] guardian/testapp/tests/test_admin.py::GuardedInlineAdminMixinTests::test_inline_has_change_permission_with_object_permission PASSED [ 9%] guardian/testapp/tests/test_admin.py::GuardedInlineAdminMixinTests::test_inline_has_delete_permission_with_object_permission PASSED [ 9%] guardian/testapp/tests/test_admin.py::GuardedInlineAdminMixinTests::test_inline_has_view_permission_with_object_permission PASSED [ 9%] guardian/testapp/tests/test_admin.py::GuardedInlineAdminMixinTests::test_inline_inheritance_order PASSED [ 9%] guardian/testapp/tests/test_admin.py::GuardedInlineAdminMixinTests::test_inline_model_meta_access PASSED [ 10%] guardian/testapp/tests/test_admin.py::GuardedInlineAdminMixinTests::test_inline_partial_permissions_isolation PASSED [ 10%] guardian/testapp/tests/test_admin.py::GuardedInlineAdminMixinTests::test_inline_permission_denied_for_other_user PASSED [ 10%] guardian/testapp/tests/test_admin.py::GuardedInlineAdminMixinTests::test_inline_permission_revocation PASSED [ 10%] guardian/testapp/tests/test_admin.py::GuardedInlineAdminMixinTests::test_inline_view_permission_only_denies_other_permissions PASSED [ 11%] guardian/testapp/tests/test_admin.py::GuardedInlineAdminMixinTests::test_inline_with_none_object PASSED [ 11%] guardian/testapp/tests/test_admin.py::GuardedInlineAdminMixinTests::test_inline_with_tabular_admin PASSED [ 11%] guardian/testapp/tests/test_admin.py::GuardedInlineAdminMixinTests::test_superuser_has_all_inline_permissions PASSED [ 11%] guardian/testapp/tests/test_backend_integration.py::BackendIntegrationTest::test_anonymous_user_support PASSED [ 12%] guardian/testapp/tests/test_backend_integration.py::BackendIntegrationTest::test_backend_priority_with_model_backend PASSED [ 12%] guardian/testapp/tests/test_backend_integration.py::BackendIntegrationTest::test_user_get_all_permissions_integration PASSED [ 12%] guardian/testapp/tests/test_backend_integration.py::BackendIntegrationTest::test_user_get_group_permissions_integration PASSED [ 12%] guardian/testapp/tests/test_backend_integration.py::BackendIntegrationTest::test_user_get_group_permissions_without_object PASSED [ 12%] guardian/testapp/tests/test_backends.py::ObjectPermissionBackendTest::test_authenticate_returns_none PASSED [ 13%] guardian/testapp/tests/test_backends.py::ObjectPermissionBackendTest::test_backend_attributes PASSED [ 13%] guardian/testapp/tests/test_backends.py::ObjectPermissionBackendTest::test_get_all_permissions_superuser PASSED [ 13%] guardian/testapp/tests/test_backends.py::ObjectPermissionBackendTest::test_get_all_permissions_with_object PASSED [ 13%] guardian/testapp/tests/test_backends.py::ObjectPermissionBackendTest::test_get_all_permissions_without_object PASSED [ 14%] guardian/testapp/tests/test_backends.py::ObjectPermissionBackendTest::test_get_group_permissions_anonymous_user PASSED [ 14%] guardian/testapp/tests/test_backends.py::ObjectPermissionBackendTest::test_get_group_permissions_inactive_user PASSED [ 14%] guardian/testapp/tests/test_backends.py::ObjectPermissionBackendTest::test_get_group_permissions_with_object PASSED [ 14%] guardian/testapp/tests/test_backends.py::ObjectPermissionBackendTest::test_get_group_permissions_without_object PASSED [ 15%] guardian/testapp/tests/test_backends.py::ObjectPermissionBackendTest::test_has_perm_inactive_user PASSED [ 15%] guardian/testapp/tests/test_backends.py::ObjectPermissionBackendTest::test_has_perm_superuser PASSED [ 15%] guardian/testapp/tests/test_backends.py::ObjectPermissionBackendTest::test_has_perm_with_object PASSED [ 15%] guardian/testapp/tests/test_backends.py::ObjectPermissionBackendTest::test_has_perm_without_object PASSED [ 16%] guardian/testapp/tests/test_backends.py::ObjectPermissionBackendTest::test_mixed_user_and_group_permissions PASSED [ 16%] guardian/testapp/tests/test_backends.py::ObjectPermissionBackendTest::test_permission_removal PASSED [ 16%] guardian/testapp/tests/test_backends.py::ObjectPermissionBackendTest::test_user_in_multiple_groups PASSED [ 16%] guardian/testapp/tests/test_checks.py::SystemCheckTestCase::test_checks PASSED [ 16%] guardian/testapp/tests/test_conf.py::TestConfiguration::test_check_configuration PASSED [ 17%] guardian/testapp/tests/test_conf.py::TestConfiguration::test_get_content_type PASSED [ 17%] guardian/testapp/tests/test_core.py::CustomUserTests::test_create_anonymous_user PASSED [ 17%] guardian/testapp/tests/test_core.py::ObjectPermissionCheckerTest::test_anonymous_user PASSED [ 17%] guardian/testapp/tests/test_core.py::ObjectPermissionCheckerTest::test_autoprefetch_group_perms PASSED [ 18%] guardian/testapp/tests/test_core.py::ObjectPermissionCheckerTest::test_autoprefetch_superuser_perms PASSED [ 18%] guardian/testapp/tests/test_core.py::ObjectPermissionCheckerTest::test_autoprefetch_user_perms PASSED [ 18%] guardian/testapp/tests/test_core.py::ObjectPermissionCheckerTest::test_cache_for_queries_count PASSED [ 18%] guardian/testapp/tests/test_core.py::ObjectPermissionCheckerTest::test_get_perms PASSED [ 19%] guardian/testapp/tests/test_core.py::ObjectPermissionCheckerTest::test_init PASSED [ 19%] guardian/testapp/tests/test_core.py::ObjectPermissionCheckerTest::test_not_active_superuser PASSED [ 19%] guardian/testapp/tests/test_core.py::ObjectPermissionCheckerTest::test_not_active_user PASSED [ 19%] guardian/testapp/tests/test_core.py::ObjectPermissionCheckerTest::test_prefetch_group_perms PASSED [ 20%] guardian/testapp/tests/test_core.py::ObjectPermissionCheckerTest::test_prefetch_group_perms_direct_rel PASSED [ 20%] guardian/testapp/tests/test_core.py::ObjectPermissionCheckerTest::test_prefetch_superuser_perms PASSED [ 20%] guardian/testapp/tests/test_core.py::ObjectPermissionCheckerTest::test_prefetch_superuser_perms_direct_rel PASSED [ 20%] guardian/testapp/tests/test_core.py::ObjectPermissionCheckerTest::test_prefetch_user_perms PASSED [ 20%] guardian/testapp/tests/test_core.py::ObjectPermissionCheckerTest::test_prefetch_user_perms_direct_rel PASSED [ 21%] guardian/testapp/tests/test_core.py::ObjectPermissionCheckerTest::test_prefetch_user_perms_with_empty_objects PASSED [ 21%] guardian/testapp/tests/test_core.py::ObjectPermissionCheckerTest::test_superuser PASSED [ 21%] guardian/testapp/tests/test_custompkmodel.py::CustomPKModelTest::test_assign_perm PASSED [ 21%] guardian/testapp/tests/test_custompkmodel.py::CustomPKModelTest::test_remove_perm PASSED [ 22%] guardian/testapp/tests/test_decorators.py::PermissionRequiredTest::test_403_response_raises_error PASSED [ 22%] guardian/testapp/tests/test_decorators.py::PermissionRequiredTest::test_404_response_raises_error PASSED [ 22%] guardian/testapp/tests/test_decorators.py::PermissionRequiredTest::test_RAISE_403_setting_is_true PASSED [ 22%] guardian/testapp/tests/test_decorators.py::PermissionRequiredTest::test_RAISE_404_setting_is_true PASSED [ 23%] guardian/testapp/tests/test_decorators.py::PermissionRequiredTest::test_RENDER_403_is_false PASSED [ 23%] guardian/testapp/tests/test_decorators.py::PermissionRequiredTest::test_RENDER_404_is_false PASSED [ 23%] guardian/testapp/tests/test_decorators.py::PermissionRequiredTest::test_TEMPLATE_403_setting PASSED [ 23%] guardian/testapp/tests/test_decorators.py::PermissionRequiredTest::test_TEMPLATE_404_setting PASSED [ 24%] guardian/testapp/tests/test_decorators.py::PermissionRequiredTest::test_anonymous_user PASSED [ 24%] guardian/testapp/tests/test_decorators.py::PermissionRequiredTest::test_anonymous_user_wrong_app PASSED [ 24%] guardian/testapp/tests/test_decorators.py::PermissionRequiredTest::test_anonymous_user_wrong_codename PASSED [ 24%] guardian/testapp/tests/test_decorators.py::PermissionRequiredTest::test_model_lookup PASSED [ 25%] guardian/testapp/tests/test_decorators.py::PermissionRequiredTest::test_no_args PASSED [ 25%] guardian/testapp/tests/test_decorators.py::PermissionRequiredTest::test_redirection PASSED [ 25%] guardian/testapp/tests/test_decorators.py::PermissionRequiredTest::test_redirection_class PASSED [ 25%] guardian/testapp/tests/test_decorators.py::PermissionRequiredTest::test_redirection_raises_wrong_app_error PASSED [ 25%] guardian/testapp/tests/test_decorators.py::PermissionRequiredTest::test_user_has_access PASSED [ 26%] guardian/testapp/tests/test_decorators.py::PermissionRequiredTest::test_user_has_access_on_model_with_metaclass PASSED [ 26%] guardian/testapp/tests/test_decorators.py::PermissionRequiredTest::test_user_has_global_perm_access PASSED [ 26%] guardian/testapp/tests/test_decorators.py::PermissionRequiredTest::test_user_has_global_perm_access_but_flag_not_set PASSED [ 26%] guardian/testapp/tests/test_decorators.py::PermissionRequiredTest::test_user_has_no_access PASSED [ 27%] guardian/testapp/tests/test_decorators.py::PermissionRequiredTest::test_user_has_no_obj_perm_access PASSED [ 27%] guardian/testapp/tests/test_decorators.py::PermissionRequiredTest::test_user_has_obj_access_even_if_we_also_check_for_global PASSED [ 27%] guardian/testapp/tests/test_decorators.py::PermissionRequiredTest::test_wrong_lookup_variables PASSED [ 27%] guardian/testapp/tests/test_decorators.py::PermissionRequiredTest::test_wrong_lookup_variables_number PASSED [ 28%] guardian/testapp/tests/test_direct_rel.py::TestDirectUserPermissions::test_after_perm_is_created_without_shortcut PASSED [ 28%] guardian/testapp/tests/test_direct_rel.py::TestDirectUserPermissions::test_assign_perm PASSED [ 28%] guardian/testapp/tests/test_direct_rel.py::TestDirectUserPermissions::test_get_all_permissions PASSED [ 28%] guardian/testapp/tests/test_direct_rel.py::TestDirectUserPermissions::test_get_all_permissions_no_object PASSED [ 29%] guardian/testapp/tests/test_direct_rel.py::TestDirectUserPermissions::test_get_objects_for_user PASSED [ 29%] guardian/testapp/tests/test_direct_rel.py::TestDirectUserPermissions::test_get_users_with_perms PASSED [ 29%] guardian/testapp/tests/test_direct_rel.py::TestDirectUserPermissions::test_get_users_with_perms_plus_groups PASSED [ 29%] guardian/testapp/tests/test_direct_rel.py::TestDirectUserPermissions::test_remove_perm PASSED [ 29%] guardian/testapp/tests/test_direct_rel.py::TestDirectGroupPermissions::test_after_perm_is_created_without_shortcut PASSED [ 30%] guardian/testapp/tests/test_direct_rel.py::TestDirectGroupPermissions::test_assign_perm PASSED [ 30%] guardian/testapp/tests/test_direct_rel.py::TestDirectGroupPermissions::test_get_groups_with_perms PASSED [ 30%] guardian/testapp/tests/test_direct_rel.py::TestDirectGroupPermissions::test_get_groups_with_perms_doesnt_spawn_extra_queries_for_more_groups_with_perms PASSED [ 30%] guardian/testapp/tests/test_direct_rel.py::TestDirectGroupPermissions::test_get_objects_for_group PASSED [ 31%] guardian/testapp/tests/test_direct_rel.py::TestDirectGroupPermissions::test_remove_perm PASSED [ 31%] guardian/testapp/tests/test_direct_rel.py::TestMixedDirectAndGenericObjectPermission::test_get_users_with_perms_plus_groups PASSED [ 31%] guardian/testapp/tests/test_direct_rel.py::TestMixedDirectAndGenericObjectPermission::test_get_users_with_perms_plus_groups_reverse_mixed PASSED [ 31%] guardian/testapp/tests/test_forms.py::BaseObjectPermissionsFormTests::test_not_implemented PASSED [ 32%] guardian/testapp/tests/test_indexes.py::IndexPerformanceTestCase::test_group_permission_lookup_performance PASSED [ 32%] guardian/testapp/tests/test_indexes.py::IndexPerformanceTestCase::test_specific_permission_lookup_performance PASSED [ 32%] guardian/testapp/tests/test_indexes.py::IndexPerformanceTestCase::test_user_permission_lookup_performance PASSED [ 32%] guardian/testapp/tests/test_indexes.py::GuardianShortcutsPerformanceTestCase::test_bulk_permission_check_performance PASSED [ 33%] guardian/testapp/tests/test_indexes.py::GuardianShortcutsPerformanceTestCase::test_get_objects_for_group_performance PASSED [ 33%] guardian/testapp/tests/test_indexes.py::GuardianShortcutsPerformanceTestCase::test_get_objects_for_user_multiple_permissions PASSED [ 33%] guardian/testapp/tests/test_indexes.py::GuardianShortcutsPerformanceTestCase::test_get_objects_for_user_performance PASSED [ 33%] guardian/testapp/tests/test_indexes.py::GuardianShortcutsPerformanceTestCase::test_get_objects_for_user_speed_comparison PASSED [ 33%] guardian/testapp/tests/test_indexes.py::GuardianShortcutsPerformanceTestCase::test_get_objects_for_user_with_groups_performance PASSED [ 34%] guardian/testapp/tests/test_indexes.py::GuardianShortcutsPerformanceTestCase::test_object_permission_checker_performance PASSED [ 34%] guardian/testapp/tests/test_indexes.py::IndexVsNoIndexPerformanceTestCase::test_bulk_permission_checks_timing PASSED [ 34%] guardian/testapp/tests/test_indexes.py::IndexVsNoIndexPerformanceTestCase::test_get_objects_for_user_timing PASSED [ 34%] guardian/testapp/tests/test_indexes.py::IndexVsNoIndexPerformanceTestCase::test_object_permission_listing_timing PASSED [ 35%] guardian/testapp/tests/test_indexes.py::IndexVsNoIndexPerformanceTestCase::test_permission_existence_at_scale_timing FAILED [ 35%] guardian/testapp/tests/test_indexes.py::IndexVsNoIndexPerformanceTestCase::test_user_permission_lookup_timing FAILED [ 35%] guardian/testapp/tests/test_management.py::TestGetAnonymousUser::test_database_error_on_user_lookup PASSED [ 35%] guardian/testapp/tests/test_management.py::TestGetAnonymousUser::test_database_error_on_user_save PASSED [ 36%] guardian/testapp/tests/test_management.py::TestGetAnonymousUser::test_get_anonymous_user PASSED [ 36%] guardian/testapp/tests/test_management.py::TestGetAnonymousUser::test_non_migrated_db PASSED [ 36%] guardian/testapp/tests/test_management.py::TestGetAnonymousUser::test_uses_custom_function PASSED [ 36%] guardian/testapp/tests/test_management.py::TestGetAnonymousUser::test_uses_custom_username_field_model PASSED [ 37%] guardian/testapp/tests/test_managers.py::TestManagers::test_group_manager_assign PASSED [ 37%] guardian/testapp/tests/test_managers.py::TestManagers::test_user_manager_assign PASSED [ 37%] guardian/testapp/tests/test_managers.py::TestManagerAssignPerm::test_group_assign_perm PASSED [ 37%] guardian/testapp/tests/test_managers.py::TestManagerAssignPerm::test_group_assign_perm_to_many PASSED [ 37%] guardian/testapp/tests/test_managers.py::TestManagerAssignPerm::test_group_bulk_assign_perm PASSED [ 38%] guardian/testapp/tests/test_managers.py::TestManagerAssignPerm::test_user_assign_perm PASSED [ 38%] guardian/testapp/tests/test_managers.py::TestManagerAssignPerm::test_user_assign_perm_to_many PASSED [ 38%] guardian/testapp/tests/test_managers.py::TestManagerAssignPerm::test_user_bulk_assign_perm PASSED [ 38%] guardian/testapp/tests/test_mixins.py::TestViewMixins::test_any_perm_parameter PASSED [ 39%] guardian/testapp/tests/test_mixins.py::TestViewMixins::test_get_get_objects_for_user_kwargs_raises_deprecation_warning PASSED [ 39%] guardian/testapp/tests/test_mixins.py::TestViewMixins::test_list_permission PASSED [ 39%] guardian/testapp/tests/test_mixins.py::TestViewMixins::test_login_required_mixin PASSED [ 39%] guardian/testapp/tests/test_mixins.py::TestViewMixins::test_permission_granted_global_no_object PASSED [ 40%] guardian/testapp/tests/test_mixins.py::TestViewMixins::test_permission_is_checked_before_view_is_computed PASSED [ 40%] guardian/testapp/tests/test_mixins.py::TestViewMixins::test_permission_is_checked_before_view_is_computed_perm_denied_raised PASSED [ 40%] guardian/testapp/tests/test_mixins.py::TestViewMixins::test_permission_list_mixin_generator_deprecation PASSED [ 40%] guardian/testapp/tests/test_mixins.py::TestViewMixins::test_permission_required PASSED [ 41%] guardian/testapp/tests/test_mixins.py::TestViewMixins::test_permission_required_as_list PASSED [ 41%] guardian/testapp/tests/test_mixins.py::TestViewMixins::test_permission_required_generator_deprecation PASSED [ 41%] guardian/testapp/tests/test_mixins.py::TestViewMixins::test_permission_required_global_no_object PASSED [ 41%] guardian/testapp/tests/test_mixins.py::TestViewMixins::test_permission_required_iterable_types_validation PASSED [ 41%] guardian/testapp/tests/test_mixins.py::TestViewMixins::test_permission_required_no_object PASSED [ 42%] guardian/testapp/tests/test_mixins.py::TestViewMixins::test_permission_required_view_configured_wrongly PASSED [ 42%] guardian/testapp/tests/test_orphans.py::OrphanedObjectPermissionsTest::test_clean_perms PASSED [ 42%] guardian/testapp/tests/test_orphans.py::OrphanedObjectPermissionsTest::test_clean_perms_combined_parameters PASSED [ 42%] guardian/testapp/tests/test_orphans.py::OrphanedObjectPermissionsTest::test_clean_perms_command PASSED [ 43%] guardian/testapp/tests/test_orphans.py::OrphanedObjectPermissionsTest::test_clean_perms_command_combined_parameters PASSED [ 43%] guardian/testapp/tests/test_orphans.py::OrphanedObjectPermissionsTest::test_clean_perms_command_no_orphans PASSED [ 43%] guardian/testapp/tests/test_orphans.py::OrphanedObjectPermissionsTest::test_clean_perms_command_verbosity_levels PASSED [ 43%] guardian/testapp/tests/test_orphans.py::OrphanedObjectPermissionsTest::test_clean_perms_command_with_batch_size PASSED [ 44%] guardian/testapp/tests/test_orphans.py::OrphanedObjectPermissionsTest::test_clean_perms_command_with_max_batches PASSED [ 44%] guardian/testapp/tests/test_orphans.py::OrphanedObjectPermissionsTest::test_clean_perms_command_with_max_duration_secs PASSED [ 44%] guardian/testapp/tests/test_orphans.py::OrphanedObjectPermissionsTest::test_clean_perms_command_with_skip_batches PASSED [ 44%] guardian/testapp/tests/test_orphans.py::OrphanedObjectPermissionsTest::test_clean_perms_edge_cases PASSED [ 45%] guardian/testapp/tests/test_orphans.py::OrphanedObjectPermissionsTest::test_clean_perms_no_orphans PASSED [ 45%] guardian/testapp/tests/test_orphans.py::OrphanedObjectPermissionsTest::test_clean_perms_return_value_consistency PASSED [ 45%] guardian/testapp/tests/test_orphans.py::OrphanedObjectPermissionsTest::test_clean_perms_with_batch_size PASSED [ 45%] guardian/testapp/tests/test_orphans.py::OrphanedObjectPermissionsTest::test_clean_perms_with_max_batches PASSED [ 45%] guardian/testapp/tests/test_orphans.py::OrphanedObjectPermissionsTest::test_clean_perms_with_max_duration_secs PASSED [ 46%] guardian/testapp/tests/test_orphans.py::OrphanedObjectPermissionsTest::test_clean_perms_with_skip_batches PASSED [ 46%] guardian/testapp/tests/test_other.py::UserPermissionTests::test_assign_perm_validation PASSED [ 46%] guardian/testapp/tests/test_other.py::UserPermissionTests::test_assignment PASSED [ 46%] guardian/testapp/tests/test_other.py::UserPermissionTests::test_assignment_and_remove PASSED [ 47%] guardian/testapp/tests/test_other.py::UserPermissionTests::test_ctypes PASSED [ 47%] guardian/testapp/tests/test_other.py::UserPermissionTests::test_errors PASSED [ 47%] guardian/testapp/tests/test_other.py::GroupPermissionTests::test_assign_perm_validation PASSED [ 47%] guardian/testapp/tests/test_other.py::GroupPermissionTests::test_assignement PASSED [ 48%] guardian/testapp/tests/test_other.py::GroupPermissionTests::test_assignement_and_remove PASSED [ 48%] guardian/testapp/tests/test_other.py::GroupPermissionTests::test_ctypes PASSED [ 48%] guardian/testapp/tests/test_other.py::GroupPermissionTests::test_errors PASSED [ 48%] guardian/testapp/tests/test_other.py::ObjectPermissionBackendTests::test_attrs PASSED [ 49%] guardian/testapp/tests/test_other.py::ObjectPermissionBackendTests::test_authenticate PASSED [ 49%] guardian/testapp/tests/test_other.py::ObjectPermissionBackendTests::test_has_perm_noobj PASSED [ 49%] guardian/testapp/tests/test_other.py::ObjectPermissionBackendTests::test_has_perm_notauthed PASSED [ 49%] guardian/testapp/tests/test_other.py::ObjectPermissionBackendTests::test_has_perm_wrong_app PASSED [ 50%] guardian/testapp/tests/test_other.py::ObjectPermissionBackendTests::test_not_active_user PASSED [ 50%] guardian/testapp/tests/test_other.py::ObjectPermissionBackendTests::test_obj_is_not_model PASSED [ 50%] guardian/testapp/tests/test_other.py::GuardianBaseTests::test_get_version PASSED [ 50%] guardian/testapp/tests/test_other.py::TestExceptions::test_error_classes PASSED [ 50%] guardian/testapp/tests/test_other.py::TestMonkeyPatch::test_monkey_patch SKIPPED [ 51%] guardian/testapp/tests/test_shortcuts.py::ShortcutsTests::test_get_perms_for_model PASSED [ 51%] guardian/testapp/tests/test_shortcuts.py::AssignPermTest::test_assign_perm_with_dots PASSED [ 51%] guardian/testapp/tests/test_shortcuts.py::AssignPermTest::test_deprecation_warning PASSED [ 51%] guardian/testapp/tests/test_shortcuts.py::AssignPermTest::test_global_wrong_perm PASSED [ 52%] guardian/testapp/tests/test_shortcuts.py::AssignPermTest::test_group_assign_perm PASSED [ 52%] guardian/testapp/tests/test_shortcuts.py::AssignPermTest::test_group_assign_perm_global PASSED [ 52%] guardian/testapp/tests/test_shortcuts.py::AssignPermTest::test_group_assign_perm_list PASSED [ 52%] guardian/testapp/tests/test_shortcuts.py::AssignPermTest::test_group_assign_perm_queryset PASSED [ 53%] guardian/testapp/tests/test_shortcuts.py::AssignPermTest::test_group_assign_perm_twice PASSED [ 53%] guardian/testapp/tests/test_shortcuts.py::AssignPermTest::test_not_model PASSED [ 53%] guardian/testapp/tests/test_shortcuts.py::AssignPermTest::test_user_assign_perm PASSED [ 53%] guardian/testapp/tests/test_shortcuts.py::AssignPermTest::test_user_assign_perm_global PASSED [ 54%] guardian/testapp/tests/test_shortcuts.py::AssignPermTest::test_user_assign_perm_list PASSED [ 54%] guardian/testapp/tests/test_shortcuts.py::AssignPermTest::test_user_assign_perm_queryset PASSED [ 54%] guardian/testapp/tests/test_shortcuts.py::AssignPermTest::test_user_assign_perm_twice PASSED [ 54%] guardian/testapp/tests/test_shortcuts.py::MultipleIdentitiesAssignTest::test_assign_to_many_groups_list PASSED [ 54%] guardian/testapp/tests/test_shortcuts.py::MultipleIdentitiesAssignTest::test_assign_to_many_groups_queryset PASSED [ 55%] guardian/testapp/tests/test_shortcuts.py::MultipleIdentitiesAssignTest::test_assign_to_many_groups_twice PASSED [ 55%] guardian/testapp/tests/test_shortcuts.py::MultipleIdentitiesAssignTest::test_assign_to_many_users_list PASSED [ 55%] guardian/testapp/tests/test_shortcuts.py::MultipleIdentitiesAssignTest::test_assign_to_many_users_queryset PASSED [ 55%] guardian/testapp/tests/test_shortcuts.py::MultipleIdentitiesAssignTest::test_assign_to_many_users_twice PASSED [ 56%] guardian/testapp/tests/test_shortcuts.py::MultipleIdentitiesAssignTest::test_assign_to_multiple_identity_and_obj PASSED [ 56%] guardian/testapp/tests/test_shortcuts.py::MultipleIdentitiesAssignTest::test_user_assign_perm_empty_obj_list PASSED [ 56%] guardian/testapp/tests/test_shortcuts.py::MultipleIdentitiesAssignTest::test_user_assign_perm_empty_user_list PASSED [ 56%] guardian/testapp/tests/test_shortcuts.py::RemovePermTest::test_global_wrong_perm PASSED [ 57%] guardian/testapp/tests/test_shortcuts.py::RemovePermTest::test_group_remove_perm PASSED [ 57%] guardian/testapp/tests/test_shortcuts.py::RemovePermTest::test_group_remove_perm_global PASSED [ 57%] guardian/testapp/tests/test_shortcuts.py::RemovePermTest::test_group_remove_perm_list PASSED [ 57%] guardian/testapp/tests/test_shortcuts.py::RemovePermTest::test_group_remove_perm_queryset PASSED [ 58%] guardian/testapp/tests/test_shortcuts.py::RemovePermTest::test_not_model PASSED [ 58%] guardian/testapp/tests/test_shortcuts.py::RemovePermTest::test_user_remove_perm PASSED [ 58%] guardian/testapp/tests/test_shortcuts.py::RemovePermTest::test_user_remove_perm_empty_list PASSED [ 58%] guardian/testapp/tests/test_shortcuts.py::RemovePermTest::test_user_remove_perm_empty_queryset PASSED [ 58%] guardian/testapp/tests/test_shortcuts.py::RemovePermTest::test_user_remove_perm_empty_user_list PASSED [ 59%] guardian/testapp/tests/test_shortcuts.py::RemovePermTest::test_user_remove_perm_global PASSED [ 59%] guardian/testapp/tests/test_shortcuts.py::RemovePermTest::test_user_remove_perm_list PASSED [ 59%] guardian/testapp/tests/test_shortcuts.py::RemovePermTest::test_user_remove_perm_queryset PASSED [ 59%] guardian/testapp/tests/test_shortcuts.py::MultipleIdentitiesRemoveTest::test_remove_from_many_empty_users_list PASSED [ 60%] guardian/testapp/tests/test_shortcuts.py::MultipleIdentitiesRemoveTest::test_remove_from_many_groups_list PASSED [ 60%] guardian/testapp/tests/test_shortcuts.py::MultipleIdentitiesRemoveTest::test_remove_from_many_groups_queryset PASSED [ 60%] guardian/testapp/tests/test_shortcuts.py::MultipleIdentitiesRemoveTest::test_remove_from_many_users_list PASSED [ 60%] guardian/testapp/tests/test_shortcuts.py::MultipleIdentitiesRemoveTest::test_remove_from_many_users_queryset PASSED [ 61%] guardian/testapp/tests/test_shortcuts.py::MultipleIdentitiesRemoveTest::test_remove_from_multiple_identity_and_obj PASSED [ 61%] guardian/testapp/tests/test_shortcuts.py::MultipleIdentitiesRemoveTest::test_remove_global_from_many_groups_unsupported PASSED [ 61%] guardian/testapp/tests/test_shortcuts.py::MultipleIdentitiesRemoveTest::test_remove_global_from_many_users_unsupported PASSED [ 61%] guardian/testapp/tests/test_shortcuts.py::GetPermsTest::test_not_model PASSED [ 62%] guardian/testapp/tests/test_shortcuts.py::GetPermsTest::test_user PASSED [ 62%] guardian/testapp/tests/test_shortcuts.py::GetUsersWithPermsTest::test_attach_groups_only_has_perms PASSED [ 62%] guardian/testapp/tests/test_shortcuts.py::GetUsersWithPermsTest::test_attach_perms PASSED [ 62%] guardian/testapp/tests/test_shortcuts.py::GetUsersWithPermsTest::test_direct_perms_only PASSED [ 62%] guardian/testapp/tests/test_shortcuts.py::GetUsersWithPermsTest::test_direct_perms_only_perms_attached PASSED [ 63%] guardian/testapp/tests/test_shortcuts.py::GetUsersWithPermsTest::test_empty PASSED [ 63%] guardian/testapp/tests/test_shortcuts.py::GetUsersWithPermsTest::test_mixed PASSED [ 63%] guardian/testapp/tests/test_shortcuts.py::GetUsersWithPermsTest::test_only_with_perms_in_groups PASSED [ 63%] guardian/testapp/tests/test_shortcuts.py::GetUsersWithPermsTest::test_only_with_perms_in_groups_attached PASSED [ 64%] guardian/testapp/tests/test_shortcuts.py::GetUsersWithPermsTest::test_only_with_perms_in_users PASSED [ 64%] guardian/testapp/tests/test_shortcuts.py::GetUsersWithPermsTest::test_only_with_perms_in_users_attached PASSED [ 64%] guardian/testapp/tests/test_shortcuts.py::GetUsersWithPermsTest::test_only_with_perms_in_users_with_group_users PASSED [ 64%] guardian/testapp/tests/test_shortcuts.py::GetUsersWithPermsTest::test_only_with_perms_in_users_without_group_users PASSED [ 65%] guardian/testapp/tests/test_shortcuts.py::GetUsersWithPermsTest::test_simple PASSED [ 65%] guardian/testapp/tests/test_shortcuts.py::GetUsersWithPermsTest::test_users_groups_after_removal PASSED [ 65%] guardian/testapp/tests/test_shortcuts.py::GetUsersWithPermsTest::test_users_groups_perms PASSED [ 65%] guardian/testapp/tests/test_shortcuts.py::GetUsersWithPermsTest::test_with_superusers PASSED [ 66%] guardian/testapp/tests/test_shortcuts.py::GetUsersWithPermsTest::test_without_group_users PASSED [ 66%] guardian/testapp/tests/test_shortcuts.py::GetUsersWithPermsTest::test_without_group_users_but_perms_attached PASSED [ 66%] guardian/testapp/tests/test_shortcuts.py::GetUsersWithPermsTest::test_without_group_users_no_result PASSED [ 66%] guardian/testapp/tests/test_shortcuts.py::GetUsersWithPermsTest::test_without_group_users_no_result_but_with_superusers PASSED [ 66%] guardian/testapp/tests/test_shortcuts.py::GetGroupsWithPerms::test_custom_group_model PASSED [ 67%] guardian/testapp/tests/test_shortcuts.py::GetGroupsWithPerms::test_custom_group_model_attach_perms PASSED [ 67%] guardian/testapp/tests/test_shortcuts.py::GetGroupsWithPerms::test_empty PASSED [ 67%] guardian/testapp/tests/test_shortcuts.py::GetGroupsWithPerms::test_filter_by_contenttype PASSED [ 67%] guardian/testapp/tests/test_shortcuts.py::GetGroupsWithPerms::test_mixed PASSED [ 68%] guardian/testapp/tests/test_shortcuts.py::GetGroupsWithPerms::test_mixed_attach_perms PASSED [ 68%] guardian/testapp/tests/test_shortcuts.py::GetGroupsWithPerms::test_simple PASSED [ 68%] guardian/testapp/tests/test_shortcuts.py::GetGroupsWithPerms::test_simple_after_removal PASSED [ 68%] guardian/testapp/tests/test_shortcuts.py::GetGroupsWithPerms::test_simple_attach_perms PASSED [ 69%] guardian/testapp/tests/test_shortcuts.py::GetGroupsWithPerms::test_simple_attach_perms_after_removal PASSED [ 69%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForUser::test_anonymous PASSED [ 69%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForUser::test_any_of_multiple_perms_to_check PASSED [ 69%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForUser::test_empty_perms_sequence PASSED [ 70%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForUser::test_ensure_returns_queryset PASSED [ 70%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForUser::test_exception_different_ctypes PASSED [ 70%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForUser::test_groups_perms PASSED [ 70%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForUser::test_has_any_group_permissions PASSED [ 70%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForUser::test_has_any_permissions PASSED [ 71%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForUser::test_has_global_permission_and_object_based_permission PASSED [ 71%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForUser::test_has_global_permission_and_object_based_permission_any_perm PASSED [ 71%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForUser::test_has_global_permission_only PASSED [ 71%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForUser::test_klass_as_manager PASSED [ 72%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForUser::test_klass_as_model PASSED [ 72%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForUser::test_klass_as_queryset PASSED [ 72%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForUser::test_mixed_perms PASSED [ 72%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForUser::test_mixed_perms_and_klass PASSED [ 73%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForUser::test_model_inheritance PASSED [ 73%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForUser::test_multiple_perms_to_check PASSED [ 73%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForUser::test_multiple_perms_to_check_no_groups PASSED [ 73%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForUser::test_no_app_label_nor_klass PASSED [ 74%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForUser::test_object_based_permission_with_groups_2perms PASSED [ 74%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForUser::test_object_based_permission_with_groups_3perms PASSED [ 74%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForUser::test_object_based_permission_without_global_permission PASSED [ 74%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForUser::test_override_get_content_type PASSED [ 75%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForUser::test_perms_single PASSED [ 75%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForUser::test_perms_with_mixed_apps PASSED [ 75%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForUser::test_short_codenames_with_klass PASSED [ 75%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForUser::test_simple PASSED [ 75%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForUser::test_superuser PASSED [ 76%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForUser::test_uuid_primary_key PASSED [ 76%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForUser::test_uuid_primary_key_accept_global_perms_false_bug_fix PASSED [ 76%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForUser::test_uuid_primary_key_with_any_perm PASSED [ 76%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForUser::test_uuid_primary_key_with_group_values PASSED [ 77%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForUser::test_varchar_primary_key PASSED [ 77%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForUser::test_varchar_primary_key_with_any_perm PASSED [ 77%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForUser::test_varchar_primary_key_with_group_values PASSED [ 77%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForUser::test_with_superuser_false PASSED [ 78%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForUser::test_with_superuser_true PASSED [ 78%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForGroup::test_any_of_multiple_perms_to_check PASSED [ 78%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForGroup::test_empty_perms_sequence PASSED [ 78%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForGroup::test_ensure_returns_queryset PASSED [ 79%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForGroup::test_exception_different_ctypes PASSED [ 79%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForGroup::test_has_global_permission PASSED [ 79%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForGroup::test_has_global_permission_and_object_based_permission PASSED [ 79%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForGroup::test_has_global_permission_and_object_based_permission_3perms PASSED [ 79%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForGroup::test_has_global_permission_and_object_based_permission_any_perm PASSED [ 80%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForGroup::test_klass_as_manager PASSED [ 80%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForGroup::test_klass_as_model PASSED [ 80%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForGroup::test_klass_as_queryset PASSED [ 80%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForGroup::test_mixed_perms PASSED [ 81%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForGroup::test_mixed_perms_and_klass PASSED [ 81%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForGroup::test_multiple_perms_to_check PASSED [ 81%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForGroup::test_no_app_label_nor_klass PASSED [ 81%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForGroup::test_override_get_content_type PASSED [ 82%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForGroup::test_perms_single PASSED [ 82%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForGroup::test_perms_with_mixed_apps PASSED [ 82%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForGroup::test_results_for_different_groups_are_correct PASSED [ 82%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForGroup::test_simple PASSED [ 83%] guardian/testapp/tests/test_shortcuts.py::GetObjectsForGroup::test_simple_after_removal PASSED [ 83%] guardian/testapp/tests/test_shortcuts.py::ContentTypeCacheTestCase::test_first_access PASSED [ 83%] guardian/testapp/tests/test_shortcuts.py::ContentTypeCacheTestCase::test_second_access PASSED [ 83%] guardian/testapp/tests/test_shortcuts.py::GetPermsVsGetUserPermsTest::test_get_perms_should_be_superset_of_get_user_perms_group_only PASSED [ 83%] guardian/testapp/tests/test_shortcuts.py::GetPermsVsGetUserPermsTest::test_get_perms_should_be_superset_of_get_user_perms_mixed PASSED [ 84%] guardian/testapp/tests/test_shortcuts.py::GetPermsVsGetUserPermsTest::test_get_perms_should_be_superset_of_get_user_perms_no_permissions PASSED [ 84%] guardian/testapp/tests/test_shortcuts.py::GetPermsVsGetUserPermsTest::test_get_perms_should_be_superset_of_get_user_perms_user_only PASSED [ 84%] guardian/testapp/tests/test_shortcuts.py::GetPermsVsGetUserPermsTest::test_inactive_user_behavior PASSED [ 84%] guardian/testapp/tests/test_shortcuts.py::GetPermsVsGetUserPermsTest::test_reported_issue_reproduction PASSED [ 85%] guardian/testapp/tests/test_shortcuts.py::GetPermsVsGetUserPermsTest::test_return_type_consistency PASSED [ 85%] guardian/testapp/tests/test_shortcuts.py::GetPermsVsGetUserPermsTest::test_superuser_behavior PASSED [ 85%] guardian/testapp/tests/test_shortcuts.py::NonStandardPKTests::test_comparison_with_standard_pk_types PASSED [ 85%] guardian/testapp/tests/test_shortcuts.py::NonStandardPKTests::test_text_pk_empty_result PASSED [ 86%] guardian/testapp/tests/test_shortcuts.py::NonStandardPKTests::test_text_pk_get_objects_for_group_accept_global_perms_false PASSED [ 86%] guardian/testapp/tests/test_shortcuts.py::NonStandardPKTests::test_text_pk_get_objects_for_group_any_perm PASSED [ 86%] guardian/testapp/tests/test_shortcuts.py::NonStandardPKTests::test_text_pk_get_objects_for_group_multiple_permissions PASSED [ 86%] guardian/testapp/tests/test_shortcuts.py::NonStandardPKTests::test_text_pk_get_objects_for_group_single_permission PASSED [ 87%] guardian/testapp/tests/test_shortcuts.py::NonStandardPKTests::test_text_pk_get_objects_for_user_accept_global_perms_false PASSED [ 87%] guardian/testapp/tests/test_shortcuts.py::NonStandardPKTests::test_text_pk_get_objects_for_user_any_perm PASSED [ 87%] guardian/testapp/tests/test_shortcuts.py::NonStandardPKTests::test_text_pk_get_objects_for_user_multiple_permissions PASSED [ 87%] guardian/testapp/tests/test_shortcuts.py::NonStandardPKTests::test_text_pk_get_objects_for_user_single_permission PASSED [ 87%] guardian/testapp/tests/test_shortcuts.py::NonStandardPKTests::test_text_pk_get_objects_for_user_with_groups PASSED [ 88%] guardian/testapp/tests/test_shortcuts.py::NonStandardPKTests::test_text_pk_get_objects_for_user_without_groups PASSED [ 88%] guardian/testapp/tests/test_shortcuts.py::NonStandardPKTests::test_text_pk_mixed_user_and_group_permissions PASSED [ 88%] guardian/testapp/tests/test_shortcuts.py::NonStandardPKTests::test_text_pk_queryset_parameter PASSED [ 88%] guardian/testapp/tests/test_shortcuts.py::NonStandardPKTests::test_text_pk_special_characters PASSED [ 89%] guardian/testapp/tests/test_tags.py::GetObjPermsTagTest::test_anonymous_user PASSED [ 89%] guardian/testapp/tests/test_tags.py::GetObjPermsTagTest::test_checker PASSED [ 89%] guardian/testapp/tests/test_tags.py::GetObjPermsTagTest::test_group PASSED [ 89%] guardian/testapp/tests/test_tags.py::GetObjPermsTagTest::test_obj_none PASSED [ 90%] guardian/testapp/tests/test_tags.py::GetObjPermsTagTest::test_superuser PASSED [ 90%] guardian/testapp/tests/test_tags.py::GetObjPermsTagTest::test_user PASSED [ 90%] guardian/testapp/tests/test_tags.py::GetObjPermsTagTest::test_wrong_formats PASSED [ 90%] guardian/testapp/tests/test_tags.py::GetObjPermsTagTest::test_wrong_user_or_group PASSED [ 91%] guardian/testapp/tests/test_utils.py::GetAnonymousUserTest::test PASSED [ 91%] guardian/testapp/tests/test_utils.py::GetIdentityTest::test_anonymous_user PASSED [ 91%] guardian/testapp/tests/test_utils.py::GetIdentityTest::test_group PASSED [ 91%] guardian/testapp/tests/test_utils.py::GetIdentityTest::test_group_subclass_queryset PASSED [ 91%] guardian/testapp/tests/test_utils.py::GetIdentityTest::test_multiple_group_list PASSED [ 92%] guardian/testapp/tests/test_utils.py::GetIdentityTest::test_multiple_group_qs PASSED [ 92%] guardian/testapp/tests/test_utils.py::GetIdentityTest::test_multiple_user_list PASSED [ 92%] guardian/testapp/tests/test_utils.py::GetIdentityTest::test_multiple_user_qs PASSED [ 92%] guardian/testapp/tests/test_utils.py::GetIdentityTest::test_not_user_nor_group PASSED [ 93%] guardian/testapp/tests/test_utils.py::GetIdentityTest::test_user PASSED [ 93%] guardian/testapp/tests/test_utils.py::GetIdentityTest::test_user_subclass_queryset PASSED [ 93%] guardian/testapp/tests/test_utils.py::GetUserObjPermsModelTest::test_default PASSED [ 93%] guardian/testapp/tests/test_utils.py::GetUserObjPermsModelTest::test_for_class PASSED [ 94%] guardian/testapp/tests/test_utils.py::GetUserObjPermsModelTest::test_for_instance PASSED [ 94%] guardian/testapp/tests/test_utils.py::GetUserObjPermsModelTest::test_user_model PASSED [ 94%] guardian/testapp/tests/test_utils.py::GetGroupObjPermsModelTest::test_default PASSED [ 94%] guardian/testapp/tests/test_utils.py::GetGroupObjPermsModelTest::test_for_class PASSED [ 95%] guardian/testapp/tests/test_utils.py::GetGroupObjPermsModelTest::test_for_instance PASSED [ 95%] guardian/testapp/tests/test_utils.py::GetGroupObjPermsModelTest::test_group_model PASSED [ 95%] guardian/testapp/tests/test_utils.py::GetObjPermsModelTest::test_file_field PASSED [ 95%] guardian/testapp/tests/test_utils.py::GetObjPermsModelTest::test_image_field PASSED [ 95%] guardian/testapp/tests/test_utils.py::GetAnonymousUserCacheTest::test_both_functions_return_same_user PASSED [ 96%] guardian/testapp/tests/test_utils.py::GetAnonymousUserCacheTest::test_cache_clear_functionality PASSED [ 96%] guardian/testapp/tests/test_utils.py::GetAnonymousUserCacheTest::test_cache_disabled_by_default PASSED [ 96%] guardian/testapp/tests/test_utils.py::GetAnonymousUserCacheTest::test_cache_enabled PASSED [ 96%] guardian/testapp/tests/test_utils.py::GetAnonymousUserCacheTest::test_cache_info_available PASSED [ 97%] guardian/testapp/tests/test_utils.py::GetAnonymousUserCacheTest::test_cached_function_calls_database_once PASSED [ 97%] guardian/testapp/tests/test_utils.py::GetAnonymousUserCacheTest::test_indefinite_cache PASSED [ 97%] guardian/testapp/tests/test_utils.py::GetAnonymousUserCacheTest::test_integration_with_get_identity PASSED [ 97%] guardian/testapp/tests/test_utils.py::GetAnonymousUserCacheTest::test_integration_with_get_identity_uncached PASSED [ 98%] guardian/testapp/tests/test_utils.py::GetAnonymousUserCacheTest::test_uncached_function_calls_database_each_time PASSED [ 98%] guardian/testapp/tests/test_indexes.py::IndexTestCase::test_basegenericobjectpermission_index_exists PASSED [ 98%] guardian/testapp/tests/test_indexes.py::IndexTestCase::test_groupobjectpermission_indexes_exist PASSED [ 98%] guardian/testapp/tests/test_indexes.py::IndexTestCase::test_groupobjectpermission_query_uses_index PASSED [ 99%] guardian/testapp/tests/test_indexes.py::IndexTestCase::test_userobjectpermission_indexes_exist PASSED [ 99%] guardian/testapp/tests/test_indexes.py::IndexTestCase::test_userobjectpermission_query_uses_index PASSED [ 99%] guardian/testapp/tests/test_shortcuts.py::ContentTypeCacheTransactionTestCase::test_first_access PASSED [ 99%] guardian/testapp/tests/test_shortcuts.py::ContentTypeCacheTransactionTestCase::test_second_access PASSED [100%] =================================== FAILURES =================================== _ IndexVsNoIndexPerformanceTestCase.test_permission_existence_at_scale_timing __ self = def test_permission_existence_at_scale_timing(self): """Test permission existence checking performance at scale.""" import time # Test checking permissions for multiple users and objects users_sample = self.users[:10] projects_sample = self.projects[:10] start_time = time.time() existence_checks = 0 for user in users_sample: for project in projects_sample: UserObjectPermission.objects.filter( permission=self.add_permission, user=user, content_type=self.content_type, object_pk=str(project.pk) ).exists() existence_checks += 1 end_time = time.time() elapsed_time = end_time - start_time print(f"\nPerformed {existence_checks} permission existence checks in {elapsed_time:.4f} seconds") # Should be very fast with proper indexing > self.assertLess(elapsed_time, 0.5, "Permission existence checks should be fast with indexes") E AssertionError: 1.2538087368011475 not less than 0.5 : Permission existence checks should be fast with indexes guardian/testapp/tests/test_indexes.py:546: AssertionError ----------------------------- Captured stdout call ----------------------------- Performed 100 permission existence checks in 1.2538 seconds _____ IndexVsNoIndexPerformanceTestCase.test_user_permission_lookup_timing _____ self = def test_user_permission_lookup_timing(self): """Test specific user permission lookup speed with timing.""" import time user = self.users[0] project = self.projects[0] # Test query that should benefit from our index start_time = time.time() # Multiple lookups to see cumulative benefit for _ in range(10): UserObjectPermission.objects.filter( permission=self.add_permission, user=user, content_type=self.content_type, object_pk=str(project.pk) ).exists() end_time = time.time() elapsed_time = end_time - start_time print(f"\n10 permission existence checks took {elapsed_time:.4f} seconds") # With proper indexes, this should be very fast even with multiple queries > self.assertLess(elapsed_time, 0.1, "User permission lookup should be very fast with indexes") E AssertionError: 0.11432933807373047 not less than 0.1 : User permission lookup should be very fast with indexes guardian/testapp/tests/test_indexes.py:470: AssertionError ----------------------------- Captured stdout call ----------------------------- 10 permission existence checks took 0.1143 seconds =========================== short test summary info ============================ FAILED guardian/testapp/tests/test_indexes.py::IndexVsNoIndexPerformanceTestCase::test_permission_existence_at_scale_timing FAILED guardian/testapp/tests/test_indexes.py::IndexVsNoIndexPerformanceTestCase::test_user_permission_lookup_timing ============ 2 failed, 421 passed, 1 skipped in 1486.93s (0:24:46) ============= ==> ERROR: A failure occurred in check(). Aborting... [!p]104[?7h]3008;end=880c073a89714eb5a45f9eac84391d7a\==> ERROR: Build failed, check /var/lib/archbuild/extra-riscv64/felix-4/build [?25h[?25h[?25hreceiving incremental file list python-django-guardian-3.3.0-1-riscv64-build.log python-django-guardian-3.3.0-1-riscv64-check.log python-django-guardian-3.3.0-1-riscv64-prepare.log sent 81 bytes received 10,313 bytes 6,929.33 bytes/sec total size is 110,744 speedup is 10.65