-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest_day.py
56 lines (49 loc) · 1.97 KB
/
test_day.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import unittest
from datetime import datetime
from datetime import timedelta
from freezegun import freeze_time
import data
class DayTestCase(unittest.TestCase):
def setUp(self):
date = datetime.strptime('2017-01-01', '%Y-%m-%d').date()
goal = datetime.strptime('08:00', "%H:%M")
goal = timedelta(hours=goal.hour, minutes=goal.minute)
workArray = [
data.block.Work(
datetime.strptime('08:00', '%H:%M').time(),
"cat",
datetime.strptime('12:00', '%H:%M').time()
),
data.block.Work(
datetime.strptime('12:30', '%H:%M').time(),
"cat",
datetime.strptime('17:00', '%H:%M').time()
)
]
self.testDay = data.Day(date, goal, None, workArray)
def test_overtime(self):
overtime = self.testDay.getOvertime()
self.assertEqual(overtime, timedelta(minutes=30))
def test_currentWork(self):
currentWork = self.testDay.getCurrentWork()
self.assertEqual(currentWork, timedelta(hours=8, minutes=30))
def test_pauseTime(self):
with freeze_time('2017-01-01 17:00'):
pauseTime = self.testDay.getPausetime()
self.assertEqual(pauseTime, timedelta(minutes=30))
with freeze_time('2017-01-01 17:30'):
pauseTime = self.testDay.getPausetime()
self.assertEqual(pauseTime, timedelta(minutes=60))
def test_isRunning(self):
date = datetime.strptime('2017-01-01', '%Y-%m-%d').date()
goal = datetime.strptime('08:00', "%H:%M")
goal = timedelta(hours=goal.hour, minutes=goal.minute)
workArray = [
data.block.Work('8:00', '', '12:00'),
data.block.Work('12:30')
]
runningDay = data.Day(date, goal, None, workArray)
self.assertEqual(1, runningDay.isRunning())
self.assertEqual(0, self.testDay.isRunning())
if __name__ == '__main__':
unittest.main()