-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Katselmoin sovelluksesta versiota joka ladattu 29.4 klo 19.24.
-
Vaatimusmäärittelyssä selkeästi listattuna kaikki valmis ja keskeneräinen toiminnallisuus (kuten pelaajan lisääminen ja eventtien näkyminen) ja kaikki mitä käytettävyydessä itse huomasin oli huomioituna tulevaan.
-
Ohjelmisto on lohkottu järkeviin kokonaisuuksiin luokka, hakemisto ja tiedostotasolla. Myös on mukailtu referenssisovelluksen tyylistä ui, service, repositories tyyliä oikein. Pieni hämmennys siitä mitä scorekeeper_view.py teki mutta ilmeisesti ei olla vielä implementoitu :).
-
Lint antaa täyden kympin!
-
Nimeäminen on kaikinpuolin selkeää metodeista luokkiin. Lisäksii docstringit mallikkaasti toteutettu!
-
Virhekäsittelyä on runsaasti ja osalla tulee selkeä popup asiasta. Ainakin uuden pelaajan lisääminen samalla pelinumerolla tällä hetkellä vain komentoriville ilmoituksen.
-
Jostain syystä Team luokkaan ei asetu team_id kunnolla ja esim tietokantaan events tauluun tulee aina team_id kohdalle NULL.
-
Jos mahdollista niin siirtäisin käyttöliittymästä (game_view, scorekeeper_view) suorat entities viittaukset servicen alle. Näin Käyttöliittymä olisi riippuvainen pelkästään servicestä.
-
Tällä hetkellä on repositorioissa runsaasti metodeja joita ei käytetä käsittääkseni missään. Esimerkiksi game_repositoryn get_all_game() ja event_repositoryn get_all_events(). Arvatenkin tehty valmiiksi tulevaisuutta varten, mutta muista poistaa tarpeeton koodi viimeistä palautusta varten.
En ole varma onko vain omassa päässä vika mutta testit menevät pieleen ja tulee:
self = <src.services.score_service.ScoreService object at 0x797be7f836f0>, team1_name = 'test_team1', team2_name = 'test_team2'
def start_new_game(self, team1_name, team2_name):
"""Start a new game with selected teams.
Args:
team1_name (str): Name of home team
team2_name (str): Name of away team
Returns:
Game: Started game instance
Raises:
ValueError: If either team doesn't exist
"""
team1 = self.team_repository.get_team_by_name(team1_name)
team2 = self.team_repository.get_team_by_name(team2_name)
if not team1 or not team2:
> raise ValueError("Both teams must exist")
E ValueError: Both teams must exist
src/services/score_service.py:76: ValueError
FAILED src/tests/services/scorekeeper_test.py::TestScoreService::test_add_event - ValueError: Both teams must exist
FAILED src/tests/services/scorekeeper_test.py::TestScoreService::test_add_team - ValueError: Both teams must exist
FAILED src/tests/services/scorekeeper_test.py::TestScoreService::test_events_after_initialization - ValueError: Both teams must exist
FAILED src/tests/services/scorekeeper_test.py::TestScoreService::test_get_score - ValueError: Both teams must exist
FAILED src/tests/services/scorekeeper_test.py::TestScoreService::test_get_teams - ValueError: Both teams must exist
Eli testatessa tietokannasta ei löydy tiimejä. Johtuu käsittääkseni siitä että testien aikana test_team1 ja test_team2 ei lisätä tietokantaan ja start_new_game etsii team_repositoriosta niitä
ja nostetaan ValueError("Both teams must exist").