Zusammenfassung
102
Gesamt
100
Bestanden
0
Fehlgeschlagen
2
Übersprungen
98%
Erfolgsquote
Inhalt
- Zugriffsrechte (6)
- Anmeldung (9)
- Figur (6)
- Kind (12)
- Saison (4)
- Schwimmbad (8)
- Verband (4)
- Verein (7)
- Versicherung (4)
- Wettkampf (6)
- Geschäftsregeln (5)
- Persistenz (2)
- Anmeldung-Mapping (3)
- Kind-Mapping (2)
- Anmeldung-Repository (3)
- Kind-Repository (4)
- Anmeldung-Service (2)
- Kind-Service (2)
- Akzeptanztests (BDD) (2)
- Datenbank-Konfiguration (3)
- libSQL (1)
- Regeln (1)
- Business (1)
- Input (3)
- Wettkampfform (2)
Zugriffsrechte
| Business-Erklärung (Slug) | Technischer Name | Ergebnis |
|---|---|---|
|
Api Test_access_rights: Read only user cannot modify kind
api-test-access-rights-read-only-user-cannot-modify-kind |
tests/api/test_access_rights.py::test_read_only_user_cannot_modify_kind |
Passed |
|
Api Test_access_rights: Read only user cannot modify verein
api-test-access-rights-read-only-user-cannot-modify-verein |
tests/api/test_access_rights.py::test_read_only_user_cannot_modify_verein |
Passed |
|
Api Test_access_rights: Read only user cannot modify saison
api-test-access-rights-read-only-user-cannot-modify-saison |
tests/api/test_access_rights.py::test_read_only_user_cannot_modify_saison |
Passed |
|
Api Test_access_rights: Read only user cannot modify schwimmbad
api-test-access-rights-read-only-user-cannot-modify-schwimmbad |
tests/api/test_access_rights.py::test_read_only_user_cannot_modify_schwimmbad |
Passed |
|
Api Test_access_rights: Read only user cannot modify wettkampf
api-test-access-rights-read-only-user-cannot-modify-wettkampf |
tests/api/test_access_rights.py::test_read_only_user_cannot_modify_wettkampf |
Passed |
|
Api Test_access_rights: Read only user cannot modify anmeldung
api-test-access-rights-read-only-user-cannot-modify-anmeldung |
tests/api/test_access_rights.py::test_read_only_user_cannot_modify_anmeldung |
Passed |
Anmeldung
| Business-Erklärung (Slug) | Technischer Name | Ergebnis |
|---|---|---|
|
Test creating anmeldung with figures.
test-creating-anmeldung-with-figures |
tests/api/test_anmeldung.py::test_create_anmeldung_with_figuren |
Passed |
|
Test anmeldung without figures is marked as preliminary.
test-anmeldung-without-figures-is-marked-as-preliminary |
tests/api/test_anmeldung.py::test_create_anmeldung_without_figuren_is_vorlaeufig |
Passed |
|
Test anmeldung for uninsured kind is marked as preliminary.
test-anmeldung-for-uninsured-kind-is-marked-as-preliminary |
tests/api/test_anmeldung.py::test_create_anmeldung_uninsured_kind_is_vorlaeufig |
Passed |
|
Test reading list of anmeldungen.
test-reading-list-of-anmeldungen |
tests/api/test_anmeldung.py::test_read_anmeldung_list |
Passed |
|
Test reading single anmeldung by ID.
test-reading-single-anmeldung-by-id |
tests/api/test_anmeldung.py::test_read_anmeldung_by_id |
Passed |
|
Test updating anmeldung figures.
test-updating-anmeldung-figures |
tests/api/test_anmeldung.py::test_update_anmeldung_figuren |
Passed |
|
Test deleting anmeldung.
test-deleting-anmeldung |
tests/api/test_anmeldung.py::test_delete_anmeldung |
Passed |
|
Test creating anmeldung with non-existent kind returns 404.
test-creating-anmeldung-with-non-existent-kind-returns-404 |
tests/api/test_anmeldung.py::test_create_anmeldung_kind_not_found |
Passed |
|
Test creating anmeldung with non-existent wettkampf returns 404.
test-creating-anmeldung-with-non-existent-wettkampf-returns-404 |
tests/api/test_anmeldung.py::test_create_anmeldung_wettkampf_not_found |
Passed |
Figur
| Business-Erklärung (Slug) | Technischer Name | Ergebnis |
|---|---|---|
|
Test creating a new figur.
test-creating-a-new-figur |
tests/api/test_figur.py::test_create_figur |
Passed |
|
Test reading list of figuren.
test-reading-list-of-figuren |
tests/api/test_figur.py::test_read_figur_list |
Passed |
|
Test reading a single figur by ID.
test-reading-a-single-figur-by-id |
tests/api/test_figur.py::test_read_figur_by_id |
Passed |
|
Test updating a figur.
test-updating-a-figur |
tests/api/test_figur.py::test_update_figur |
Passed |
|
Test deleting a figur.
test-deleting-a-figur |
tests/api/test_figur.py::test_delete_figur |
Passed |
|
Test creating figur with only required fields.
test-creating-figur-with-only-required-fields |
tests/api/test_figur.py::test_figur_minimal_fields |
Passed |
Kind
| Business-Erklärung (Slug) | Technischer Name | Ergebnis |
|---|---|---|
|
Api Test_kind: Kind crud
api-test-kind-kind-crud |
tests/api/test_kind.py::test_kind_crud |
Passed |
|
Kind api listkinder should fetch list of kinder with pagination
kind-api-listkinder-should-fetch-list-of-kinder-with-pagination |
Kind API Service listKinder should fetch list of kinder with pagination |
Passed |
|
Kind api listkinder should handle search and sorting parameters
kind-api-listkinder-should-handle-search-and-sorting-parameters |
Kind API Service listKinder should handle search and sorting parameters |
Passed |
|
Kind api getkind should fetch a single kind by id
kind-api-getkind-should-fetch-a-single-kind-by-id |
Kind API Service getKind should fetch a single kind by ID |
Passed |
|
Kind api createkind should create a new kind
kind-api-createkind-should-create-a-new-kind |
Kind API Service createKind should create a new kind |
Passed |
|
Kind api updatekind should update an existing kind
kind-api-updatekind-should-update-an-existing-kind |
Kind API Service updateKind should update an existing kind |
Passed |
|
Kind api deletekind should delete a kind by id
kind-api-deletekind-should-delete-a-kind-by-id |
Kind API Service deleteKind should delete a kind by ID |
Passed |
|
Kind api iskindinsured should return true if kind has verein
kind-api-iskindinsured-should-return-true-if-kind-has-verein |
Kind API Service isKindInsured should return true if kind has verein |
Passed |
|
Kind api iskindinsured should return true if kind has verband
kind-api-iskindinsured-should-return-true-if-kind-has-verband |
Kind API Service isKindInsured should return true if kind has verband |
Passed |
|
Kind api iskindinsured should return true if kind has contract insurance
kind-api-iskindinsured-should-return-true-if-kind-has-contract-insurance |
Kind API Service isKindInsured should return true if kind has contract insurance |
Passed |
|
Kind api iskindinsured should return false if kind has no insurance
kind-api-iskindinsured-should-return-false-if-kind-has-no-insurance |
Kind API Service isKindInsured should return false if kind has no insurance |
Passed |
|
Kind api iskindinsured should return false if kind has versicherung_id but no vertrag
kind-api-iskindinsured-should-return-false-if-kind-has-versicherung-id-but-no-vertrag |
Kind API Service isKindInsured should return false if kind has versicherung_id but no vertrag |
Passed |
Saison
| Business-Erklärung (Slug) | Technischer Name | Ergebnis |
|---|---|---|
|
Api Test_saison: Create saison
api-test-saison-create-saison |
tests/api/test_saison.py::test_create_saison |
Passed |
|
Api Test_saison: Read saison
api-test-saison-read-saison |
tests/api/test_saison.py::test_read_saison |
Passed |
|
Api Test_saison: Update saison
api-test-saison-update-saison |
tests/api/test_saison.py::test_update_saison |
Passed |
|
Api Test_saison: Delete saison
api-test-saison-delete-saison |
tests/api/test_saison.py::test_delete_saison |
Passed |
Schwimmbad
| Business-Erklärung (Slug) | Technischer Name | Ergebnis |
|---|---|---|
|
Test creating a new swimming pool.
test-creating-a-new-swimming-pool |
tests/api/test_schwimmbad.py::test_create_schwimmbad |
Passed |
|
Test creating a swimming pool with only required fields.
test-creating-a-swimming-pool-with-only-required-fields |
tests/api/test_schwimmbad.py::test_create_schwimmbad_minimal |
Passed |
|
Test getting list of swimming pools.
test-getting-list-of-swimming-pools |
tests/api/test_schwimmbad.py::test_read_schwimmbad_list |
Passed |
|
Test getting a specific swimming pool by ID.
test-getting-a-specific-swimming-pool-by-id |
tests/api/test_schwimmbad.py::test_read_schwimmbad_by_id |
Passed |
|
Test getting non-existent swimming pool returns 404.
test-getting-non-existent-swimming-pool-returns-404 |
tests/api/test_schwimmbad.py::test_read_schwimmbad_not_found |
Passed |
|
Test updating a swimming pool.
test-updating-a-swimming-pool |
tests/api/test_schwimmbad.py::test_update_schwimmbad |
Passed |
|
Test deleting a swimming pool.
test-deleting-a-swimming-pool |
tests/api/test_schwimmbad.py::test_delete_schwimmbad |
Passed |
|
Test deleting non-existent swimming pool returns 404.
test-deleting-non-existent-swimming-pool-returns-404 |
tests/api/test_schwimmbad.py::test_delete_schwimmbad_not_found |
Passed |
Verband
| Business-Erklärung (Slug) | Technischer Name | Ergebnis |
|---|---|---|
|
Test getting list of associations.
test-getting-list-of-associations |
tests/api/test_verband.py::test_read_verband_list |
Passed |
|
Test sorting associations by name.
test-sorting-associations-by-name |
tests/api/test_verband.py::test_read_verband_sorting_by_name |
Passed |
|
Test sorting associations by nomination count.
test-sorting-associations-by-nomination-count |
tests/api/test_verband.py::test_read_verband_sorting_by_nomination_count |
Passed |
|
Test pagination for associations.
test-pagination-for-associations |
tests/api/test_verband.py::test_read_verband_pagination |
Passed |
Verein
| Business-Erklärung (Slug) | Technischer Name | Ergebnis |
|---|---|---|
|
Ensures a new club can be created via the API.
ensures-a-new-club-can-be-created-via-the-api |
tests/api/test_verein.py::test_create_verein |
Passed |
|
Ensures the API returns a list of all created clubs.
ensures-the-api-returns-a-list-of-all-created-clubs |
tests/api/test_verein.py::test_read_verein_list |
Passed |
|
Test getting a specific club by ID.
test-getting-a-specific-club-by-id |
tests/api/test_verein.py::test_read_verein_by_id |
Passed |
|
Test getting non-existent club returns 404.
test-getting-non-existent-club-returns-404 |
tests/api/test_verein.py::test_read_verein_not_found |
Passed |
|
Test updating a club.
test-updating-a-club |
tests/api/test_verein.py::test_update_verein |
Passed |
|
Test deleting a club.
test-deleting-a-club |
tests/api/test_verein.py::test_delete_verein |
Passed |
|
Test deleting non-existent club returns 404.
test-deleting-non-existent-club-returns-404 |
tests/api/test_verein.py::test_delete_verein_not_found |
Passed |
Versicherung
| Business-Erklärung (Slug) | Technischer Name | Ergebnis |
|---|---|---|
|
Test getting list of insurance companies.
test-getting-list-of-insurance-companies |
tests/api/test_versicherung.py::test_read_versicherung_list |
Passed |
|
Test that insurance companies are sorted by name.
test-that-insurance-companies-are-sorted-by-name |
tests/api/test_versicherung.py::test_read_versicherung_sorted_by_name |
Passed |
|
Test pagination for insurance companies.
test-pagination-for-insurance-companies |
tests/api/test_versicherung.py::test_read_versicherung_pagination |
Passed |
|
Test default limit for insurance companies.
test-default-limit-for-insurance-companies |
tests/api/test_versicherung.py::test_read_versicherung_default_limit |
Passed |
Wettkampf
| Business-Erklärung (Slug) | Technischer Name | Ergebnis |
|---|---|---|
|
Test creating a new wettkampf.
test-creating-a-new-wettkampf |
tests/api/test_wettkampf.py::test_create_wettkampf |
Passed |
|
Test reading list of wettkämpfe.
test-reading-list-of-wettk-mpfe |
tests/api/test_wettkampf.py::test_read_wettkampf_list |
Passed |
|
Test reading a single wettkampf by ID.
test-reading-a-single-wettkampf-by-id |
tests/api/test_wettkampf.py::test_read_wettkampf_by_id |
Passed |
|
Test updating a wettkampf.
test-updating-a-wettkampf |
tests/api/test_wettkampf.py::test_update_wettkampf |
Passed |
|
Test deleting a wettkampf.
test-deleting-a-wettkampf |
tests/api/test_wettkampf.py::test_delete_wettkampf |
Passed |
|
Test wettkampf/details endpoint returns figuren and anmeldungen.
test-wettkampf-details-endpoint-returns-figuren-and-anmeldungen |
tests/api/test_wettkampf.py::test_wettkampf_details_with_figuren_and_anmeldungen |
Passed |
Geschäftsregeln
| Business-Erklärung (Slug) | Technischer Name | Ergebnis |
|---|---|---|
|
Business Rule: Anmeldung without figuren must be vorläufig.
business-rule-anmeldung-without-figuren-must-be-vorl-ufig |
tests/integration/test_business_rules.py::test_anmeldung_without_figuren_is_vorlaeufig |
Passed |
|
Business Rule: Anmeldung with figuren is not vorläufig.
business-rule-anmeldung-with-figuren-is-not-vorl-ufig |
tests/integration/test_business_rules.py::test_anmeldung_with_figuren_becomes_final |
Passed |
|
Business Rule: Adding figuren to vorläufig anmeldung transitions it to final.
business-rule-adding-figuren-to-vorl-ufig-anmeldung-transitions-it-to-final |
tests/integration/test_business_rules.py::test_vorlaeufig_to_final_transition_when_figuren_added |
Passed |
|
Technical Test: Verify Kind data is eagerly loaded with Anmeldung.
technical-test-verify-kind-data-is-eagerly-loaded-with-anmeldung |
tests/integration/test_business_rules.py::test_eager_loading_kind_in_anmeldung |
Passed |
|
Technical Test: Verify insurance_ok flag is calculated and returned.
technical-test-verify-insurance-ok-flag-is-calculated-and-returned |
tests/integration/test_business_rules.py::test_insurance_flag_calculated_correctly |
Passed |
Persistenz
| Business-Erklärung (Slug) | Technischer Name | Ergebnis |
|---|---|---|
|
Integration test to verify that the standard SQLite configuration
integration-test-to-verify-that-the-standard-sqlite-configuration |
tests/integration/test_persistence.py::test_sqlite_file_persistence |
Passed |
|
Verify that the app's get_db dependency yields a valid session
verify-that-the-app-s-get-db-dependency-yields-a-valid-session |
tests/integration/test_persistence.py::test_app_dependency_wiring |
Passed |
Anmeldung-Mapping
| Business-Erklärung (Slug) | Technischer Name | Ergebnis |
|---|---|---|
|
Requirement for Step 6:
requirement-for-step-6 |
tests/mappers/test_anmeldung_mapper.py::test_anmeldung_mapper_computes_insurance_ok |
Passed |
|
Requirement for Step 6:
requirement-for-step-6 |
tests/mappers/test_anmeldung_mapper.py::test_anmeldung_mapper_handles_uninsured_kind |
Passed |
|
Requirement for Step 6:
requirement-for-step-6 |
tests/mappers/test_anmeldung_mapper.py::test_anmeldung_mapper_includes_figures |
Passed |
Kind-Mapping
| Business-Erklärung (Slug) | Technischer Name | Ergebnis |
|---|---|---|
|
Requirement for Step 6:
requirement-for-step-6 |
tests/mappers/test_kind_mapper.py::test_kind_entity_to_dto_mapping |
Passed |
|
Requirement for Step 6:
requirement-for-step-6 |
tests/mappers/test_kind_mapper.py::test_kind_mapper_handles_relationships |
Passed |
Anmeldung-Repository
| Business-Erklärung (Slug) | Technischer Name | Ergebnis |
|---|---|---|
|
Requirement for Step 4:
requirement-for-step-4 |
tests/repositories/test_anmeldung_repository.py::test_anmeldung_repository_get_with_details |
Passed |
|
Requirement for Step 4:
requirement-for-step-4 |
tests/repositories/test_anmeldung_repository.py::test_anmeldung_repository_get_next_startnummer |
Passed |
|
Test adding and setting figuren for an anmeldung.
test-adding-and-setting-figuren-for-an-anmeldung |
tests/repositories/test_anmeldung_repository.py::test_anmeldung_repository_add_and_set_figuren |
Passed |
Kind-Repository
| Business-Erklärung (Slug) | Technischer Name | Ergebnis |
|---|---|---|
|
Requirement for Step 4:
requirement-for-step-4 |
tests/repositories/test_kind_repository.py::test_kind_repository_create_and_get |
Passed |
|
Requirement for Step 4:
requirement-for-step-4 |
tests/repositories/test_kind_repository.py::test_kind_repository_search |
Passed |
|
Test that repository handles sorting correctly.
test-that-repository-handles-sorting-correctly |
tests/repositories/test_kind_repository.py::test_kind_repository_search_with_sorting |
Passed |
|
Test update and delete operations.
test-update-and-delete-operations |
tests/repositories/test_kind_repository.py::test_kind_repository_update_and_delete |
Passed |
Anmeldung-Service
| Business-Erklärung (Slug) | Technischer Name | Ergebnis |
|---|---|---|
|
Requirement for Step 5:
requirement-for-step-5 |
tests/services/test_anmeldung_service.py::test_create_anmeldung_logic_happy_path |
Passed |
|
Requirement for Step 5:
requirement-for-step-5 |
tests/services/test_anmeldung_service.py::test_create_anmeldung_logic_missing_insurance |
Passed |
Kind-Service
| Business-Erklärung (Slug) | Technischer Name | Ergebnis |
|---|---|---|
|
Requirement for Step 5:
requirement-for-step-5 |
tests/services/test_kind_service.py::test_check_insurance_status |
Passed |
|
Requirement for Step 5:
requirement-for-step-5 |
tests/services/test_kind_service.py::test_update_kind_triggers_anmeldung_update |
Passed |
Akzeptanztests (BDD)
| Business-Erklärung (Slug) | Technischer Name | Ergebnis |
|---|---|---|
|
Step_definitions Test_kind_steps: Kind erfolgreich anlegen
step-definitions-test-kind-steps-kind-erfolgreich-anlegen |
tests/step_definitions/test_kind_steps.py::test_kind_erfolgreich_anlegen |
Passed |
|
Step_definitions Test_kind_steps: Kind liste abrufen
step-definitions-test-kind-steps-kind-liste-abrufen |
tests/step_definitions/test_kind_steps.py::test_kind_liste_abrufen |
Passed |
Datenbank-Konfiguration
| Business-Erklärung (Slug) | Technischer Name | Ergebnis |
|---|---|---|
|
Verify standard SQLite configuration.
verify-standard-sqlite-configuration |
tests/unit/test_db_config.py::test_sqlite_configuration |
Passed |
|
Verify Turso/libSQL configuration.
verify-turso-libsql-configuration |
tests/unit/test_db_config.py::test_libsql_configuration |
Passed |
|
Verify default fallback to local sqlite.
verify-default-fallback-to-local-sqlite |
tests/unit/test_db_config.py::test_default_configuration |
Passed |
libSQL
| Business-Erklärung (Slug) | Technischer Name | Ergebnis |
|---|---|---|
|
Verify that the Turso/libSQL related dependencies are correctly installed
verify-that-the-turso-libsql-related-dependencies-are-correctly-installed |
tests/unit/test_libsql_availability.py::test_libsql_dependencies_available |
Passed |
Regeln
| Business-Erklärung (Slug) | Technischer Name | Ergebnis |
|---|---|---|
|
Unit Test_rules: Calculate age group stub
unit-test-rules-calculate-age-group-stub |
tests/unit/test_rules.py::test_calculate_age_group_stub |
Passed |
Business
| Business-Erklärung (Slug) | Technischer Name | Ergebnis |
|---|---|---|
|
Business rules stubs should validate max participants
business-rules-stubs-should-validate-max-participants |
Business Rules Stubs should validate max participants |
Passed |
Input
| Business-Erklärung (Slug) | Technischer Name | Ergebnis |
|---|---|---|
|
Input renders label and input
input-renders-label-and-input |
Input Component renders label and input |
Passed |
|
Input displays error message
input-displays-error-message |
Input Component displays error message |
Passed |
|
Input calls onchange handler
input-calls-onchange-handler |
Input Component calls onChange handler |
Passed |
Wettkampfform
| Business-Erklärung (Slug) | Technischer Name | Ergebnis |
|---|---|---|
|
Wettkampfform business rules should show error and wobble when max_teilnehmer is <= 1
wettkampfform-business-rules-should-show-error-and-wobble-when-max-teilnehmer-is-1 |
WettkampfForm Business Rules should show error and wobble when max_teilnehmer is <= 1 |
Skipped |
|
Wettkampfform business rules should not show error when max_teilnehmer is > 1
wettkampfform-business-rules-should-not-show-error-when-max-teilnehmer-is-1 |
WettkampfForm Business Rules should not show error when max_teilnehmer is > 1 |
Skipped |