Running with gitlab-runner 17.8.1 (a1fca00e)
  on aleksis-runner xgKXqwzc, system ID: s_84022eff7be2
  feature flags: FF_NETWORK_PER_BUILD:true
section_start:1739658127:prepare_executor
Preparing the "docker" executor
Using Docker executor with image registry.edugit.org/teckids/team-sysadmin/docker-images/python-pimped:master@sha256:d4915ee0fa82b287a9cce6f72aec54e3571a05e46f48aa3c0eff6299eef9d150 ...
Authenticating with credentials from job payload (GitLab Registry)
Pulling docker image registry.edugit.org/teckids/team-sysadmin/docker-images/python-pimped:master@sha256:d4915ee0fa82b287a9cce6f72aec54e3571a05e46f48aa3c0eff6299eef9d150 ...
Using 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 ...
section_end:1739658134:prepare_executor
section_start:1739658134:prepare_script
Preparing environment
Running on runner-xgkxqwzc-project-2918-concurrent-2 via aleksis-runner...
section_end:1739658137:prepare_script
section_start:1739658137:get_sources
Getting source from Git repository
Fetching changes with git depth set to 20...
Reinitialized existing Git repository in /builds/AlekSIS/onboarding/AlekSIS-App-Kolego/.git/
Checking out ad9635b3 as detached HEAD (ref is check/update-pyproject-toml)...
Removing .tox/
Removing poetry.lock

Updating/initializing submodules recursively with git depth set to 20...
Updated submodules
section_end:1739658150:get_sources
section_start:1739658150:restore_cache
Restoring cache
Checking cache for 0_poetry_pyproject-24db70fdc3c74437b697b29647acec8731aa0929-non_protected...
No URL provided, cache will not be downloaded from shared cache server. Instead a local version of cache will be extracted. 
WARNING: Cache file does not exist                 
Failed to extract cache
section_end:1739658153:restore_cache
section_start:1739658153:download_artifacts
Downloading artifacts
Downloading artifacts for lock (324336)...
Downloading artifacts from coordinator... ok        host=edugit.org id=324336 responseStatus=200 OK token=glcbt-64
section_end:1739658159:download_artifacts
section_start:1739658159:step_script
Executing "step_script" stage of the job script
Using 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 ...
$ id testuser || adduser --disabled-password --gecos "Test User" testuser
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' ...
$ chown -R testuser .
$ sudo -u testuser tox -e lint
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
section_start:1739658214:cleanup_file_variables
Cleaning up project directory and file based variables
section_end:1739658217:cleanup_file_variables
ERROR: Job failed: exit code 1