forked from mindiell/hebdobot
Ajout de tests pour les statistiques des revues
This commit is contained in:
parent
27df2d4d65
commit
65595039e1
16
tests/datas/reviewstats_1.csv
Normal file
16
tests/datas/reviewstats_1.csv
Normal file
@ -0,0 +1,16 @@
|
||||
20110930-12h00 1
|
||||
20111007-12h00 2
|
||||
20111014-12h00 4
|
||||
20111021-12h00 5
|
||||
20111028-12h00 10
|
||||
20111104-12h00 6
|
||||
20111111-12h00 1
|
||||
20111118-12h00 2
|
||||
20111125-12h00 4
|
||||
20111202-12h00 5
|
||||
20111209-12h00 1
|
||||
20111216-12h00 2
|
||||
20111223-12h00 4
|
||||
20111230-12h00 1
|
||||
20120106-12h00 2
|
||||
20120113-12h00 1
|
|
16
tests/datas/reviewstats_2.csv
Normal file
16
tests/datas/reviewstats_2.csv
Normal file
@ -0,0 +1,16 @@
|
||||
20110930-12h00 1
|
||||
20111007-12h00 2
|
||||
20111014-12h00 4
|
||||
20111021-12h00 5
|
||||
20111028-12h00 10
|
||||
20111104-12h00 6
|
||||
20111111-12h00 1
|
||||
20111118-12h00 2
|
||||
20111125-12h00 4
|
||||
20111202-12h00 5 3
|
||||
20111209-12h00 1 7
|
||||
20111216-12h00 2 17
|
||||
20111223-12h00 4 5
|
||||
20111230-12h00 1 9
|
||||
20120106-12h00 2 5
|
||||
20120113-12h00 1 3
|
|
86
tests/test_review_stats.py
Normal file
86
tests/test_review_stats.py
Normal file
@ -0,0 +1,86 @@
|
||||
from datetime import datetime, timedelta
|
||||
import re
|
||||
import shutil
|
||||
|
||||
from review.stats import Board, UserBoard, DurationBoard, ReviewData, ReviewStats
|
||||
|
||||
|
||||
def setup_function():
|
||||
shutil.copyfile("tests/datas/reviewstats_1.csv", "tests/reviews/reviewstats_1.csv")
|
||||
shutil.copyfile("tests/datas/reviewstats_2.csv", "tests/reviews/reviewstats_2.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():
|
||||
board = Board()
|
||||
assert board.datas == {}
|
||||
assert board["test"] == 0
|
||||
assert board.position("test") is None
|
||||
assert board.min == 0
|
||||
assert board.max == 0
|
||||
assert board.avg == 0
|
||||
assert board.sum == 0
|
||||
|
||||
|
||||
def test_userboard():
|
||||
review = ReviewStats("tests/reviews/reviewstats_1.csv")
|
||||
review.load()
|
||||
board = review.users_board
|
||||
assert board["test"] == 0
|
||||
assert board[1] == 5
|
||||
assert board.min == 1
|
||||
assert board.max == 10
|
||||
assert board.sum == 51
|
||||
assert board.avg == 3.1875
|
||||
|
||||
|
||||
def test_durationboard():
|
||||
review = ReviewStats("tests/reviews/reviewstats_1.csv")
|
||||
review.load()
|
||||
board = review.durations_board
|
||||
assert board["test"] == 0
|
||||
assert board.min == 0
|
||||
assert board.max == 0
|
||||
assert board.sum == 0
|
||||
assert board.avg == 0
|
||||
|
||||
|
||||
def test_durationboard():
|
||||
review = ReviewStats("tests/reviews/reviewstats_2.csv")
|
||||
review.load()
|
||||
board = review.durations_board
|
||||
assert board["test"] == 0
|
||||
assert board.min == 3
|
||||
assert board.max == 17
|
||||
assert board.sum == 49
|
||||
assert board.avg == 7.0
|
Loading…
Reference in New Issue
Block a user