def test_01(self): """Start""" date = Datetime.to_string(Datetime.from_string('2014-01-01 00:00:00')) self.mock_datetime.now.return_value = date self.assertAlmostEqual(self.line.theoritical_amount, 0)
def test_02(self): """After 24 hours""" date = Datetime.to_string(Datetime.from_string('2014-01-02 00:00:00')) self.mock_datetime.now.return_value = date self.assertAlmostEqual(self.line.theoritical_amount, -1)
def test_09(self): """One day before""" date = Datetime.to_string(Datetime.from_string('2014-12-30 00:00:00')) self.mock_datetime.now.return_value = date self.assertAlmostEqual(self.line.theoritical_amount, -363)
def test_10(self): """At last""" date = Datetime.to_string(Datetime.from_string('2014-12-31 00:00:00')) self.mock_datetime.now.return_value = date self.assertAlmostEqual(self.line.theoritical_amount, -364)
def setUp(self): super(TestResourceCommon, self).setUp() self.env.user.tz = 'UTC' # Some demo data self.date1 = Datetime.from_string( '2013-02-12 09:08:07' ) # weekday() returns 1, isoweekday() returns 2 self.date2 = Datetime.from_string( '2013-02-15 10:11:12' ) # weekday() returns 4, isoweekday() returns 5 # Resource data # Calendar working days: 1 (8-16 -> 8hours), 4 (8-13, 16-23 -> 12hours) self.calendar = self.env['resource.calendar'].create({ 'name': 'TestCalendar', 'attendance_ids': [(5, 0, 0)] }) self.att_1 = self.env['resource.calendar.attendance'].create({ 'name': 'Att1', 'calendar_id': self.calendar.id, 'dayofweek': '1', 'hour_from': 8, 'hour_to': 16 }) self.att_2 = self.env['resource.calendar.attendance'].create({ 'name': 'Att2', 'calendar_id': self.calendar.id, 'dayofweek': '4', 'hour_from': 8, 'hour_to': 13 }) self.att_3 = self.env['resource.calendar.attendance'].create({ 'name': 'Att3', 'calendar_id': self.calendar.id, 'dayofweek': '4', 'hour_from': 16, 'hour_to': 23 }) self.resource1_id = self.env['resource.resource'].create({ 'name': 'TestResource1', 'resource_type': 'user', 'time_efficiency': 150.0, 'calendar_id': self.calendar.id, }).id # Leave1: 19/02/2013, from 9 to 12, is a day 1 self.leave1 = self.env['resource.calendar.leaves'].create({ 'name': 'GenericLeave', 'calendar_id': self.calendar.id, 'date_from': Datetime.from_string('2013-02-19 09:00:00'), 'date_to': Datetime.from_string('2013-02-19 12:00:00') }) # Leave2: 22/02/2013, from 9 to 15, is a day 4 self.leave2 = self.env['resource.calendar.leaves'].create({ 'name': 'ResourceLeave', 'calendar_id': self.calendar.id, 'resource_id': self.resource1_id, 'date_from': Datetime.from_string('2013-02-22 09:00:00'), 'date_to': Datetime.from_string('2013-02-22 15:00:00') }) # Leave3: 25/02/2013 (day0) -> 01/03/2013 (day4) self.leave3 = self.env['resource.calendar.leaves'].create({ 'name': 'ResourceLeave2', 'calendar_id': self.calendar.id, 'resource_id': self.resource1_id, 'date_from': Datetime.from_string('2013-02-25 13:00:00'), 'date_to': Datetime.from_string('2013-03-01 11:30:00') })
def test_08(self): """After 308 days at noon""" date = Datetime.to_string( Datetime.from_string('2014-11-05 12:00:00')) # remember, remember self.mock_datetime.now.return_value = date self.assertAlmostEqual(self.line.theoritical_amount, -308.5)
def _get_acquisition_date(self): self.ensure_one() return babel.dates.format_date( date=Datetime.from_string(self.acquisition_date), format='MMMM y', locale=self._context.get('lang') or 'en_US')
def test_07(self): """After 182 days, exactly half of the budget line""" date = Datetime.to_string(Datetime.from_string('2014-07-02 00:00:00')) self.mock_datetime.now.return_value = date self.assertAlmostEqual(self.line.theoritical_amount, -182)
def setUpClass(cls): super(TestLeadConvert, cls).setUpClass() date = Datetime.from_string('2020-01-20 16:00:00') cls.crm_lead_dt_mock.now.return_value = date
def test_calendar_hours_scheduling_forward_leaves_resource(self): res = self.calendar._schedule_hours( 40, day_dt=Datetime.from_string('2013-02-12 09:00:00'), compute_leaves=True, resource_id=self.resource1_id) self.assertEqual(res[0][:2], (Datetime.from_string('2013-02-12 09:00:00'), Datetime.from_string('2013-02-12 16:00:00'))) self.assertEqual(res[1][:2], (Datetime.from_string('2013-02-15 08:00:00'), Datetime.from_string('2013-02-15 13:00:00'))) self.assertEqual(res[2][:2], (Datetime.from_string('2013-02-15 16:00:00'), Datetime.from_string('2013-02-15 23:00:00'))) self.assertEqual(res[3][:2], (Datetime.from_string('2013-02-19 08:00:00'), Datetime.from_string('2013-02-19 09:00:00'))) self.assertEqual(res[4][:2], (Datetime.from_string('2013-02-19 12:00:00'), Datetime.from_string('2013-02-19 16:00:00'))) self.assertEqual(res[5][:2], (Datetime.from_string('2013-02-22 08:00:00'), Datetime.from_string('2013-02-22 09:00:00'))) self.assertEqual(res[6][:2], (Datetime.from_string('2013-02-22 16:00:00'), Datetime.from_string('2013-02-22 23:00:00'))) self.assertEqual(res[7][:2], (Datetime.from_string('2013-03-01 11:30:00'), Datetime.from_string('2013-03-01 13:00:00'))) self.assertEqual(res[8][:2], (Datetime.from_string('2013-03-01 16:00:00'), Datetime.from_string('2013-03-01 22:30:00'))) td = timedelta() for item in res: td += item[1] - item[0] self.assertEqual(td.total_seconds() / 3600.0, 40.0)
def test_calendar_hours_scheduling_forward(self): res = self.calendar._schedule_hours( 40, day_dt=Datetime.from_string('2013-02-12 09:00:00')) self.assertEqual(res[0][:2], (Datetime.from_string('2013-02-12 09:00:00'), Datetime.from_string('2013-02-12 16:00:00'))) self.assertEqual(res[1][:2], (Datetime.from_string('2013-02-15 08:00:00'), Datetime.from_string('2013-02-15 13:00:00'))) self.assertEqual(res[2][:2], (Datetime.from_string('2013-02-15 16:00:00'), Datetime.from_string('2013-02-15 23:00:00'))) self.assertEqual(res[3][:2], (Datetime.from_string('2013-02-19 08:00:00'), Datetime.from_string('2013-02-19 16:00:00'))) self.assertEqual(res[4][:2], (Datetime.from_string('2013-02-22 08:00:00'), Datetime.from_string('2013-02-22 13:00:00'))) self.assertEqual(res[5][:2], (Datetime.from_string('2013-02-22 16:00:00'), Datetime.from_string('2013-02-22 23:00:00'))) self.assertEqual(res[6][:2], (Datetime.from_string('2013-02-26 08:00:00'), Datetime.from_string('2013-02-26 09:00:00'))) td = timedelta() for item in res: td += item[1] - item[0] self.assertEqual(td.total_seconds() / 3600.0, 40.0) res = self.calendar.plan_hours( 40, day_dt=Datetime.from_string('2013-02-12 09:00:00')) self.assertEqual(res, Datetime.from_string('2013-02-26 09:00:00'))
def test_calendar_hours_scheduling_backward(self): res = self.calendar._schedule_hours( -40, day_dt=Datetime.from_string('2013-02-12 09:00:00')) # current day, limited at 09:00 because of day_dt specified -> 1 hour self.assertEqual(res[-1][:2], (Datetime.from_string('2013-02-12 08:00:00'), Datetime.from_string('2013-02-12 09:00:00'))) # previous days: 5+7 hours / 8 hours / 5+7 hours -> 32 hours self.assertEqual(res[-2][:2], (Datetime.from_string('2013-02-08 16:00:00'), Datetime.from_string('2013-02-08 23:00:00'))) self.assertEqual(res[-3][:2], (Datetime.from_string('2013-02-08 08:00:00'), Datetime.from_string('2013-02-08 13:00:00'))) self.assertEqual(res[-4][:2], (Datetime.from_string('2013-02-05 08:00:00'), Datetime.from_string('2013-02-05 16:00:00'))) self.assertEqual(res[-5][:2], (Datetime.from_string('2013-02-01 16:00:00'), Datetime.from_string('2013-02-01 23:00:00'))) self.assertEqual(res[-6][:2], (Datetime.from_string('2013-02-01 08:00:00'), Datetime.from_string('2013-02-01 13:00:00'))) # 7 hours remaining self.assertEqual(res[-7][:2], (Datetime.from_string('2013-01-29 09:00:00'), Datetime.from_string('2013-01-29 16:00:00'))) # Compute scheduled hours td = timedelta() for item in res: td += item[1] - item[0] self.assertEqual(td.total_seconds() / 3600.0, 40.0) res = self.calendar.plan_hours( -40, day_dt=Datetime.from_string('2013-02-12 09:00:00')) self.assertEqual(res, Datetime.from_string('2013-01-29 09:00:00'))
def setUp(self): super(TestIntervals, self).setUp() # Some data intervals # - first one is included in second one # - second one is extended by third one # - sixth one is included in fourth one # - fifth one is prior to other one # Once cleaned: 1 interval 03/02 8-10), 2 intervals 04/02 (8-14 + 17-21) self.intervals = [ self.calendar._interval_new( Datetime.from_string('2013-02-04 09:00:00'), Datetime.from_string('2013-02-04 11:00:00')), self.calendar._interval_new( Datetime.from_string('2013-02-04 08:00:00'), Datetime.from_string('2013-02-04 12:00:00')), self.calendar._interval_new( Datetime.from_string('2013-02-04 11:00:00'), Datetime.from_string('2013-02-04 14:00:00')), self.calendar._interval_new( Datetime.from_string('2013-02-04 17:00:00'), Datetime.from_string('2013-02-04 21:00:00')), self.calendar._interval_new( Datetime.from_string('2013-02-03 08:00:00'), Datetime.from_string('2013-02-03 10:00:00')), self.calendar._interval_new( Datetime.from_string('2013-02-04 18:00:00'), Datetime.from_string('2013-02-04 19:00:00')) ]