Ajout de tests pour les statistiques de revue. Closes #7

This commit is contained in:
Mindiell 2024-06-27 18:59:42 +02:00
parent 65595039e1
commit c4a3e78967
2 changed files with 31 additions and 31 deletions

View File

View File

@ -8,37 +8,7 @@ from review.stats import Board, UserBoard, DurationBoard, ReviewData, ReviewStat
def setup_function(): def setup_function():
shutil.copyfile("tests/datas/reviewstats_1.csv", "tests/reviews/reviewstats_1.csv") shutil.copyfile("tests/datas/reviewstats_1.csv", "tests/reviews/reviewstats_1.csv")
shutil.copyfile("tests/datas/reviewstats_2.csv", "tests/reviews/reviewstats_2.csv") shutil.copyfile("tests/datas/reviewstats_2.csv", "tests/reviews/reviewstats_2.csv")
shutil.copyfile("tests/datas/reviewstats_empty.csv", "tests/reviews/reviewstats_empty.csv")
def load_reviewstats(filepath):
final_datas = []
try:
with open(filepath) as file_handle:
lines = file_handle.read().splitlines()
for line in lines:
if line.strip() != "":
datas = re.split(r"\s+", line)
if len(datas) == 2:
final_datas.append(
ReviewData(
datetime.strptime(datas[0], "%Y%m%d-%Hh%M"),
int(datas[1]),
None,
)
)
else:
final_datas.append(
ReviewData(
datetime.strptime(datas[0], "%Y%m%d-%Hh%M"),
int(datas[1]),
int(datas[2]),
)
)
except FileNotFoundError:
# no file, no stats
pass
return final_datas
def test_board(): def test_board():
@ -84,3 +54,33 @@ def test_durationboard():
assert board.max == 17 assert board.max == 17
assert board.sum == 49 assert board.sum == 49
assert board.avg == 7.0 assert board.avg == 7.0
def test_reviewstats():
review = ReviewStats("tests/reviews/reviewstats_2.csv")
review.load()
assert review.size == 16
assert review.first is not None
assert review.biggest is not None
assert review.min_users == 1
assert review.max_users == 10
assert review.avg_users == 3.1875
assert review.min_duration == 3
assert review.max_duration == 17
assert review.avg_duration == 7.0
assert review.year_review(2012) == 2
def test_reviewstats_empty():
review = ReviewStats("tests/reviews/reviewstats_empty.csv")
review.load()
assert review.size == 0
assert review.first is None
assert review.biggest is None
assert review.min_users == 0
assert review.max_users == 0
assert review.avg_users == 0
assert review.min_duration == 0
assert review.max_duration == 0
assert review.avg_duration == 0
assert review.year_review(2012) == 0