[0KRunning with gitlab-runner 17.8.1 (a1fca00e)[0;m [0K on aleksis-runner xgKXqwzc, system ID: s_84022eff7be2[0;m [0K feature flags: FF_NETWORK_PER_BUILD:true[0;m section_start:1739658127:prepare_executor [0K[0K[36;1mPreparing the "docker" executor[0;m[0;m [0KUsing Docker executor with image registry.edugit.org/teckids/team-sysadmin/docker-images/python-pimped:master@sha256:d4915ee0fa82b287a9cce6f72aec54e3571a05e46f48aa3c0eff6299eef9d150 ...[0;m [0KAuthenticating with credentials from job payload (GitLab Registry)[0;m [0KPulling docker image registry.edugit.org/teckids/team-sysadmin/docker-images/python-pimped:master@sha256:d4915ee0fa82b287a9cce6f72aec54e3571a05e46f48aa3c0eff6299eef9d150 ...[0;m [0KUsing docker image sha256:fc38ba929b3c211229df36e3599b4f8b201a6827eff98177e20f723c0658f128 for registry.edugit.org/teckids/team-sysadmin/docker-images/python-pimped:master@sha256:d4915ee0fa82b287a9cce6f72aec54e3571a05e46f48aa3c0eff6299eef9d150 with digest registry.edugit.org/teckids/team-sysadmin/docker-images/python-pimped@sha256:d4915ee0fa82b287a9cce6f72aec54e3571a05e46f48aa3c0eff6299eef9d150 ...[0;m section_end:1739658134:prepare_executor [0Ksection_start:1739658134:prepare_script [0K[0K[36;1mPreparing environment[0;m[0;m Running on runner-xgkxqwzc-project-2918-concurrent-2 via aleksis-runner... section_end:1739658137:prepare_script [0Ksection_start:1739658137:get_sources [0K[0K[36;1mGetting source from Git repository[0;m[0;m [32;1mFetching changes with git depth set to 20...[0;m Reinitialized existing Git repository in /builds/AlekSIS/onboarding/AlekSIS-App-Kolego/.git/ [32;1mChecking out ad9635b3 as detached HEAD (ref is check/update-pyproject-toml)...[0;m Removing .tox/ Removing poetry.lock [32;1mUpdating/initializing submodules recursively with git depth set to 20...[0;m [32;1mUpdated submodules[0;m section_end:1739658150:get_sources [0Ksection_start:1739658150:restore_cache [0K[0K[36;1mRestoring cache[0;m[0;m [32;1mChecking cache for 0_poetry_pyproject-24db70fdc3c74437b697b29647acec8731aa0929-non_protected...[0;m No URL provided, cache will not be downloaded from shared cache server. Instead a local version of cache will be extracted.[0;m [0;33mWARNING: Cache file does not exist [0;m [0;33mFailed to extract cache[0;m section_end:1739658153:restore_cache [0Ksection_start:1739658153:download_artifacts [0K[0K[36;1mDownloading artifacts[0;m[0;m [32;1mDownloading artifacts for lock (324336)...[0;m Downloading artifacts from coordinator... ok [0;m host[0;m=edugit.org id[0;m=324336 responseStatus[0;m=200 OK token[0;m=glcbt-64 section_end:1739658159:download_artifacts [0Ksection_start:1739658159:step_script [0K[0K[36;1mExecuting "step_script" stage of the job script[0;m[0;m [0KUsing docker image sha256:fc38ba929b3c211229df36e3599b4f8b201a6827eff98177e20f723c0658f128 for registry.edugit.org/teckids/team-sysadmin/docker-images/python-pimped:master@sha256:d4915ee0fa82b287a9cce6f72aec54e3571a05e46f48aa3c0eff6299eef9d150 with digest registry.edugit.org/teckids/team-sysadmin/docker-images/python-pimped@sha256:d4915ee0fa82b287a9cce6f72aec54e3571a05e46f48aa3c0eff6299eef9d150 ...[0;m [32;1m$ id testuser || adduser --disabled-password --gecos "Test User" testuser[0;m id: ‘testuser’: no such user info: Adding user `testuser' ... info: Selecting UID/GID from range 1000 to 59999 ... info: Adding new group `testuser' (1000) ... info: Adding new user `testuser' (1000) with group `testuser (1000)' ... info: Creating home directory `/home/testuser' ... info: Copying files from `/etc/skel' ... info: Adding new user `testuser' to supplemental / extra groups `users' ... info: Adding user `testuser' to group `users' ... [32;1m$ chown -R testuser .[0;m [32;1m$ sudo -u testuser tox -e lint[0;m lint: commands_pre[0]> poetry install --only=dev Installing dependencies from lock file Package operations: 21 installs, 0 updates, 0 removals - Installing asgiref (3.8.1) - Installing pyparsing (3.2.1) - Installing sqlparse (0.5.3) - Installing charset-normalizer (3.4.1) - Installing idna (3.10) - Installing django (5.1.6) - Installing certifi (2025.1.31) - Installing packaging (21.3) - Installing typing-extensions (4.12.2) - Installing urllib3 (2.3.0) - Installing click (8.1.8) - Installing django-stubs-ext (5.1.3) - Installing dparse (0.6.4) - Installing requests (2.32.3) - Installing ruamel-yaml (0.18.10) - Installing setuptools (75.8.0) - Installing types-pyyaml (6.0.12.20241230) - Installing types-pytz (2025.1.0.20250204) - Installing ruff (0.8.6) - Installing safety (2.3.5) - Installing django-stubs (4.2.7) Installing the current project: AlekSIS-App-Kolego (0.1.0.dev4) lint: commands_pre[1]> yarnpkg --cwd=.dev-js ➤ YN0000: · Yarn 4.0.2 ➤ YN0000: ┌ Resolution step ➤ YN0085: │ + @intlify/eslint-plugin-vue-i18n@npm:2.0.0, eslint-config-prettier@npm:9.1.0, eslint-plugin-vue@npm:9.32.0, eslint@npm:8.57.1, prettier@npm:3.5.1, and 233 more. ➤ YN0000: └ Completed in 9s 266ms ➤ YN0000: ┌ Post-resolution validation ➤ YN0060: │ stylelint is listed by your project with version 15.11.0, which doesn't satisfy what stylelint-config-prettier (p6dc19) requests (>=11.0.0 <15.0.0-0). ➤ YN0086: │ Some peer dependencies are incorrectly met; run yarn explain peer-requirements <hash> for details, where <hash> is the six-letter p-prefixed code. ➤ YN0000: └ Completed ➤ YN0000: ┌ Fetch step ➤ YN0013: │ 238 packages were added to the project (+ 34.08 MiB). ➤ YN0000: └ Completed in 17s 183ms ➤ YN0000: ┌ Link step ➤ YN0000: │ ESM support for PnP uses the experimental loader API and is therefore experimental ➤ YN0000: └ Completed in 1s 401ms ➤ YN0000: · Done with warnings in 28s 305ms lint: commands[0]> poetry run ruff check aleksis/ aleksis/apps/kolego/managers.py:1:1: I001 [*] Import block is un-sorted or un-formatted | 1 | / from aleksis.core.managers import DateRangeQuerySetMixin, CalendarEventQuerySet 2 | | from aleksis.core.models import Person 3 | | 4 | | 5 | | class AbsenceQuerySet(DateRangeQuerySetMixin, CalendarEventQuerySet): | |_^ I001 6 | """QuerySet with custom query methods for absences.""" | = help: Organize imports aleksis/apps/kolego/schema/absence.py:1:1: UP035 [*] Import from `collections.abc` instead: `Iterable` | 1 | from typing import Iterable, Union | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ UP035 2 | 3 | from graphene_django.types import DjangoObjectType | = help: Import from `collections.abc` aleksis/apps/kolego/tests/models/test_absence.py:1:1: I001 [*] Import block is un-sorted or un-formatted | 1 | / from datetime import datetime, timezone 2 | | 3 | | import pytest 4 | | from aleksis.apps.kolego.models import Absence, AbsenceReason 5 | | from aleksis.core.models import Person 6 | | 7 | | from zoneinfo import ZoneInfo 8 | | 9 | | pytestmark = pytest.mark.django_db | |_^ I001 | = help: Organize imports aleksis/apps/kolego/tests/models/test_absence.py:14:101: E501 Line too long (118 > 100) | 12 | @pytest.fixture 13 | def absences_test_data(): 14 | datetime_start_existing_1 = datetime(2024, 1, 1, 12, 0, tzinfo=timezone.utc).astimezone(ZoneInfo("Europe/Berlin")) | ^^^^^^^^^^^^^^^^^^ E501 15 | datetime_end_existing_1 = datetime(2024, 1, 2, 10, 0, tzinfo=timezone.utc).astimezone(ZoneInfo("Europe/Berlin")) 16 | datetime_start_existing_2 = datetime(2024, 1, 2, 12, 0, tzinfo=timezone.utc).astimezone(ZoneInfo("Europe/Berlin")) | aleksis/apps/kolego/tests/models/test_absence.py:15:101: E501 Line too long (116 > 100) | 13 | def absences_test_data(): 14 | datetime_start_existing_1 = datetime(2024, 1, 1, 12, 0, tzinfo=timezone.utc).astimezone(ZoneInfo("Europe/Berlin")) 15 | datetime_end_existing_1 = datetime(2024, 1, 2, 10, 0, tzinfo=timezone.utc).astimezone(ZoneInfo("Europe/Berlin")) | ^^^^^^^^^^^^^^^^ E501 16 | datetime_start_existing_2 = datetime(2024, 1, 2, 12, 0, tzinfo=timezone.utc).astimezone(ZoneInfo("Europe/Berlin")) 17 | datetime_end_existing_2 = datetime(2024, 1, 3, 19, 43, tzinfo=timezone.utc).astimezone(ZoneInfo("Europe/Berlin")) | aleksis/apps/kolego/tests/models/test_absence.py:16:101: E501 Line too long (118 > 100) | 14 | datetime_start_existing_1 = datetime(2024, 1, 1, 12, 0, tzinfo=timezone.utc).astimezone(ZoneInfo("Europe/Berlin")) 15 | datetime_end_existing_1 = datetime(2024, 1, 2, 10, 0, tzinfo=timezone.utc).astimezone(ZoneInfo("Europe/Berlin")) 16 | datetime_start_existing_2 = datetime(2024, 1, 2, 12, 0, tzinfo=timezone.utc).astimezone(ZoneInfo("Europe/Berlin")) | ^^^^^^^^^^^^^^^^^^ E501 17 | datetime_end_existing_2 = datetime(2024, 1, 3, 19, 43, tzinfo=timezone.utc).astimezone(ZoneInfo("Europe/Berlin")) | aleksis/apps/kolego/tests/models/test_absence.py:17:101: E501 Line too long (117 > 100) | 15 | datetime_end_existing_1 = datetime(2024, 1, 2, 10, 0, tzinfo=timezone.utc).astimezone(ZoneInfo("Europe/Berlin")) 16 | datetime_start_existing_2 = datetime(2024, 1, 2, 12, 0, tzinfo=timezone.utc).astimezone(ZoneInfo("Europe/Berlin")) 17 | datetime_end_existing_2 = datetime(2024, 1, 3, 19, 43, tzinfo=timezone.utc).astimezone(ZoneInfo("Europe/Berlin")) | ^^^^^^^^^^^^^^^^^ E501 18 | 19 | reason_1 = AbsenceReason.objects.create(short_name="i", name="ill") | aleksis/apps/kolego/tests/models/test_absence.py:30:101: E501 Line too long (161 > 100) | 29 | # Create existing absencess 30 | existing_absence_1 = Absence.objects.create(datetime_start=datetime_start_existing_1, datetime_end=datetime_end_existing_1, person=person_1, reason=reason_1) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E501 31 | existing_absence_2 = Absence.objects.create(datetime_start=datetime_start_existing_2, datetime_end=datetime_end_existing_2, person=person_1, reason=reason_1) 32 | existing_absence_1.refresh_from_db() | aleksis/apps/kolego/tests/models/test_absence.py:31:101: E501 Line too long (161 > 100) | 29 | # Create existing absencess 30 | existing_absence_1 = Absence.objects.create(datetime_start=datetime_start_existing_1, datetime_end=datetime_end_existing_1, person=person_1, reason=reason_1) 31 | existing_absence_2 = Absence.objects.create(datetime_start=datetime_start_existing_2, datetime_end=datetime_end_existing_2, person=person_1, reason=reason_1) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E501 32 | existing_absence_1.refresh_from_db() 33 | existing_absence_2.refresh_from_db() | aleksis/apps/kolego/tests/models/test_absence.py:49:101: E501 Line too long (118 > 100) | 49 | # Create new absences in six scenarios in relation to existing absence 1 with same person and different absence reason | ^^^^^^^^^^^^^^^^^^ E501 50 | 51 | # 1: new absence is fully inside exiting absence | aleksis/apps/kolego/tests/models/test_absence.py:53:101: E501 Line too long (111 > 100) | 51 | # 1: new absence is fully inside exiting absence 52 | def test_overlapping_single_absence_different_reason_inside(absences_test_data): 53 | datetime_start_new = datetime(2024, 1, 1, 14, 0, tzinfo=timezone.utc).astimezone(ZoneInfo("Europe/Berlin")) | ^^^^^^^^^^^ E501 54 | datetime_end_new = datetime(2024, 1, 2, 8, 0, tzinfo=timezone.utc).astimezone(ZoneInfo("Europe/Berlin")) 55 | new_absence = Absence.objects.create(datetime_start=datetime_start_new, datetime_end=datetime_end_new, person=absences_test_data["person_1"], reason=absences_test_data["reason_2"]) | aleksis/apps/kolego/tests/models/test_absence.py:54:101: E501 Line too long (108 > 100) | 52 | def test_overlapping_single_absence_different_reason_inside(absences_test_data): 53 | datetime_start_new = datetime(2024, 1, 1, 14, 0, tzinfo=timezone.utc).astimezone(ZoneInfo("Europe/Berlin")) 54 | datetime_end_new = datetime(2024, 1, 2, 8, 0, tzinfo=timezone.utc).astimezone(ZoneInfo("Europe/Berlin")) | ^^^^^^^^ E501 55 | new_absence = Absence.objects.create(datetime_start=datetime_start_new, datetime_end=datetime_end_new, person=absences_test_data["person_1"], reason=absences_test_data["reason_2"]) 56 | new_absence.refresh_from_db() | aleksis/apps/kolego/tests/models/test_absence.py:55:101: E501 Line too long (184 > 100) | 53 | datetime_start_new = datetime(2024, 1, 1, 14, 0, tzinfo=timezone.utc).astimezone(ZoneInfo("Europe/Berlin")) 54 | datetime_end_new = datetime(2024, 1, 2, 8, 0, tzinfo=timezone.utc).astimezone(ZoneInfo("Europe/Berlin")) 55 | new_absence = Absence.objects.create(datetime_start=datetime_start_new, datetime_end=datetime_end_new, person=absences_test_data["person_1"], reason=absences_test_data["reason_2"]) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E501 56 | new_absence.refresh_from_db() | aleksis/apps/kolego/tests/models/test_absence.py:60:101: E501 Line too long (118 > 100) | 58 | absences_test_data["existing_absence_1"].refresh_from_db() 59 | 60 | assert absences_test_data["existing_absence_1"].datetime_start == datetime(2024, 1, 1, 12, 0, tzinfo=timezone.utc) | ^^^^^^^^^^^^^^^^^^ E501 61 | assert absences_test_data["existing_absence_1"].datetime_end == datetime(2024, 1, 1, 14, 0, tzinfo=timezone.utc) | aleksis/apps/kolego/tests/models/test_absence.py:61:101: E501 Line too long (116 > 100) | 60 | assert absences_test_data["existing_absence_1"].datetime_start == datetime(2024, 1, 1, 12, 0, tzinfo=timezone.utc) 61 | assert absences_test_data["existing_absence_1"].datetime_end == datetime(2024, 1, 1, 14, 0, tzinfo=timezone.utc) | ^^^^^^^^^^^^^^^^ E501 62 | 63 | assert new_absence.datetime_start == datetime(2024, 1, 1, 14, 0, tzinfo=timezone.utc) | aleksis/apps/kolego/tests/models/test_absence.py:67:101: E501 Line too long (106 > 100) | 66 | assert len(Absence.objects.all()) == 4 67 | assert Absence.objects.filter(datetime_start=datetime(2024, 1, 2, 8, 0, tzinfo=timezone.utc)).exists() | ^^^^^^ E501 68 | 69 | existing_absence_1_part_2 = Absence.objects.get(datetime_start=datetime(2024, 1, 2, 8, 0, tzinfo=timezone.utc)) | aleksis/apps/kolego/tests/models/test_absence.py:69:101: E501 Line too long (115 > 100) | 67 | assert Absence.objects.filter(datetime_start=datetime(2024, 1, 2, 8, 0, tzinfo=timezone.utc)).exists() 68 | 69 | existing_absence_1_part_2 = Absence.objects.get(datetime_start=datetime(2024, 1, 2, 8, 0, tzinfo=timezone.utc)) | ^^^^^^^^^^^^^^^ E501 70 | 71 | assert existing_absence_1_part_2.datetime_start == datetime(2024, 1, 2, 8, 0, tzinfo=timezone.utc) | aleksis/apps/kolego/tests/models/test_absence.py:71:101: E501 Line too long (102 > 100) | 69 | existing_absence_1_part_2 = Absence.objects.get(datetime_start=datetime(2024, 1, 2, 8, 0, tzinfo=timezone.utc)) 70 | 71 | assert existing_absence_1_part_2.datetime_start == datetime(2024, 1, 2, 8, 0, tzinfo=timezone.utc) | ^^ E501 72 | assert existing_absence_1_part_2.datetime_end == datetime(2024, 1, 2, 10, 0, tzinfo=timezone.utc) | aleksis/apps/kolego/tests/models/test_absence.py:72:101: E501 Line too long (101 > 100) | 71 | assert existing_absence_1_part_2.datetime_start == datetime(2024, 1, 2, 8, 0, tzinfo=timezone.utc) 72 | assert existing_absence_1_part_2.datetime_end == datetime(2024, 1, 2, 10, 0, tzinfo=timezone.utc) | ^ E501 | aleksis/apps/kolego/tests/models/test_absence.py:79:101: E501 Line too long (184 > 100) | 77 | datetime_start_new = absences_test_data["datetime_start_existing_1"] 78 | datetime_end_new = absences_test_data["datetime_end_existing_1"] 79 | new_absence = Absence.objects.create(datetime_start=datetime_start_new, datetime_end=datetime_end_new, person=absences_test_data["person_1"], reason=absences_test_data["reason_2"]) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E501 80 | new_absence.refresh_from_db() | aleksis/apps/kolego/tests/models/test_absence.py:83:101: E501 Line too long (201 > 100) | 82 | assert len(Absence.objects.all()) == 2 83 | assert not Absence.objects.filter(datetime_start=datetime(2024, 1, 1, 12, 0, tzinfo=timezone.utc), datetime_end=datetime(2024, 1, 2, 10, 0, tzinfo=timezone.utc)).exclude(pk=new_absence.pk).exists() | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E501 84 | 85 | assert new_absence.datetime_start == datetime(2024, 1, 1, 12, 0, tzinfo=timezone.utc) | aleksis/apps/kolego/tests/models/test_absence.py:91:101: E501 Line too long (111 > 100) | 89 | # 3: new absence starts earlier and ends later than the existing absence 90 | def test_overlapping_single_absence_different_reason_exceed(absences_test_data): 91 | datetime_start_new = datetime(2024, 1, 1, 10, 0, tzinfo=timezone.utc).astimezone(ZoneInfo("Europe/Berlin")) | ^^^^^^^^^^^ E501 92 | datetime_end_new = datetime(2024, 1, 2, 12, 0, tzinfo=timezone.utc).astimezone(ZoneInfo("Europe/Berlin")) 93 | new_absence = Absence.objects.create(datetime_start=datetime_start_new, datetime_end=datetime_end_new, person=absences_test_data["person_1"], reason=absences_test_data["reason_2"]) | aleksis/apps/kolego/tests/models/test_absence.py:92:101: E501 Line too long (109 > 100) | 90 | def test_overlapping_single_absence_different_reason_exceed(absences_test_data): 91 | datetime_start_new = datetime(2024, 1, 1, 10, 0, tzinfo=timezone.utc).astimezone(ZoneInfo("Europe/Berlin")) 92 | datetime_end_new = datetime(2024, 1, 2, 12, 0, tzinfo=timezone.utc).astimezone(ZoneInfo("Europe/Berlin")) | ^^^^^^^^^ E501 93 | new_absence = Absence.objects.create(datetime_start=datetime_start_new, datetime_end=datetime_end_new, person=absences_test_data["person_1"], reason=absences_test_data["reason_2"]) 94 | new_absence.refresh_from_db() | aleksis/apps/kolego/tests/models/test_absence.py:93:101: E501 Line too long (184 > 100) | 91 | datetime_start_new = datetime(2024, 1, 1, 10, 0, tzinfo=timezone.utc).astimezone(ZoneInfo("Europe/Berlin")) 92 | datetime_end_new = datetime(2024, 1, 2, 12, 0, tzinfo=timezone.utc).astimezone(ZoneInfo("Europe/Berlin")) 93 | new_absence = Absence.objects.create(datetime_start=datetime_start_new, datetime_end=datetime_end_new, person=absences_test_data["person_1"], reason=absences_test_data["reason_2"]) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E501 94 | new_absence.refresh_from_db() | aleksis/apps/kolego/tests/models/test_absence.py:97:101: E501 Line too long (174 > 100) | 96 | assert len(Absence.objects.all()) == 2 97 | assert not Absence.objects.filter(datetime_start=datetime(2024, 1, 1, 12, 0, tzinfo=timezone.utc), datetime_end=datetime(2024, 1, 2, 10, 0, tzinfo=timezone.utc)).exists() | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E501 98 | 99 | assert new_absence.datetime_start == datetime(2024, 1, 1, 10, 0, tzinfo=timezone.utc) | aleksis/apps/kolego/tests/models/test_absence.py:105:101: E501 Line too long (111 > 100) | 103 | # 4: new absence starts before existing absence and ends within the existing absence 104 | def test_overlapping_single_absence_different_reason_cut_start(absences_test_data): 105 | datetime_start_new = datetime(2024, 1, 1, 10, 0, tzinfo=timezone.utc).astimezone(ZoneInfo("Europe/Berlin")) | ^^^^^^^^^^^ E501 106 | datetime_end_new = datetime(2024, 1, 1, 14, 0, tzinfo=timezone.utc).astimezone(ZoneInfo("Europe/Berlin")) 107 | new_absence = Absence.objects.create(datetime_start=datetime_start_new, datetime_end=datetime_end_new, person=absences_test_data["person_1"], reason=absences_test_data["reason_2"]) | aleksis/apps/kolego/tests/models/test_absence.py:106:101: E501 Line too long (109 > 100) | 104 | def test_overlapping_single_absence_different_reason_cut_start(absences_test_data): 105 | datetime_start_new = datetime(2024, 1, 1, 10, 0, tzinfo=timezone.utc).astimezone(ZoneInfo("Europe/Berlin")) 106 | datetime_end_new = datetime(2024, 1, 1, 14, 0, tzinfo=timezone.utc).astimezone(ZoneInfo("Europe/Berlin")) | ^^^^^^^^^ E501 107 | new_absence = Absence.objects.create(datetime_start=datetime_start_new, datetime_end=datetime_end_new, person=absences_test_data["person_1"], reason=absences_test_data["reason_2"]) 108 | new_absence.refresh_from_db() | aleksis/apps/kolego/tests/models/test_absence.py:107:101: E501 Line too long (184 > 100) | 105 | datetime_start_new = datetime(2024, 1, 1, 10, 0, tzinfo=timezone.utc).astimezone(ZoneInfo("Europe/Berlin")) 106 | datetime_end_new = datetime(2024, 1, 1, 14, 0, tzinfo=timezone.utc).astimezone(ZoneInfo("Europe/Berlin")) 107 | new_absence = Absence.objects.create(datetime_start=datetime_start_new, datetime_end=datetime_end_new, person=absences_test_data["person_1"], reason=absences_test_data["reason_2"]) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E501 108 | new_absence.refresh_from_db() | aleksis/apps/kolego/tests/models/test_absence.py:112:101: E501 Line too long (118 > 100) | 110 | absences_test_data["existing_absence_1"].refresh_from_db() 111 | 112 | assert absences_test_data["existing_absence_1"].datetime_start == datetime(2024, 1, 1, 14, 0, tzinfo=timezone.utc) | ^^^^^^^^^^^^^^^^^^ E501 113 | assert absences_test_data["existing_absence_1"].datetime_end == datetime(2024, 1, 2, 10, 0, tzinfo=timezone.utc) | aleksis/apps/kolego/tests/models/test_absence.py:113:101: E501 Line too long (116 > 100) | 112 | assert absences_test_data["existing_absence_1"].datetime_start == datetime(2024, 1, 1, 14, 0, tzinfo=timezone.utc) 113 | assert absences_test_data["existing_absence_1"].datetime_end == datetime(2024, 1, 2, 10, 0, tzinfo=timezone.utc) | ^^^^^^^^^^^^^^^^ E501 114 | 115 | assert new_absence.datetime_start == datetime(2024, 1, 1, 10, 0, tzinfo=timezone.utc) | aleksis/apps/kolego/tests/models/test_absence.py:121:101: E501 Line too long (110 > 100) | 119 | # 5: new absence starts within existing absence and ends after the existing absence 120 | def test_overlapping_single_absence_different_reason_cut_end(absences_test_data): 121 | datetime_start_new = datetime(2024, 1, 2, 8, 0, tzinfo=timezone.utc).astimezone(ZoneInfo("Europe/Berlin")) | ^^^^^^^^^^ E501 122 | datetime_end_new = datetime(2024, 1, 2, 12, 0, tzinfo=timezone.utc).astimezone(ZoneInfo("Europe/Berlin")) 123 | new_absence = Absence.objects.create(datetime_start=datetime_start_new, datetime_end=datetime_end_new, person=absences_test_data["person_1"], reason=absences_test_data["reason_2"]) | aleksis/apps/kolego/tests/models/test_absence.py:122:101: E501 Line too long (109 > 100) | 120 | def test_overlapping_single_absence_different_reason_cut_end(absences_test_data): 121 | datetime_start_new = datetime(2024, 1, 2, 8, 0, tzinfo=timezone.utc).astimezone(ZoneInfo("Europe/Berlin")) 122 | datetime_end_new = datetime(2024, 1, 2, 12, 0, tzinfo=timezone.utc).astimezone(ZoneInfo("Europe/Berlin")) | ^^^^^^^^^ E501 123 | new_absence = Absence.objects.create(datetime_start=datetime_start_new, datetime_end=datetime_end_new, person=absences_test_data["person_1"], reason=absences_test_data["reason_2"]) 124 | new_absence.refresh_from_db() | aleksis/apps/kolego/tests/models/test_absence.py:123:101: E501 Line too long (184 > 100) | 121 | datetime_start_new = datetime(2024, 1, 2, 8, 0, tzinfo=timezone.utc).astimezone(ZoneInfo("Europe/Berlin")) 122 | datetime_end_new = datetime(2024, 1, 2, 12, 0, tzinfo=timezone.utc).astimezone(ZoneInfo("Europe/Berlin")) 123 | new_absence = Absence.objects.create(datetime_start=datetime_start_new, datetime_end=datetime_end_new, person=absences_test_data["person_1"], reason=absences_test_data["reason_2"]) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E501 124 | new_absence.refresh_from_db() | aleksis/apps/kolego/tests/models/test_absence.py:128:101: E501 Line too long (118 > 100) | 126 | absences_test_data["existing_absence_1"].refresh_from_db() 127 | 128 | assert absences_test_data["existing_absence_1"].datetime_start == datetime(2024, 1, 1, 12, 0, tzinfo=timezone.utc) | ^^^^^^^^^^^^^^^^^^ E501 129 | assert absences_test_data["existing_absence_1"].datetime_end == datetime(2024, 1, 2, 8, 0, tzinfo=timezone.utc) | aleksis/apps/kolego/tests/models/test_absence.py:129:101: E501 Line too long (115 > 100) | 128 | assert absences_test_data["existing_absence_1"].datetime_start == datetime(2024, 1, 1, 12, 0, tzinfo=timezone.utc) 129 | assert absences_test_data["existing_absence_1"].datetime_end == datetime(2024, 1, 2, 8, 0, tzinfo=timezone.utc) | ^^^^^^^^^^^^^^^ E501 130 | 131 | assert new_absence.datetime_start == datetime(2024, 1, 2, 8, 0, tzinfo=timezone.utc) | aleksis/apps/kolego/tests/models/test_absence.py:137:101: E501 Line too long (110 > 100) | 135 | # 6: new absence is completely outside of existing absence 136 | def test_overlapping_single_absence_different_reason_outside(absences_test_data): 137 | datetime_start_new = datetime(2024, 1, 1, 8, 0, tzinfo=timezone.utc).astimezone(ZoneInfo("Europe/Berlin")) | ^^^^^^^^^^ E501 138 | datetime_end_new = datetime(2024, 1, 1, 10, 0, tzinfo=timezone.utc).astimezone(ZoneInfo("Europe/Berlin")) 139 | new_absence = Absence.objects.create(datetime_start=datetime_start_new, datetime_end=datetime_end_new, person=absences_test_data["person_1"], reason=absences_test_data["reason_2"]) | aleksis/apps/kolego/tests/models/test_absence.py:138:101: E501 Line too long (109 > 100) | 136 | def test_overlapping_single_absence_different_reason_outside(absences_test_data): 137 | datetime_start_new = datetime(2024, 1, 1, 8, 0, tzinfo=timezone.utc).astimezone(ZoneInfo("Europe/Berlin")) 138 | datetime_end_new = datetime(2024, 1, 1, 10, 0, tzinfo=timezone.utc).astimezone(ZoneInfo("Europe/Berlin")) | ^^^^^^^^^ E501 139 | new_absence = Absence.objects.create(datetime_start=datetime_start_new, datetime_end=datetime_end_new, person=absences_test_data["person_1"], reason=absences_test_data["reason_2"]) 140 | new_absence.refresh_from_db() | aleksis/apps/kolego/tests/models/test_absence.py:139:101: E501 Line too long (184 > 100) | 137 | datetime_start_new = datetime(2024, 1, 1, 8, 0, tzinfo=timezone.utc).astimezone(ZoneInfo("Europe/Berlin")) 138 | datetime_end_new = datetime(2024, 1, 1, 10, 0, tzinfo=timezone.utc).astimezone(ZoneInfo("Europe/Berlin")) 139 | new_absence = Absence.objects.create(datetime_start=datetime_start_new, datetime_end=datetime_end_new, person=absences_test_data["person_1"], reason=absences_test_data["reason_2"]) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E501 140 | new_absence.refresh_from_db() | aleksis/apps/kolego/tests/models/test_absence.py:144:101: E501 Line too long (118 > 100) | 142 | absences_test_data["existing_absence_1"].refresh_from_db() 143 | 144 | assert absences_test_data["existing_absence_1"].datetime_start == datetime(2024, 1, 1, 12, 0, tzinfo=timezone.utc) | ^^^^^^^^^^^^^^^^^^ E501 145 | assert absences_test_data["existing_absence_1"].datetime_end == datetime(2024, 1, 2, 10, 0, tzinfo=timezone.utc) | aleksis/apps/kolego/tests/models/test_absence.py:145:101: E501 Line too long (116 > 100) | 144 | assert absences_test_data["existing_absence_1"].datetime_start == datetime(2024, 1, 1, 12, 0, tzinfo=timezone.utc) 145 | assert absences_test_data["existing_absence_1"].datetime_end == datetime(2024, 1, 2, 10, 0, tzinfo=timezone.utc) | ^^^^^^^^^^^^^^^^ E501 146 | 147 | assert new_absence.datetime_start == datetime(2024, 1, 1, 8, 0, tzinfo=timezone.utc) | Found 40 errors. [*] 3 fixable with the `--fix` option. lint: exit 1 (1.96 seconds) /builds/AlekSIS/onboarding/AlekSIS-App-Kolego> poetry run ruff check aleksis/ pid=138 lint: FAIL code 1 (49.19=setup[1.01]+cmd[14.40,31.82,1.96] seconds) evaluation failed :( (49.70 seconds) section_end:1739658214:step_script [0Ksection_start:1739658214:cleanup_file_variables [0K[0K[36;1mCleaning up project directory and file based variables[0;m[0;m section_end:1739658217:cleanup_file_variables [0K[31;1mERROR: Job failed: exit code 1 [0;m