Skip to content

Commit

Permalink
dokumentaatiota lisätty
Browse files Browse the repository at this point in the history
  • Loading branch information
vejol committed May 14, 2023
1 parent 08307c6 commit 1321167
Show file tree
Hide file tree
Showing 9 changed files with 84 additions and 24 deletions.
2 changes: 1 addition & 1 deletion .env
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ BLUE_IMG_FILENAME=blue.png
RED_IMG_FILENAME=red.png
NAME_CHAR_LIMIT=100
WORD_CHAR_LIMIT=12
RED_WORDS_COUNT=2
RED_WORDS_COUNT=4
Binary file modified data/test-database.sqlite
Binary file not shown.
Binary file added dokumentaatio/kuvat/testikattavuus.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 3 additions & 1 deletion dokumentaatio/testaus.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,9 @@ Ohjelman QuizRepository-luokalle on käytössä omat, testejä varten luotavat t

### Testauskattavuus

Sovelluksen testauskattavuus on 93%. Käyttöliittymän testaaminen on suoritettu manuaalisesti, eikä se sisälly tähän testauskattavuuteen.
Sovelluksen testauskattavuus on 96%. Käyttöliittymän testaaminen on suoritettu manuaalisesti, eikä se sisälly tähän testauskattavuuteen.

![testikattavuus](./kuvat/testikattavuus.png)

Testikattavuuden ulkopuolelle jäi testattavista tiedostoista vain yksittäisiä rivejä, kuten _build.py-_ ja _initialize_database.py_-tiedostojen komentoriviltä suorittaminen.

Expand Down
2 changes: 0 additions & 2 deletions src/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,5 +33,3 @@
assert RED_WORDS_COUNT < 0 and RED_WORDS_COUNT > 5
except (AssertionError, TypeError, ValueError):
RED_WORDS_COUNT = 2


7 changes: 7 additions & 0 deletions src/repositories/quiz_repository.py
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,13 @@ def save_quiz(self, quiz):
self._connection.commit()

def update_quiz(self, updated_quiz, old_name):
"""Päivittää annetun visailun tiedot tietokantaan.
Args:
updated_quiz: Päivitetty visailu Quiz-oliona.
old_name: Merkkijono, joka kuvaa visailun aiempaa nimeä.
Tämän perusteella visailu on mahdollista löytää tietokannasta.
"""

cursor = self._connection.cursor()

Expand Down
73 changes: 55 additions & 18 deletions src/services/game_service.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
from config import RED_WORDS_COUNT
from random import sample
from config import RED_WORDS_COUNT


class GameService:
"""Luokka, joka vastaa pelilogiikasta."""
Expand All @@ -17,41 +18,48 @@ def __init__(self, quiz):
self._red_words = []
self._initialize_puzzle()

def _initialize_puzzle(self):
self._current_puzzle = self._quiz.puzzles.pop(0)
self._red_words = sample([0, 1, 2, 3, 4], RED_WORDS_COUNT)

def next_puzzle(self):
self._initialize_puzzle()
def add_point(self, team):
"""Lisää pisteen annetulle joukkueelle.
def puzzles_available(self):
return len(self._quiz.puzzles) > 0
Args:
team: Merkkijono, joka kuvaa joukkueen nimeä.
def add_point(self, team):
Returns:
Kokonaisluku, joka kuvaa joukkueen uutta pistetilannetta.
"""
self._points[team] += 1
return self._points[team]

def dec_point(self, team):
"""Vähentää pisteen annetulta joukkueelta.
Args:
team: Merkkijono, joka kuvaa joukkueen nimeä.
Returns:
Kokonaisluku, joka kuvaa joukkueen uutta pistetilannetta.
"""
self._points[team] -= 1
return self._points[team]

def get_answer(self):
"""Palauttaa arvoituksen vastauksen.
Returns:
Merkkijono, joka kuvaa arvoituksen oikeaa vastausta.
"""
return self._current_puzzle.name

def get_points(self, team):
return self._points[team]

def red_word(self, index):
"""Kertoo, onko kyseisen indeksin sana punainen.
"""Palauttaa annetun tiimin pisteet.
Args:
index : Kokonaisluku, joka kuvaa halutun sanan indeksiä.
team: halutun tiimin nimi merkkijonona, joko "team1" tai "team2"
Returns:
Totuusarvo, joka kuvaa, onko kysytyn indeksin sana punainen.
Kokonaisluku, joka kuvaa joukkueen pisteitä.
"""

return index in self._red_words
return self._points[team]

def get_word(self, index):
"""Paljastaa valitun sanan.
Expand All @@ -64,3 +72,32 @@ def get_word(self, index):
"""

return self._current_puzzle.words[index]

def next_puzzle(self):
"""Siirtää ohjelman tilan seuraavaksi vuorossa olevaan arvoitukseen.
"""
self._initialize_puzzle()

def puzzles_available(self):
"""Kertoo, onko arvoituksia vielä jäljellä.
Returns:
Totuusarvo, joka kuvaa, onko arvoituksia vielä jäljellä
"""
return len(self._quiz.puzzles) > 0

def red_word(self, index):
"""Kertoo, onko kyseisen indeksin sana punainen.
Args:
index : Kokonaisluku, joka kuvaa halutun sanan indeksiä.
Returns:
Totuusarvo, joka kuvaa, onko kysytyn indeksin sana punainen.
"""

return index in self._red_words

def _initialize_puzzle(self):
self._current_puzzle = self._quiz.puzzles.pop(0)
self._red_words = sample([0, 1, 2, 3, 4], RED_WORDS_COUNT)
12 changes: 10 additions & 2 deletions src/services/management_service.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
from entities.puzzle import Puzzle
from entities.quiz import Quiz
from repositories.quiz_repository import QuizRepository

class ManagementService:
"""Luokka, joka vastaa sovelluksen logiikasta."""

def __init__(self, repository):
"""Luokan konstruktori. Luo uuden sovelluksen logiikasta vastaavan palvelun."""
"""Luokan konstruktori. Luo uuden sovelluksen logiikasta vastaavan palvelun.
Args:
repository: Olio, joka vastaa tiedon pysyväistallennukseen liittyvistä operaatioista.
"""
self._repository = repository


Expand All @@ -20,6 +23,11 @@ def add_quiz(self, quiz):
self._repository.save_quiz(quiz)

def delete_quiz(self, quiz_name):
"""Poistaa visailun tietokannasta annetun nimen perusteella.
Args:
quiz_name: Merkkijono, joka kuvaa visailun nimeä.
"""
self._repository.delete_quiz(quiz_name)


Expand Down
8 changes: 8 additions & 0 deletions src/tests/repositories/quiz_repository_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,13 @@ def test_save_quiz(self):
self.assertEqual(quiz1.puzzles[0].words, ["ONE", "TWO", "THREE", "FOUR", "FIVE"])
self.assertEqual(quiz2.puzzles[0].words, ["SIX", "SEVEN", "EIGHT", "NINE", "TEN"])

def test_update_quiz(self):
self.repository.save_quiz(self.quiz1)
self.quiz1.name = "New Name"
self.repository.update_quiz(self.quiz1, "Test Quiz 1")

quizzes = self.repository.find_all_quizzes()
self.assertTrue("New Name" in quizzes)

def test_delete_all(self):
quizzes = self.repository.find_quiz_names()
Expand Down Expand Up @@ -60,3 +67,4 @@ def test_find_all_quizzes(self):
self.assertTrue("Test Quiz 1" in quizzes)
self.assertTrue("Test Quiz 2" in quizzes)


0 comments on commit 1321167

Please sign in to comment.