def test_calculate_daily_wage(self): """ Test that the daily wage is correctly calculated Tests: -regular with perfect in out -regular day with slightly over in out -day with over time -sunday with no overtime -sunday with overtime """ #Regular day with perfect in out a = Attendance(employee=self.employee, start_time=datetime(2014, 7, 1, 8, 0), end_time=datetime(2014, 7, 1, 17, 0)) wage = self.employee._calculate_daily_wages(a) self.assertEqual(wage, 550) #Regular day with slightly imperfect in out a = Attendance(employee=self.employee, start_time=datetime(2014, 7, 1, 8, 0), end_time=datetime(2014, 7, 1, 17, 14)) wage = self.employee._calculate_daily_wages(a) self.assertEqual(wage, 550) #Day with over time a = Attendance(employee=self.employee, start_time=datetime(2014, 7, 1, 8, 0), end_time=datetime(2014, 7, 1, 20, 0)) self.assertEqual(a.total_time, 11) self.assertEqual(a.overtime, 3) self.assertEqual(a.regular_time, 8) wage = self.employee._calculate_daily_wages(a) self.assertEqual(wage, 859.375) #Sunday with no overtime a = Attendance(employee=self.employee, start_time=datetime(2014, 7, 6, 8, 0), end_time=datetime(2014, 7, 6, 17, 0)) self.assertEqual(a.total_time, 8) self.assertEqual(a.overtime, 0) self.assertEqual(a.regular_time, 8) wage = self.employee._calculate_daily_wages(a) self.assertEqual(wage, 1100) #Sunday with over time a = Attendance(employee=self.employee, start_time=datetime(2014, 7, 6, 8, 0), end_time=datetime(2014, 7, 6, 20, 0)) self.assertEqual(a.total_time, 11) self.assertEqual(a.overtime, 3) self.assertEqual(a.regular_time, 8) wage = self.employee._calculate_daily_wages(a) self.assertEqual(wage, 1718.75)
def setUp(self): """ Set up the Testing clas: """ super(AttendanceTest, self).setUp() #self.client.client.login(username='******', password='******') self.shift = Shift(start_time=time(8, 0), end_time=time(17, 0)) self.shift.save() self.employee = Employee(shift=self.shift, **employee2_data) self.employee.save() # Regular attendance self.attendance = Attendance( date=date(2014, 7, 1), start_time=timezone('Asia/Bangkok').localize( datetime(2014, 7, 1, 7, 30, 0)), end_time=timezone('Asia/Bangkok').localize( datetime(2014, 7, 1, 23, 33, 0)), employee=self.employee, shift=self.shift) self.attendance.save() # Sunday attendance self.sunday_attendance = Attendance( date=date(2016, 2, 7), start_time=timezone('Asia/Bangkok').localize( datetime(2016, 2, 7, 8, 02, 0)), end_time=timezone('Asia/Bangkok').localize( datetime(2016, 2, 7, 23, 15, 0)), employee=self.employee, shift=self.shift) self.sunday_attendance.save() self.tz = timezone('Asia/Bangkok')
def test_end_time_property(self): """Test that the getter and setter for start time work properly """ a = Attendance(employee=self.employee, date=date(2016, 3, 21)) d1 = datetime(2016, 3, 21, 15, 29, 0) # Test start time without timezone a.end_time = d1 self.assertEqual(a._end_time, self.tz.localize(d1)) self.assertEqual(a.end_time, self.tz.localize(d1)) # Test start time with timezone a.end_time = self.tz.localize(d1) self.assertEqual(a._end_time, self.tz.localize(d1)) self.assertEqual(a.end_time, self.tz.localize(d1))
def setUp(self): """ Set up the Testing class: -self.employee = salary worker -self.employee = daily worker -self.employee3 = daily worker with no legal status """ super(Employee3Test, self).setUp() self.employee = Employee(**employee3_data) self.employee.save() for day in xrange(1, 15): hour = 20 if day % 2 > 0 else 17 a = Attendance(employee=self.employee, start_time=datetime(2014, 7, day, 8, 0), end_time=datetime(2014, 7, day, hour, 0)) a.save()