>>> py3-django-otp: Building community/py3-django-otp 1.6.0-r0 (using abuild 3.15.0_rc3-r0) started Sat, 12 Apr 2025 17:01:56 +0000
>>> py3-django-otp: Validating /home/buildozer/aports/community/py3-django-otp/APKBUILD...
>>> py3-django-otp: Analyzing dependencies...
>>> py3-django-otp: Installing for build: build-base py3-django py3-qrcode py3-gpep517 py3-setuptools py3-wheel py3-hatchling py3-freezegun
(1/67) Installing libffi (3.4.7-r0)
(2/67) Installing gdbm (1.24-r0)
(3/67) Installing mpdecimal (4.0.0-r0)
(4/67) Installing libpanelw (6.5_p20250216-r0)
(5/67) Installing sqlite-libs (3.49.1-r0)
(6/67) Installing python3 (3.12.10-r0)
(7/67) Installing python3-pycache-pyc0 (3.12.10-r0)
(8/67) Installing pyc (3.12.10-r0)
(9/67) Installing py3-asgiref (3.8.1-r1)
(10/67) Installing py3-asgiref-pyc (3.8.1-r1)
(11/67) Installing py3-sqlparse (0.5.1-r0)
(12/67) Installing py3-sqlparse-pyc (0.5.1-r0)
(13/67) Installing tzdata (2025b-r0)
(14/67) Installing py3-django-pyc (4.2.16-r0)
(15/67) Installing python3-pyc (3.12.10-r0)
(16/67) Installing py3-django (4.2.16-r0)
(17/67) Installing libpng (1.6.47-r0)
(18/67) Installing freetype (2.13.3-r0)
(19/67) Installing libimagequant (4.2.2-r0)
(20/67) Installing libjpeg-turbo (3.1.0-r0)
(21/67) Installing lcms2 (2.16-r0)
(22/67) Installing openjpeg (2.5.3-r0)
(23/67) Installing libsharpyuv (1.5.0-r0)
(24/67) Installing libwebp (1.5.0-r0)
(25/67) Installing tiff (4.7.0-r0)
(26/67) Installing libwebpdemux (1.5.0-r0)
(27/67) Installing libwebpmux (1.5.0-r0)
(28/67) Installing libxau (1.0.12-r0)
(29/67) Installing libmd (1.1.0-r0)
(30/67) Installing libbsd (0.12.2-r0)
(31/67) Installing libxdmcp (1.1.5-r1)
(32/67) Installing libxcb (1.17.0-r0)
(33/67) Installing py3-pillow (11.1.0-r0)
(34/67) Installing py3-pillow-pyc (11.1.0-r0)
(35/67) Installing py3-pypng (0.20231004.0-r0)
(36/67) Installing py3-pypng-pyc (0.20231004.0-r0)
(37/67) Installing py3-parsing (3.2.0-r0)
(38/67) Installing py3-parsing-pyc (3.2.0-r0)
(39/67) Installing py3-packaging (24.2-r0)
(40/67) Installing py3-packaging-pyc (24.2-r0)
(41/67) Installing py3-setuptools (77.0.3-r0)
(42/67) Installing py3-setuptools-pyc (77.0.3-r0)
(43/67) Installing py3-qrcode (8.1-r0)
(44/67) Installing py3-qrcode-pyc (8.1-r0)
(45/67) Installing py3-installer (0.7.0-r2)
(46/67) Installing py3-installer-pyc (0.7.0-r2)
(47/67) Installing py3-gpep517 (16-r0)
(48/67) Installing py3-gpep517-pyc (16-r0)
(49/67) Installing py3-wheel (0.43.0-r0)
(50/67) Installing py3-wheel-pyc (0.43.0-r0)
(51/67) Installing py3-editables (0.5-r2)
(52/67) Installing py3-editables-pyc (0.5-r2)
(53/67) Installing py3-pathspec (0.12.1-r2)
(54/67) Installing py3-pathspec-pyc (0.12.1-r2)
(55/67) Installing py3-pluggy (1.5.0-r0)
(56/67) Installing py3-pluggy-pyc (1.5.0-r0)
(57/67) Installing py3-trove-classifiers (2025.1.15.22-r0)
(58/67) Installing py3-trove-classifiers-pyc (2025.1.15.22-r0)
(59/67) Installing py3-hatchling (1.27.0-r0)
(60/67) Installing py3-hatchling-pyc (1.27.0-r0)
(61/67) Installing py3-six (1.17.0-r0)
(62/67) Installing py3-six-pyc (1.17.0-r0)
(63/67) Installing py3-dateutil (2.9.0-r1)
(64/67) Installing py3-dateutil-pyc (2.9.0-r1)
(65/67) Installing py3-freezegun (1.5.1-r0)
(66/67) Installing py3-freezegun-pyc (1.5.1-r0)
(67/67) Installing .makedepends-py3-django-otp (20250412.170157)
Executing busybox-1.37.0-r16.trigger
OK: 511 MiB in 185 packages
>>> py3-django-otp: Cleaning up srcdir
>>> py3-django-otp: Cleaning up pkgdir
>>> py3-django-otp: Cleaning up tmpdir
>>> py3-django-otp: Fetching https://distfiles.alpinelinux.org/distfiles/edge/py3-django-otp-1.6.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
curl: (22) The requested URL returned error: 404
>>> py3-django-otp: Fetching py3-django-otp-1.6.0.tar.gz::https://pypi.io/packages/source/d/django-otp/django_otp-1.6.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
100   122  100   122    0     0   1848      0 --:--:-- --:--:-- --:--:--  1876

100   280  100   280    0     0   1385      0 --:--:-- --:--:-- --:--:--  1385

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0

100 73830  100 73830    0     0   157k      0 --:--:-- --:--:-- --:--:--  157k
>>> py3-django-otp: Fetching https://distfiles.alpinelinux.org/distfiles/edge/py3-django-otp-1.6.0.tar.gz
>>> py3-django-otp: Checking sha512sums...
py3-django-otp-1.6.0.tar.gz: OK
>>> py3-django-otp: Unpacking /var/cache/distfiles/edge/py3-django-otp-1.6.0.tar.gz...
2025-04-12 17:01:59,031 gpep517 INFO Building wheel via backend hatchling.build
2025-04-12 17:01:59,149 gpep517 INFO The backend produced .dist/django_otp-1.6.0-py3-none-any.whl
django_otp-1.6.0-py3-none-any.whl
Creating test database for alias 'default' ('file:memorydb_default?mode=memory&cache=shared')...
Found 153 test(s).
Operations to perform:
  Synchronize unmigrated apps: django_otp, messages, staticfiles
  Apply all migrations: admin, auth, contenttypes, otp_email, otp_hotp, otp_static, otp_totp, sessions, test_app
Synchronizing apps without migrations:
  Creating tables...
    Running deferred SQL...
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying admin.0002_logentry_remove_auto_add... OK
  Applying admin.0003_logentry_add_action_flag_choices... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying auth.0007_alter_validators_add_error_messages... OK
  Applying auth.0008_alter_user_username_max_length... OK
  Applying auth.0009_alter_user_last_name_max_length... OK
  Applying auth.0010_alter_group_name_max_length... OK
  Applying auth.0011_update_proxy_permissions... OK
  Applying auth.0012_alter_user_first_name_max_length... OK
  Applying otp_email.0001_initial... OK
  Applying otp_email.0002_sidechanneldevice_email... OK
  Applying otp_email.0003_emaildevice_email... OK
  Applying otp_email.0004_throttling... OK
  Applying otp_email.0005_emaildevice_last_generated_timestamp... OK
  Applying otp_email.0006_add_timestamps... OK
  Applying otp_hotp.0001_initial... OK
  Applying otp_hotp.0002_auto_20190420_0723... OK
  Applying otp_hotp.0003_add_timestamps... OK
  Applying otp_static.0001_initial... OK
  Applying otp_static.0002_throttling... OK
  Applying otp_static.0003_add_timestamps... OK
  Applying otp_totp.0001_initial... OK
  Applying otp_totp.0002_auto_20190420_0723... OK
  Applying otp_totp.0003_add_timestamps... OK
  Applying sessions.0001_initial... OK
  Applying test_app.0001_initial... OK
System check identified no issues (0 silenced).
test_email_interaction (django_otp.plugins.otp_email.tests.AuthFormTest.test_email_interaction) ... ok
test_cooldown_expire_time (django_otp.plugins.otp_email.tests.CooldownTestCase.test_cooldown_expire_time)
When token generation is not allowed, the cooldown expire time ... ok
test_cooldown_imposed_after_successful_generation (django_otp.plugins.otp_email.tests.CooldownTestCase.test_cooldown_imposed_after_successful_generation)
Token generation before cooldown should not be allowed ... ok
test_cooldown_imposed_expiration_message (django_otp.plugins.otp_email.tests.CooldownTestCase.test_cooldown_imposed_expiration_message) ... ok
test_cooldown_imposed_message (django_otp.plugins.otp_email.tests.CooldownTestCase.test_cooldown_imposed_message) ... ok
test_cooldown_reset (django_otp.plugins.otp_email.tests.CooldownTestCase.test_cooldown_reset)
Cooldown can be reset and allow token generation again before the initial period expires. ... ok
test_generate_is_allowed_on_first_try (django_otp.plugins.otp_email.tests.CooldownTestCase.test_generate_is_allowed_on_first_try)
Token generation should be allowed on first try. ... ok
test_invalid_token_verification_does_not_reset_cooldown (django_otp.plugins.otp_email.tests.CooldownTestCase.test_invalid_token_verification_does_not_reset_cooldown)
When the token is not verified, the cooldown period is not reset. ... ok
test_valid_token_verification_resets_cooldown (django_otp.plugins.otp_email.tests.CooldownTestCase.test_valid_token_verification_resets_cooldown)
When the token is verified, the cooldown period is reset. ... ok
test_alternative_email (django_otp.plugins.otp_email.tests.EmailTest.test_alternative_email) ... ok
test_defaults (django_otp.plugins.otp_email.tests.EmailTest.test_defaults) ... ok
test_invalid_token (django_otp.plugins.otp_email.tests.EmailTest.test_invalid_token) ... ok
test_no_reuse (django_otp.plugins.otp_email.tests.EmailTest.test_no_reuse) ... ok
test_settings (django_otp.plugins.otp_email.tests.EmailTest.test_settings) ... ok
test_settings_extra_template_options (django_otp.plugins.otp_email.tests.EmailTest.test_settings_extra_template_options) ... ok
test_settings_html_template (django_otp.plugins.otp_email.tests.EmailTest.test_settings_html_template) ... ok
test_settings_html_template_path (django_otp.plugins.otp_email.tests.EmailTest.test_settings_html_template_path) ... ok
test_settings_template_path (django_otp.plugins.otp_email.tests.EmailTest.test_settings_template_path) ... ok
test_token_expiry (django_otp.plugins.otp_email.tests.EmailTest.test_token_expiry) ... ok
test_token_generator (django_otp.plugins.otp_email.tests.EmailTest.test_token_generator) ... ok
test_delay_after_fail_expires (django_otp.plugins.otp_email.tests.ThrottlingTestCase.test_delay_after_fail_expires) ... ok
test_delay_imposed_after_fail (django_otp.plugins.otp_email.tests.ThrottlingTestCase.test_delay_imposed_after_fail) ... ok
test_throttling_failure_count (django_otp.plugins.otp_email.tests.ThrottlingTestCase.test_throttling_failure_count) ... ok
test_verify_is_allowed (django_otp.plugins.otp_email.tests.ThrottlingTestCase.test_verify_is_allowed) ... ok
test_created_at_set_on_creation (django_otp.plugins.otp_email.tests.TimestampTestCase.test_created_at_set_on_creation)
Verify that the `created_at` field is automatically set upon creation. ... ok
test_last_used_at_initially_none (django_otp.plugins.otp_email.tests.TimestampTestCase.test_last_used_at_initially_none)
Ensure `last_used_at` is None upon initial creation. ... ok
test_set_last_used_timestamp_updates_field (django_otp.plugins.otp_email.tests.TimestampTestCase.test_set_last_used_timestamp_updates_field)
Check if `set_last_used_timestamp` correctly updates the `last_used_at` field. ... ok
test_set_last_used_timestamp_without_commit (django_otp.plugins.otp_email.tests.TimestampTestCase.test_set_last_used_timestamp_without_commit)
Ensure `set_last_used_timestamp` updates `last_used_at` without persisting ... ok
test_verify_token_failed_does_not_update_last_used_at (django_otp.plugins.otp_email.tests.TimestampTestCase.test_verify_token_failed_does_not_update_last_used_at)
Verifying with an invalid token does not update 'last_used_at'. ... ok
test_verify_token_successful_updates_last_used_at (django_otp.plugins.otp_email.tests.TimestampTestCase.test_verify_token_successful_updates_last_used_at)
Verifying with a valid token updates 'last_used_at'. ... ok
test_attempt_after_fail (django_otp.plugins.otp_hotp.tests.AuthFormTest.test_attempt_after_fail) ... ok
test_bad_token (django_otp.plugins.otp_hotp.tests.AuthFormTest.test_bad_token) ... ok
test_good_token (django_otp.plugins.otp_hotp.tests.AuthFormTest.test_good_token) ... ok
test_no_token (django_otp.plugins.otp_hotp.tests.AuthFormTest.test_no_token) ... ok
test_anonymous (django_otp.plugins.otp_hotp.tests.HOTPAdminTest.test_anonymous) ... ok
test_change_perm (django_otp.plugins.otp_hotp.tests.HOTPAdminTest.test_change_perm) ... ok
test_config_view_when_sensitive_information_hidden (django_otp.plugins.otp_hotp.tests.HOTPAdminTest.test_config_view_when_sensitive_information_hidden) ... ok
test_config_view_when_sensitive_information_shown (django_otp.plugins.otp_hotp.tests.HOTPAdminTest.test_config_view_when_sensitive_information_shown) ... ok
test_list_display_when_sensitive_information_hidden (django_otp.plugins.otp_hotp.tests.HOTPAdminTest.test_list_display_when_sensitive_information_hidden) ... ok
test_list_display_when_sensitive_information_shown (django_otp.plugins.otp_hotp.tests.HOTPAdminTest.test_list_display_when_sensitive_information_shown) ... ok
test_qrcode_view_when_sensitive_information_hidden (django_otp.plugins.otp_hotp.tests.HOTPAdminTest.test_qrcode_view_when_sensitive_information_hidden) ... ok
test_qrcode_view_when_sensitive_information_shown (django_otp.plugins.otp_hotp.tests.HOTPAdminTest.test_qrcode_view_when_sensitive_information_shown) ... ok
test_sensitive_information_hidden_while_adding_device (django_otp.plugins.otp_hotp.tests.HOTPAdminTest.test_sensitive_information_hidden_while_adding_device) ... ok
test_sensitive_information_hidden_while_changing_device (django_otp.plugins.otp_hotp.tests.HOTPAdminTest.test_sensitive_information_hidden_while_changing_device) ... ok
test_sensitive_information_shown_while_adding_device (django_otp.plugins.otp_hotp.tests.HOTPAdminTest.test_sensitive_information_shown_while_adding_device) ... ok
test_sensitive_information_shown_while_changing_device (django_otp.plugins.otp_hotp.tests.HOTPAdminTest.test_sensitive_information_shown_while_changing_device) ... ok
test_unauthorized (django_otp.plugins.otp_hotp.tests.HOTPAdminTest.test_unauthorized) ... ok
test_view_perm (django_otp.plugins.otp_hotp.tests.HOTPAdminTest.test_view_perm) ... ok
test_bad_value (django_otp.plugins.otp_hotp.tests.HOTPTest.test_bad_value) ... ok
test_config_url_issuer (django_otp.plugins.otp_hotp.tests.HOTPTest.test_config_url_issuer) ... ok
test_config_url_issuer_method (django_otp.plugins.otp_hotp.tests.HOTPTest.test_config_url_issuer_method) ... ok
test_config_url_issuer_spaces (django_otp.plugins.otp_hotp.tests.HOTPTest.test_config_url_issuer_spaces) ... ok
test_config_url_no_issuer (django_otp.plugins.otp_hotp.tests.HOTPTest.test_config_url_no_issuer) ... ok
test_excessive_drift (django_otp.plugins.otp_hotp.tests.HOTPTest.test_excessive_drift) ... ok
test_normal (django_otp.plugins.otp_hotp.tests.HOTPTest.test_normal) ... ok
test_normal_drift (django_otp.plugins.otp_hotp.tests.HOTPTest.test_normal_drift) ... ok
test_delay_after_fail_expires (django_otp.plugins.otp_hotp.tests.ThrottlingTestCase.test_delay_after_fail_expires) ... ok
test_delay_imposed_after_fail (django_otp.plugins.otp_hotp.tests.ThrottlingTestCase.test_delay_imposed_after_fail) ... ok
test_throttling_failure_count (django_otp.plugins.otp_hotp.tests.ThrottlingTestCase.test_throttling_failure_count) ... ok
test_verify_is_allowed (django_otp.plugins.otp_hotp.tests.ThrottlingTestCase.test_verify_is_allowed) ... ok
test_created_at_set_on_creation (django_otp.plugins.otp_hotp.tests.TimetstampTestCase.test_created_at_set_on_creation)
Verify that the `created_at` field is automatically set upon creation. ... ok
test_last_used_at_initially_none (django_otp.plugins.otp_hotp.tests.TimetstampTestCase.test_last_used_at_initially_none)
Ensure `last_used_at` is None upon initial creation. ... ok
test_set_last_used_timestamp_updates_field (django_otp.plugins.otp_hotp.tests.TimetstampTestCase.test_set_last_used_timestamp_updates_field)
Check if `set_last_used_timestamp` correctly updates the `last_used_at` field. ... ok
test_set_last_used_timestamp_without_commit (django_otp.plugins.otp_hotp.tests.TimetstampTestCase.test_set_last_used_timestamp_without_commit)
Ensure `set_last_used_timestamp` updates `last_used_at` without persisting ... ok
test_verify_token_failed_does_not_update_last_used_at (django_otp.plugins.otp_hotp.tests.TimetstampTestCase.test_verify_token_failed_does_not_update_last_used_at)
Verifying with an invalid token does not update 'last_used_at'. ... ok
test_verify_token_successful_updates_last_used_at (django_otp.plugins.otp_hotp.tests.TimetstampTestCase.test_verify_token_successful_updates_last_used_at)
Verifying with a valid token updates 'last_used_at'. ... ok
test_bad_password (django_otp.plugins.otp_static.tests.AuthFormTest.test_bad_password) ... ok
test_empty (django_otp.plugins.otp_static.tests.AuthFormTest.test_empty) ... ok
test_no_token (django_otp.plugins.otp_static.tests.AuthFormTest.test_no_token) ... ok
test_passive_token (django_otp.plugins.otp_static.tests.AuthFormTest.test_passive_token) ... ok
test_specific_device (django_otp.plugins.otp_static.tests.AuthFormTest.test_specific_device) ... ok
test_specific_device_fail (django_otp.plugins.otp_static.tests.AuthFormTest.test_specific_device_fail) ... ok
test_spoofed_device (django_otp.plugins.otp_static.tests.AuthFormTest.test_spoofed_device) ... ok
test_str (django_otp.plugins.otp_static.tests.DeviceTest.test_str) ... ok
test_str_unpopulated (django_otp.plugins.otp_static.tests.DeviceTest.test_str_unpopulated) ... ok
test_add_static_token (django_otp.plugins.otp_static.tests.LibTest.test_add_static_token) ... ok
test_add_static_token_existing_device (django_otp.plugins.otp_static.tests.LibTest.test_add_static_token_existing_device) ... ok
test_add_static_token_no_user (django_otp.plugins.otp_static.tests.LibTest.test_add_static_token_no_user) ... ok
test_add_static_token_specific (django_otp.plugins.otp_static.tests.LibTest.test_add_static_token_specific) ... ok
test_inline_instances_when_sensitive_information_hidden (django_otp.plugins.otp_static.tests.StaticDeviceAdminTest.test_inline_instances_when_sensitive_information_hidden) ... ok
test_inline_instances_when_sensitive_information_shown (django_otp.plugins.otp_static.tests.StaticDeviceAdminTest.test_inline_instances_when_sensitive_information_shown) ... ok
test_delay_after_fail_expires (django_otp.plugins.otp_static.tests.ThrottlingTestCase.test_delay_after_fail_expires) ... ok
test_delay_imposed_after_fail (django_otp.plugins.otp_static.tests.ThrottlingTestCase.test_delay_imposed_after_fail) ... ok
test_throttling_failure_count (django_otp.plugins.otp_static.tests.ThrottlingTestCase.test_throttling_failure_count) ... ok
test_verify_is_allowed (django_otp.plugins.otp_static.tests.ThrottlingTestCase.test_verify_is_allowed) ... ok
test_created_at_set_on_creation (django_otp.plugins.otp_static.tests.TimestampTestCase.test_created_at_set_on_creation)
Verify that the `created_at` field is automatically set upon creation. ... ok
test_last_used_at_initially_none (django_otp.plugins.otp_static.tests.TimestampTestCase.test_last_used_at_initially_none)
Ensure `last_used_at` is None upon initial creation. ... ok
test_set_last_used_timestamp_updates_field (django_otp.plugins.otp_static.tests.TimestampTestCase.test_set_last_used_timestamp_updates_field)
Check if `set_last_used_timestamp` correctly updates the `last_used_at` field. ... ok
test_set_last_used_timestamp_without_commit (django_otp.plugins.otp_static.tests.TimestampTestCase.test_set_last_used_timestamp_without_commit)
Ensure `set_last_used_timestamp` updates `last_used_at` without persisting ... ok
test_verify_token_failed_does_not_update_last_used_at (django_otp.plugins.otp_static.tests.TimestampTestCase.test_verify_token_failed_does_not_update_last_used_at)
Verifying with an invalid token does not update 'last_used_at'. ... ok
test_verify_token_successful_updates_last_used_at (django_otp.plugins.otp_static.tests.TimestampTestCase.test_verify_token_successful_updates_last_used_at)
Verifying with a valid token updates 'last_used_at'. ... ok
test_anonymous (django_otp.plugins.otp_totp.tests.TOTPAdminTest.test_anonymous) ... ok
test_change_perm (django_otp.plugins.otp_totp.tests.TOTPAdminTest.test_change_perm) ... ok
test_config_view_when_sensitive_information_hidden (django_otp.plugins.otp_totp.tests.TOTPAdminTest.test_config_view_when_sensitive_information_hidden) ... ok
test_config_view_when_sensitive_information_shown (django_otp.plugins.otp_totp.tests.TOTPAdminTest.test_config_view_when_sensitive_information_shown) ... ok
test_list_display_when_sensitive_information_hidden (django_otp.plugins.otp_totp.tests.TOTPAdminTest.test_list_display_when_sensitive_information_hidden) ... ok
test_list_display_when_sensitive_information_shown (django_otp.plugins.otp_totp.tests.TOTPAdminTest.test_list_display_when_sensitive_information_shown) ... ok
test_qrcode_view_when_sensitive_information_hidden (django_otp.plugins.otp_totp.tests.TOTPAdminTest.test_qrcode_view_when_sensitive_information_hidden) ... ok
test_qrcode_view_when_sensitive_information_shown (django_otp.plugins.otp_totp.tests.TOTPAdminTest.test_qrcode_view_when_sensitive_information_shown) ... ok
test_sensitive_information_hidden_while_adding_device (django_otp.plugins.otp_totp.tests.TOTPAdminTest.test_sensitive_information_hidden_while_adding_device) ... ok
test_sensitive_information_hidden_while_changing_device (django_otp.plugins.otp_totp.tests.TOTPAdminTest.test_sensitive_information_hidden_while_changing_device) ... ok
test_sensitive_information_shown_while_adding_device (django_otp.plugins.otp_totp.tests.TOTPAdminTest.test_sensitive_information_shown_while_adding_device) ... ok
test_sensitive_information_shown_while_changing_device (django_otp.plugins.otp_totp.tests.TOTPAdminTest.test_sensitive_information_shown_while_changing_device) ... ok
test_unauthorized (django_otp.plugins.otp_totp.tests.TOTPAdminTest.test_unauthorized) ... ok
test_view_perm (django_otp.plugins.otp_totp.tests.TOTPAdminTest.test_view_perm) ... ok
test_config_url (django_otp.plugins.otp_totp.tests.TOTPTest.test_config_url) ... ok
test_config_url_image (django_otp.plugins.otp_totp.tests.TOTPTest.test_config_url_image) ... ok
test_config_url_issuer (django_otp.plugins.otp_totp.tests.TOTPTest.test_config_url_issuer) ... ok
test_config_url_issuer_method (django_otp.plugins.otp_totp.tests.TOTPTest.test_config_url_issuer_method) ... ok
test_config_url_issuer_spaces (django_otp.plugins.otp_totp.tests.TOTPTest.test_config_url_issuer_spaces) ... ok
test_default_key (django_otp.plugins.otp_totp.tests.TOTPTest.test_default_key) ... ok
test_drift (django_otp.plugins.otp_totp.tests.TOTPTest.test_drift) ... ok
test_no_reuse (django_otp.plugins.otp_totp.tests.TOTPTest.test_no_reuse) ... ok
test_single (django_otp.plugins.otp_totp.tests.TOTPTest.test_single) ... ok
test_sync_drift (django_otp.plugins.otp_totp.tests.TOTPTest.test_sync_drift) ... ok
test_tolerance (django_otp.plugins.otp_totp.tests.TOTPTest.test_tolerance) ... ok
test_delay_after_fail_expires (django_otp.plugins.otp_totp.tests.ThrottlingTestCase.test_delay_after_fail_expires) ... ok
test_delay_imposed_after_fail (django_otp.plugins.otp_totp.tests.ThrottlingTestCase.test_delay_imposed_after_fail) ... ok
test_throttling_failure_count (django_otp.plugins.otp_totp.tests.ThrottlingTestCase.test_throttling_failure_count) ... ok
test_verify_is_allowed (django_otp.plugins.otp_totp.tests.ThrottlingTestCase.test_verify_is_allowed) ... ok
test_created_at_set_on_creation (django_otp.plugins.otp_totp.tests.TimetstampTestCase.test_created_at_set_on_creation)
Verify that the `created_at` field is automatically set upon creation. ... ok
test_last_used_at_initially_none (django_otp.plugins.otp_totp.tests.TimetstampTestCase.test_last_used_at_initially_none)
Ensure `last_used_at` is None upon initial creation. ... ok
test_set_last_used_timestamp_updates_field (django_otp.plugins.otp_totp.tests.TimetstampTestCase.test_set_last_used_timestamp_updates_field)
Check if `set_last_used_timestamp` correctly updates the `last_used_at` field. ... ok
test_set_last_used_timestamp_without_commit (django_otp.plugins.otp_totp.tests.TimetstampTestCase.test_set_last_used_timestamp_without_commit)
Ensure `set_last_used_timestamp` updates `last_used_at` without persisting ... ok
test_verify_token_failed_does_not_update_last_used_at (django_otp.plugins.otp_totp.tests.TimetstampTestCase.test_verify_token_failed_does_not_update_last_used_at)
Verifying with an invalid token does not update 'last_used_at'. ... ok
test_verify_token_successful_updates_last_used_at (django_otp.plugins.otp_totp.tests.TimetstampTestCase.test_verify_token_successful_updates_last_used_at)
Verifying with a valid token updates 'last_used_at'. ... ok
test_device_classes (django_otp.tests.APITestCase.test_device_classes) ... ok
test_match_token (django_otp.tests.APITestCase.test_match_token) ... ok
test_user_has_device (django_otp.tests.APITestCase.test_user_has_device) ... ok
test_verify_token (django_otp.tests.APITestCase.test_verify_token) ... ok
test_existing_device (django_otp.tests.AddStaticTokenTestCase.test_existing_device) ... ok
test_explicit_token (django_otp.tests.AddStaticTokenTestCase.test_explicit_token) ... ok
test_new_device (django_otp.tests.AddStaticTokenTestCase.test_new_device) ... ok
test_no_user (django_otp.tests.AddStaticTokenTestCase.test_no_user) ... ok
test_admin_login_template (django_otp.tests.LoginViewTestCase.test_admin_login_template) ... ok
test_authenticate (django_otp.tests.LoginViewTestCase.test_authenticate) ... ok
test_verify (django_otp.tests.LoginViewTestCase.test_verify) ... ok
test_no_device (django_otp.tests.OTPMiddlewareTestCase.test_no_device) ... ok
test_no_model (django_otp.tests.OTPMiddlewareTestCase.test_no_model) ... ok
test_pickling (django_otp.tests.OTPMiddlewareTestCase.test_pickling) ... ok
test_unverified (django_otp.tests.OTPMiddlewareTestCase.test_unverified) ... ok
test_verified (django_otp.tests.OTPMiddlewareTestCase.test_verified) ... ok
test_verified_legacy_device_id (django_otp.tests.OTPMiddlewareTestCase.test_verified_legacy_device_id) ... ok
test_wrong_user (django_otp.tests.OTPMiddlewareTestCase.test_wrong_user) ... ok
test_otp_verification_failed_signal (django_otp.tests.OTPVerificationFailedSignalTestCase.test_otp_verification_failed_signal) ... ok
test_concurrent_throttle_count (django_otp.tests.ConcurrencyTestCase.test_concurrent_throttle_count) ... skipped "Database doesn't support feature(s): has_select_for_update"
test_match_token (django_otp.tests.ConcurrencyTestCase.test_match_token) ... skipped "Database doesn't support feature(s): has_select_for_update"
test_serialized_throttling (django_otp.tests.ConcurrencyTestCase.test_serialized_throttling) ... skipped "Database doesn't support feature(s): has_select_for_update"
test_verify_token (django_otp.tests.ConcurrencyTestCase.test_verify_token) ... skipped "Database doesn't support feature(s): has_select_for_update"
hex_validator (django_otp.util)
Doctest: django_otp.util.hex_validator ... ok
TOTP (django_otp.oath)
Doctest: django_otp.oath.TOTP ... ok
hotp (django_otp.oath)
Doctest: django_otp.oath.hotp ... ok
totp (django_otp.oath)
Doctest: django_otp.oath.totp ... ok

----------------------------------------------------------------------
Ran 153 tests in 83.533s

OK (skipped=4)
Destroying test database for alias 'default' ('file:memorydb_default?mode=memory&cache=shared')...
>>> py3-django-otp: Entering fakeroot...
>>> py3-django-otp-pyc*: Running split function pyc...
'usr/lib/python3.12/site-packages/django_otp/__pycache__' -> '/home/buildozer/aports/community/py3-django-otp/pkg/py3-django-otp-pyc/usr/lib/python3.12/site-packages/django_otp/__pycache__'
'usr/lib/python3.12/site-packages/django_otp/plugins/__pycache__' -> '/home/buildozer/aports/community/py3-django-otp/pkg/py3-django-otp-pyc/usr/lib/python3.12/site-packages/django_otp/plugins/__pycache__'
'usr/lib/python3.12/site-packages/django_otp/plugins/otp_static/__pycache__' -> '/home/buildozer/aports/community/py3-django-otp/pkg/py3-django-otp-pyc/usr/lib/python3.12/site-packages/django_otp/plugins/otp_static/__pycache__'
'usr/lib/python3.12/site-packages/django_otp/plugins/otp_static/migrations/__pycache__' -> '/home/buildozer/aports/community/py3-django-otp/pkg/py3-django-otp-pyc/usr/lib/python3.12/site-packages/django_otp/plugins/otp_static/migrations/__pycache__'
'usr/lib/python3.12/site-packages/django_otp/plugins/otp_static/management/commands/__pycache__' -> '/home/buildozer/aports/community/py3-django-otp/pkg/py3-django-otp-pyc/usr/lib/python3.12/site-packages/django_otp/plugins/otp_static/management/commands/__pycache__'
'usr/lib/python3.12/site-packages/django_otp/plugins/otp_static/management/__pycache__' -> '/home/buildozer/aports/community/py3-django-otp/pkg/py3-django-otp-pyc/usr/lib/python3.12/site-packages/django_otp/plugins/otp_static/management/__pycache__'
'usr/lib/python3.12/site-packages/django_otp/plugins/otp_totp/__pycache__' -> '/home/buildozer/aports/community/py3-django-otp/pkg/py3-django-otp-pyc/usr/lib/python3.12/site-packages/django_otp/plugins/otp_totp/__pycache__'
'usr/lib/python3.12/site-packages/django_otp/plugins/otp_totp/migrations/__pycache__' -> '/home/buildozer/aports/community/py3-django-otp/pkg/py3-django-otp-pyc/usr/lib/python3.12/site-packages/django_otp/plugins/otp_totp/migrations/__pycache__'
'usr/lib/python3.12/site-packages/django_otp/plugins/otp_email/__pycache__' -> '/home/buildozer/aports/community/py3-django-otp/pkg/py3-django-otp-pyc/usr/lib/python3.12/site-packages/django_otp/plugins/otp_email/__pycache__'
'usr/lib/python3.12/site-packages/django_otp/plugins/otp_email/migrations/__pycache__' -> '/home/buildozer/aports/community/py3-django-otp/pkg/py3-django-otp-pyc/usr/lib/python3.12/site-packages/django_otp/plugins/otp_email/migrations/__pycache__'
'usr/lib/python3.12/site-packages/django_otp/plugins/otp_hotp/__pycache__' -> '/home/buildozer/aports/community/py3-django-otp/pkg/py3-django-otp-pyc/usr/lib/python3.12/site-packages/django_otp/plugins/otp_hotp/__pycache__'
'usr/lib/python3.12/site-packages/django_otp/plugins/otp_hotp/migrations/__pycache__' -> '/home/buildozer/aports/community/py3-django-otp/pkg/py3-django-otp-pyc/usr/lib/python3.12/site-packages/django_otp/plugins/otp_hotp/migrations/__pycache__'
>>> py3-django-otp-pyc*: Preparing subpackage py3-django-otp-pyc...
>>> py3-django-otp-pyc*: Running postcheck for py3-django-otp-pyc
>>> py3-django-otp*: Running postcheck for py3-django-otp
>>> py3-django-otp*: Preparing package py3-django-otp...
>>> py3-django-otp-pyc*: Tracing dependencies...
	py3-django
	py3-qrcode
	python3~3.12
>>> py3-django-otp-pyc*: Package size: 255.1 KB
>>> py3-django-otp-pyc*: Compressing data...
>>> py3-django-otp-pyc*: Create checksum...
>>> py3-django-otp-pyc*: Create py3-django-otp-pyc-1.6.0-r0.apk
>>> py3-django-otp*: Tracing dependencies...
	py3-django
	py3-qrcode
	python3~3.12
>>> py3-django-otp*: Package size: 218.9 KB
>>> py3-django-otp*: Compressing data...
>>> py3-django-otp*: Create checksum...
>>> py3-django-otp*: Create py3-django-otp-1.6.0-r0.apk
>>> py3-django-otp: Build complete at Sat, 12 Apr 2025 17:03:24 +0000 elapsed time 0h 1m 28s
>>> py3-django-otp: Cleaning up srcdir
>>> py3-django-otp: Cleaning up pkgdir
>>> py3-django-otp: Uninstalling dependencies...
(1/67) Purging .makedepends-py3-django-otp (20250412.170157)
(2/67) Purging py3-django-pyc (4.2.16-r0)
(3/67) Purging py3-django (4.2.16-r0)
(4/67) Purging py3-asgiref-pyc (3.8.1-r1)
(5/67) Purging py3-asgiref (3.8.1-r1)
(6/67) Purging py3-sqlparse-pyc (0.5.1-r0)
(7/67) Purging py3-sqlparse (0.5.1-r0)
(8/67) Purging tzdata (2025b-r0)
(9/67) Purging py3-qrcode-pyc (8.1-r0)
(10/67) Purging py3-qrcode (8.1-r0)
(11/67) Purging py3-pillow-pyc (11.1.0-r0)
(12/67) Purging py3-pillow (11.1.0-r0)
(13/67) Purging py3-pypng-pyc (0.20231004.0-r0)
(14/67) Purging py3-pypng (0.20231004.0-r0)
(15/67) Purging py3-gpep517-pyc (16-r0)
(16/67) Purging py3-gpep517 (16-r0)
(17/67) Purging py3-installer-pyc (0.7.0-r2)
(18/67) Purging py3-installer (0.7.0-r2)
(19/67) Purging py3-setuptools-pyc (77.0.3-r0)
(20/67) Purging py3-setuptools (77.0.3-r0)
(21/67) Purging py3-wheel-pyc (0.43.0-r0)
(22/67) Purging py3-wheel (0.43.0-r0)
(23/67) Purging py3-hatchling-pyc (1.27.0-r0)
(24/67) Purging py3-hatchling (1.27.0-r0)
(25/67) Purging py3-editables-pyc (0.5-r2)
(26/67) Purging py3-editables (0.5-r2)
(27/67) Purging py3-packaging-pyc (24.2-r0)
(28/67) Purging py3-packaging (24.2-r0)
(29/67) Purging py3-parsing-pyc (3.2.0-r0)
(30/67) Purging py3-parsing (3.2.0-r0)
(31/67) Purging py3-pathspec-pyc (0.12.1-r2)
(32/67) Purging py3-pathspec (0.12.1-r2)
(33/67) Purging py3-pluggy-pyc (1.5.0-r0)
(34/67) Purging py3-pluggy (1.5.0-r0)
(35/67) Purging py3-trove-classifiers-pyc (2025.1.15.22-r0)
(36/67) Purging py3-trove-classifiers (2025.1.15.22-r0)
(37/67) Purging py3-freezegun-pyc (1.5.1-r0)
(38/67) Purging py3-freezegun (1.5.1-r0)
(39/67) Purging py3-dateutil-pyc (2.9.0-r1)
(40/67) Purging py3-dateutil (2.9.0-r1)
(41/67) Purging py3-six-pyc (1.17.0-r0)
(42/67) Purging py3-six (1.17.0-r0)
(43/67) Purging python3-pyc (3.12.10-r0)
(44/67) Purging python3-pycache-pyc0 (3.12.10-r0)
(45/67) Purging pyc (3.12.10-r0)
(46/67) Purging python3 (3.12.10-r0)
(47/67) Purging freetype (2.13.3-r0)
(48/67) Purging gdbm (1.24-r0)
(49/67) Purging lcms2 (2.16-r0)
(50/67) Purging libffi (3.4.7-r0)
(51/67) Purging libimagequant (4.2.2-r0)
(52/67) Purging libpanelw (6.5_p20250216-r0)
(53/67) Purging libpng (1.6.47-r0)
(54/67) Purging libwebpdemux (1.5.0-r0)
(55/67) Purging libwebpmux (1.5.0-r0)
(56/67) Purging libxcb (1.17.0-r0)
(57/67) Purging libxdmcp (1.1.5-r1)
(58/67) Purging mpdecimal (4.0.0-r0)
(59/67) Purging openjpeg (2.5.3-r0)
(60/67) Purging sqlite-libs (3.49.1-r0)
(61/67) Purging tiff (4.7.0-r0)
(62/67) Purging libbsd (0.12.2-r0)
(63/67) Purging libjpeg-turbo (3.1.0-r0)
(64/67) Purging libmd (1.1.0-r0)
(65/67) Purging libwebp (1.5.0-r0)
(66/67) Purging libsharpyuv (1.5.0-r0)
(67/67) Purging libxau (1.0.12-r0)
Executing busybox-1.37.0-r16.trigger
OK: 405 MiB in 118 packages
>>> py3-django-otp: Updating the community/x86 repository index...
>>> py3-django-otp: Signing the index...