From b99ef307f5ccf1b5c30032a6d3a927b67472a74a Mon Sep 17 00:00:00 2001 From: Nano Taboada <87288+nanotaboada@users.noreply.github.com> Date: Tue, 31 Mar 2026 13:11:59 -0300 Subject: [PATCH 1/2] feat(data): normalize dataset to 2022 FIFA World Cup squad (#543) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Replace all 26 pre-computed UUIDs with canonical UUID v5 values (namespace FIFA_WORLD_CUP_QATAR_2022_ARGENTINA_SQUAD) - Add Almada (squad 16) as seeded substitute in seed_002 - Add Lo Celso (squad 27) as Create/Delete test fixture in player_stub - Correct Martínez firstName/middleName, Fernández team/league, Mac Allister team, Messi team/league to November 2022 values - Add PUT teardown to restore Martínez after each test run - Rebuild storage/players-sqlite3.db from updated seed scripts - Update rest/players.rest: Lo Celso for POST/DELETE, Messi UUID for GET by id, Damián→Emiliano semantics for PUT Co-authored-by: Claude Sonnet 4.6 --- CHANGELOG.md | 11 +++++++ rest/players.rest | 30 +++++++++---------- storage/players-sqlite3.db | Bin 20480 -> 20480 bytes tests/player_stub.py | 25 ++++++++-------- tests/test_main.py | 18 +++++++++++- tools/seed_001_starting_eleven.py | 36 +++++++++++------------ tools/seed_002_substitutes.py | 47 +++++++++++++++++++----------- 7 files changed, 103 insertions(+), 64 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a91313a..c7e7cc9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -49,6 +49,17 @@ This project uses famous football coaches as release codenames, following an A-Z mutation key, full replace PUT, in-memory caching, integration-only tests (#482) +### Changed + +- Normalize player dataset: add Lo Celso (squad 27) as test fixture, + add Almada (squad 16) as seeded substitute, correct + Martínez/Fernández/Mac Allister/Messi field values, replace + pre-computed UUIDs with canonical UUID v5 values (namespace + `FIFA_WORLD_CUP_QATAR_2022_ARGENTINA_SQUAD`) (#543) +- Align CRUD test fixtures: Lo Celso (squad 27) for Create and Delete, + Messi (squad 10) for Retrieve, Damián Martínez (squad 23) for Update + (#543) + --- ## [2.0.0 - Capello] - 2026-03-17 diff --git a/rest/players.rest b/rest/players.rest index 8a06ea4..584b2a1 100644 --- a/rest/players.rest +++ b/rest/players.rest @@ -20,7 +20,7 @@ Accept: application/json # ------------------------------------------------------------------------------ # POST /players/ — Create -# Thiago Almada (squad 16): not seeded in the database, used as the creation +# Giovani Lo Celso (squad 27): not seeded in the database, used as the creation # fixture. No id in the body; the server generates a UUID v4 on creation. # ------------------------------------------------------------------------------ @@ -29,15 +29,14 @@ POST {{baseUrl}}/players/ Content-Type: application/json { - "firstName": "Thiago", - "middleName": "Ezequiel", - "lastName": "Almada", - "dateOfBirth": "2001-04-26T00:00:00.000Z", - "squadNumber": 16, - "position": "Attacking Midfield", - "abbrPosition": "AM", - "team": "Atlanta United FC", - "league": "Major League Soccer", + "firstName": "Giovani", + "lastName": "Lo Celso", + "dateOfBirth": "1996-07-09T00:00:00.000Z", + "squadNumber": 27, + "position": "Central Midfield", + "abbrPosition": "CM", + "team": "Real Betis Balompié", + "league": "La Liga", "starting11": false } @@ -51,11 +50,11 @@ Accept: application/json # ------------------------------------------------------------------------------ # GET /players/{player_id} — Retrieve by UUID (surrogate key, internal) -# Emiliano Martínez (squad 23): UUID v5, seeded by seed_001. +# Lionel Messi (squad 10): UUID v5, seeded by seed_001. # ------------------------------------------------------------------------------ ### GET /players/{player_id} — Retrieve a Player by UUID -GET {{baseUrl}}/players/b04965e6-a9bb-591f-8f8a-1adcb2c8dc39 +GET {{baseUrl}}/players/acc433bf-d505-51fe-831e-45eb44c4d43c Accept: application/json # ------------------------------------------------------------------------------ @@ -69,7 +68,8 @@ Accept: application/json # ------------------------------------------------------------------------------ # PUT /players/squadnumber/{squad_number} — Update -# Emiliano Martínez (squad 23): seeded by seed_001. +# Damián Martínez (squad 23): seeded by seed_001. Updates firstName Damián → +# Emiliano and clears middleName. # ------------------------------------------------------------------------------ ### PUT /players/squadnumber/{squad_number} — Update an existing Player @@ -91,8 +91,8 @@ Content-Type: application/json # ------------------------------------------------------------------------------ # DELETE /players/squadnumber/{squad_number} — Delete -# Thiago Almada (squad 16): created by POST above. +# Giovani Lo Celso (squad 27): created by POST above. # ------------------------------------------------------------------------------ ### DELETE /players/squadnumber/{squad_number} — Delete an existing Player -DELETE {{baseUrl}}/players/squadnumber/16 +DELETE {{baseUrl}}/players/squadnumber/27 diff --git a/storage/players-sqlite3.db b/storage/players-sqlite3.db index 210be57d52dad878bfa80f894b7fd616e033ed76..82dd18b810031606b78f64adf63eeefb0ba6a13a 100644 GIT binary patch delta 2710 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 diff --git a/tests/player_stub.py b/tests/player_stub.py index e0dc2c6..ca67088 100644 --- a/tests/player_stub.py +++ b/tests/player_stub.py @@ -35,9 +35,9 @@ def existing_player(): Creates a test stub for an existing Player. """ return Player( - id="b04965e6-a9bb-591f-8f8a-1adcb2c8dc39", - first_name="Emiliano", - middle_name="", + id="01772c59-43f0-5d85-b913-c78e4e281452", + first_name="Damián", + middle_name="Emiliano", last_name="Martínez", date_of_birth="1992-09-02T00:00:00.000Z", squad_number=23, @@ -55,16 +55,15 @@ def nonexistent_player(): No id is provided; the server generates a UUID on creation. """ return Player( - first_name="Thiago", - middle_name="Ezequiel", - last_name="Almada", - date_of_birth="2001-04-26T00:00:00.000Z", - squad_number=16, - position="Attacking Midfield", - abbr_position="AM", - team="Atlanta United FC", - league="Major League Soccer", - starting11=0, + first_name="Giovani", + last_name="Lo Celso", + date_of_birth="1996-07-09T00:00:00.000Z", + squad_number=27, + position="Central Midfield", + abbr_position="CM", + team="Real Betis Balompié", + league="La Liga", + starting11=False, ) diff --git a/tests/test_main.py b/tests/test_main.py index 9ed2f73..fe713d8 100644 --- a/tests/test_main.py +++ b/tests/test_main.py @@ -225,13 +225,29 @@ def test_request_put_player_squadnumber_existing_response_status_no_content(clie squad_number = existing_player().squad_number player = existing_player() player.first_name = "Emiliano" - player.middle_name = "" + player.middle_name = None # Act response = client.put( PATH + "squadnumber/" + str(squad_number), json=player.__dict__ ) # Assert assert response.status_code == 204 + # Teardown — restore Damián Martínez to its seeded state + client.put( + PATH + "squadnumber/23", + json={ + "firstName": "Damián", + "middleName": "Emiliano", + "lastName": "Martínez", + "dateOfBirth": "1992-09-02T00:00:00.000Z", + "squadNumber": 23, + "position": "Goalkeeper", + "abbrPosition": "GK", + "team": "Aston Villa FC", + "league": "Premier League", + "starting11": True, + }, + ) def test_request_put_player_squadnumber_mismatch_response_status_bad_request(client): diff --git a/tools/seed_001_starting_eleven.py b/tools/seed_001_starting_eleven.py index 0029173..be3e969 100644 --- a/tools/seed_001_starting_eleven.py +++ b/tools/seed_001_starting_eleven.py @@ -45,9 +45,9 @@ # --------------------------------------------------------------------------- STARTING_ELEVEN = [ { - "id": "b04965e6-a9bb-591f-8f8a-1adcb2c8dc39", - "firstName": "Emiliano", - "middleName": None, + "id": "01772c59-43f0-5d85-b913-c78e4e281452", + "firstName": "Damián", + "middleName": "Emiliano", "lastName": "Martínez", "dateOfBirth": "1992-09-02T00:00:00.000Z", "squadNumber": 23, @@ -58,7 +58,7 @@ "starting11": 1, }, { - "id": "4b166dbe-d99d-5091-abdd-95b83330ed3a", + "id": "da31293b-4c7e-5e0f-a168-469ee29ecbc4", "firstName": "Nahuel", "middleName": None, "lastName": "Molina", @@ -71,7 +71,7 @@ "starting11": 1, }, { - "id": "98123fde-012f-5ff3-8b50-881449dac91a", + "id": "c096c69e-762b-5281-9290-bb9c167a24a0", "firstName": "Cristian", "middleName": "Gabriel", "lastName": "Romero", @@ -84,7 +84,7 @@ "starting11": 1, }, { - "id": "6ed955c6-506a-5343-9be4-2c0afae02eef", + "id": "d5f7dd7a-1dcb-5960-ba27-e34865b63358", "firstName": "Nicolás", "middleName": "Hernán Gonzalo", "lastName": "Otamendi", @@ -97,7 +97,7 @@ "starting11": 1, }, { - "id": "c8691da2-158a-5ed6-8537-0e6f140801f2", + "id": "2f6f90a0-9b9d-5023-96d2-a2aaf03143a6", "firstName": "Nicolás", "middleName": "Alejandro", "lastName": "Tagliafico", @@ -110,7 +110,7 @@ "starting11": 1, }, { - "id": "a6c4fc8f-6950-51de-a9ae-2c519c465071", + "id": "b5b46e79-929e-5ed2-949d-0d167109c022", "firstName": "Ángel", "middleName": "Fabián", "lastName": "Di María", @@ -123,7 +123,7 @@ "starting11": 1, }, { - "id": "a9f96b98-dd44-5216-ab0d-dbfc6b262edf", + "id": "0293b282-1da8-562e-998e-83849b417a42", "firstName": "Rodrigo", "middleName": "Javier", "lastName": "de Paul", @@ -136,7 +136,7 @@ "starting11": 1, }, { - "id": "e99caacd-6c45-5906-bd9f-b79e62f25963", + "id": "d3ba552a-dac3-588a-b961-1ea7224017fd", "firstName": "Enzo", "middleName": "Jeremías", "lastName": "Fernández", @@ -144,12 +144,12 @@ "squadNumber": 24, "position": "Central Midfield", "abbrPosition": "CM", - "team": "Chelsea FC", - "league": "Premier League", + "team": "SL Benfica", + "league": "Liga Portugal", "starting11": 1, }, { - "id": "e4d80b30-151e-51b5-9f4f-18a3b82718e6", + "id": "9613cae9-16ab-5b54-937e-3135123b9e0d", "firstName": "Alexis", "middleName": None, "lastName": "Mac Allister", @@ -157,12 +157,12 @@ "squadNumber": 20, "position": "Central Midfield", "abbrPosition": "CM", - "team": "Liverpool FC", + "team": "Brighton & Hove Albion", "league": "Premier League", "starting11": 1, }, { - "id": "0159d6c7-973f-5e7a-a9a0-d195d0ea6fe2", + "id": "acc433bf-d505-51fe-831e-45eb44c4d43c", "firstName": "Lionel", "middleName": "Andrés", "lastName": "Messi", @@ -170,12 +170,12 @@ "squadNumber": 10, "position": "Right Winger", "abbrPosition": "RW", - "team": "Inter Miami CF", - "league": "Major League Soccer", + "team": "Paris Saint-Germain", + "league": "Ligue 1", "starting11": 1, }, { - "id": "7fef88f7-411d-5669-b42d-bf5fc7f9b58b", + "id": "38bae91d-8519-55a2-b30a-b9fe38849bfb", "firstName": "Julián", "middleName": None, "lastName": "Álvarez", diff --git a/tools/seed_002_substitutes.py b/tools/seed_002_substitutes.py index a64c481..dc454bb 100644 --- a/tools/seed_002_substitutes.py +++ b/tools/seed_002_substitutes.py @@ -1,7 +1,7 @@ """ Seed 002 – Substitutes -Seeds the 14 substitute players from the 2022 FIFA World Cup squad of the +Seeds the 15 substitute players from the 2022 FIFA World Cup squad of the Argentina national football team into an already-seeded `players` table (UUID primary key, created by Seed 001). @@ -13,7 +13,7 @@ Defaults to ./storage/players-sqlite3.db Idempotency: - If all 14 substitute UUIDs are already present the script exits without + If all 15 substitute UUIDs are already present the script exits without making any changes. Prerequisite: @@ -40,7 +40,7 @@ # --------------------------------------------------------------------------- SUBSTITUTES = [ { - "id": "52524d6e-10dc-5261-aa36-8b2efcbaa5f0", + "id": "5a9cd988-95e6-54c1-bc34-9aa08acca8d0", "firstName": "Franco", "middleName": "Daniel", "lastName": "Armani", @@ -53,7 +53,7 @@ "starting11": 0, }, { - "id": "91c274f2-9a0d-5ce6-ac3d-7529f452df21", + "id": "c62f2ac1-41e8-5d34-b073-2ba0913d0e31", "firstName": "Gerónimo", "middleName": None, "lastName": "Rulli", @@ -66,7 +66,7 @@ "starting11": 0, }, { - "id": "0ff1e264-520d-543a-87dd-181a491e667e", + "id": "5fdb10e8-38c0-5084-9a3f-b369a960b9c2", "firstName": "Juan", "middleName": "Marcos", "lastName": "Foyth", @@ -79,7 +79,7 @@ "starting11": 0, }, { - "id": "23986425-d3a5-5e13-8bab-299745777a8d", + "id": "bbd441f7-fcfb-5834-8468-2a9004b64c8c", "firstName": "Gonzalo", "middleName": "Ariel", "lastName": "Montiel", @@ -92,7 +92,7 @@ "starting11": 0, }, { - "id": "c15b38c9-9a3e-543c-a703-dd742f25b4d5", + "id": "d8bfea25-f189-5d5e-b3a5-ed89329b9f7c", "firstName": "Germán", "middleName": "Alejo", "lastName": "Pezzella", @@ -105,7 +105,7 @@ "starting11": 0, }, { - "id": "db680066-c83d-5ed7-89a4-1d79466ea62d", + "id": "dca343a8-12e5-53d6-89a8-916b120a5ee4", "firstName": "Marcos", "middleName": "Javier", "lastName": "Acuña", @@ -118,7 +118,7 @@ "starting11": 0, }, { - "id": "cadb7952-2bba-5609-88d4-8e47ec4e7920", + "id": "98306555-a466-5d18-804e-dc82175e697b", "firstName": "Lisandro", "middleName": None, "lastName": "Martínez", @@ -131,7 +131,7 @@ "starting11": 0, }, { - "id": "35140057-a2a4-5adb-a500-46f8ed8b66a9", + "id": "9d140400-196f-55d8-86e1-e0b96a375c83", "firstName": "Leandro", "middleName": "Daniel", "lastName": "Paredes", @@ -144,7 +144,7 @@ "starting11": 0, }, { - "id": "66e549b7-01e2-5d07-98d5-430f74d8d3b2", + "id": "d3b0e8e8-2c34-531a-b608-b24fed0ef986", "firstName": "Exequiel", "middleName": "Alejandro", "lastName": "Palacios", @@ -157,7 +157,7 @@ "starting11": 0, }, { - "id": "292c8e99-2378-55aa-83d8-350e0ac3f1cc", + "id": "7cc8d527-56a2-58bd-9528-2618fc139d30", "firstName": "Alejandro", "middleName": "Darío", "lastName": "Gómez", @@ -170,7 +170,7 @@ "starting11": 0, }, { - "id": "0e3b230a-0509-55d8-96a0-9875f387a2be", + "id": "191c82af-0c51-526a-b903-c3600b61b506", "firstName": "Guido", "middleName": None, "lastName": "Rodríguez", @@ -183,7 +183,7 @@ "starting11": 0, }, { - "id": "4c507660-a83b-55c0-9b2b-83eccb07723d", + "id": "b1306b7b-a3a4-5f7c-90fd-dd5bdbed57ba", "firstName": "Ángel", "middleName": "Martín", "lastName": "Correa", @@ -196,7 +196,20 @@ "starting11": 0, }, { - "id": "c2708a8b-120a-56f5-a30d-990048af87cc", + "id": "ecec27e8-487b-5622-b116-0855020477ed", + "firstName": "Thiago", + "middleName": "Ezequiel", + "lastName": "Almada", + "dateOfBirth": "2001-04-26T00:00:00.000Z", + "squadNumber": 16, + "position": "Attacking Midfield", + "abbrPosition": "AM", + "team": "Atlanta United FC", + "league": "Major League Soccer", + "starting11": 0, + }, + { + "id": "7941cd7c-4df1-5952-97e8-1e7f5d08e8aa", "firstName": "Paulo", "middleName": "Exequiel", "lastName": "Dybala", @@ -209,7 +222,7 @@ "starting11": 0, }, { - "id": "e7263999-68b6-5a23-b530-af25b7efd632", + "id": "79c96f29-c59f-5f98-96b8-3a5946246624", "firstName": "Lautaro", "middleName": "Javier", "lastName": "Martínez", @@ -242,7 +255,7 @@ def _table_exists(conn: sqlite3.Connection) -> bool: def _already_migrated(conn: sqlite3.Connection) -> bool: - """Return True when all 14 substitute UUIDs are already in the table.""" + """Return True when all 15 substitute UUIDs are already in the table.""" uuids = [p["id"] for p in SUBSTITUTES] placeholders = ",".join("?" * len(uuids)) cursor = conn.execute( From 8c4b2843de0074f89cd515caebaf5f6b23f6c812 Mon Sep 17 00:00:00 2001 From: Nano Taboada <87288+nanotaboada@users.noreply.github.com> Date: Tue, 31 Mar 2026 21:30:18 -0300 Subject: [PATCH 2/2] fix(data): address PR review findings (#543) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - CHANGELOG: add Docker volume note to dataset normalization entry - test: wrap PUT act/assert in try/finally so teardown runs on failure; replace hardcoded Martínez JSON with existing_player() stub Co-authored-by: Claude Sonnet 4.6 --- CHANGELOG.md | 6 +++++- tests/test_main.py | 33 +++++++++++---------------------- 2 files changed, 16 insertions(+), 23 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c7e7cc9..c060ac1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -55,7 +55,11 @@ This project uses famous football coaches as release codenames, following an A-Z add Almada (squad 16) as seeded substitute, correct Martínez/Fernández/Mac Allister/Messi field values, replace pre-computed UUIDs with canonical UUID v5 values (namespace - `FIFA_WORLD_CUP_QATAR_2022_ARGENTINA_SQUAD`) (#543) + `FIFA_WORLD_CUP_QATAR_2022_ARGENTINA_SQUAD`); bundled + `storage/players-sqlite3.db` rebuilt from seed scripts — Docker + deployments with a persisted volume will continue to use the old + database until the volume is recreated (`docker compose down -v && + docker compose up --build`) (#543) - Align CRUD test fixtures: Lo Celso (squad 27) for Create and Delete, Messi (squad 10) for Retrieve, Damián Martínez (squad 23) for Update (#543) diff --git a/tests/test_main.py b/tests/test_main.py index fe713d8..dafbc79 100644 --- a/tests/test_main.py +++ b/tests/test_main.py @@ -226,28 +226,17 @@ def test_request_put_player_squadnumber_existing_response_status_no_content(clie player = existing_player() player.first_name = "Emiliano" player.middle_name = None - # Act - response = client.put( - PATH + "squadnumber/" + str(squad_number), json=player.__dict__ - ) - # Assert - assert response.status_code == 204 - # Teardown — restore Damián Martínez to its seeded state - client.put( - PATH + "squadnumber/23", - json={ - "firstName": "Damián", - "middleName": "Emiliano", - "lastName": "Martínez", - "dateOfBirth": "1992-09-02T00:00:00.000Z", - "squadNumber": 23, - "position": "Goalkeeper", - "abbrPosition": "GK", - "team": "Aston Villa FC", - "league": "Premier League", - "starting11": True, - }, - ) + try: + # Act + response = client.put( + PATH + "squadnumber/" + str(squad_number), json=player.__dict__ + ) + # Assert + assert response.status_code == 204 + finally: + # Teardown — restore Damián Martínez to its seeded state + seed = existing_player() + client.put(PATH + "squadnumber/" + str(seed.squad_number), json=seed.__dict__) def test_request_put_player_squadnumber_mismatch_response_status_bad_request(client):