From 6e5e699b6ebed8802b9c6b9b1d6772b856edd99e Mon Sep 17 00:00:00 2001 From: Jigar Amin - OpenERP Date: Mon, 5 Dec 2011 17:22:18 +0530 Subject: [PATCH] [IMP] imporved test case scenario bzr revid: jam@tinyerp.com-20111205115218-95ol3r8mw3uxdi5u --- addons/resource/resource_demo.xml | 42 ++++++++-------- addons/resource/test/resource.yml | 80 +++++++++++++++++++------------ 2 files changed, 70 insertions(+), 52 deletions(-) diff --git a/addons/resource/resource_demo.xml b/addons/resource/resource_demo.xml index 6a3c186a44c..acd96cd992b 100644 --- a/addons/resource/resource_demo.xml +++ b/addons/resource/resource_demo.xml @@ -5,73 +5,73 @@ - 38 Hours/Week + 45 Hours/Week - + Monday morning 0 08 12 - + Monday evening 0 13 18 - + Tuesday morning 1 08 12 - + Tuesday evening 1 13 18 - + Wednesday morning 2 08 12 - + Wednesday evening 2 13 18 - + Thursday morning 3 08 12 - + Thursday evening 13 18 3 - + Friday morning 4 08 12 - + Friday evening 4 13 @@ -79,15 +79,6 @@ - - - - Demo Resource - - - user - - @@ -98,7 +89,7 @@ - + Designer @@ -107,7 +98,7 @@ - + Developer @@ -122,6 +113,13 @@ + + + Dummy Resource Leave + + + + diff --git a/addons/resource/test/resource.yml b/addons/resource/test/resource.yml index 1fc2e1b19b9..42468681e69 100644 --- a/addons/resource/test/resource.yml +++ b/addons/resource/test/resource.yml @@ -1,42 +1,62 @@ - - In order to test resource calendar. - I assign workig calendar '38 Hours/Week' to human resource. + In order to test resource. +- + I assign workig calendar '45 Hours/Week' to human resource. - !python {model: resource.resource}: | - self.write(cr, uid, [ref('resource_analyst'), ref('resource_designer'), ref('resource_developer')], {'calendar_id' : ref('timesheet_group1')}) + self.write(cr, uid, [ref('resource_analyst'), ref('resource_designer'), ref('resource_developer')], {'calendar_id' : ref('timesheet_group1'), 'resource_type': 'user'}) - - I check the working hour on day for resource 'Demo Resource' using calendar '38 Hours/Week' . + I had Project of OpenERP Integration of 50 Hours with three human resource assigned on it. I have started project from this week start. +- + First, I generate the resource detail and check the resource Efficiency assigned. +- + !python {model: resource.resource}: | + resources = self.generate_resources(cr, uid, [ref('base.user_root'),ref('base.user_demo')], ref('timesheet_group1'), context) + for resource in resources.values(): + print resource + assert resource.get('efficiency', 0.0) == 1.0, 'Invalid resource generated.' +- + I check per day work hour availability of the Resource based on Working Calendar Assigned to each resource, for first day of the week. +- + !python {model: resource.resource}: | + calendar_pool = self.pool.get('resource.calendar') + resources = self.browse(cr, uid, [ref('resource_analyst'), ref('resource_designer'), ref('resource_developer')], context) + from datetime import datetime, timedelta + now = datetime.now() + dt = now - timedelta(days=now.weekday()) + for resource in resources: + result = calendar_pool.working_hours_on_day(cr, uid, resource.calendar_id, dt, context) + assert result == 9.0, 'Wrong calculation of day work hour availability of the Resource.' +- + Now, resource "Developer" drafted leave on Thursday in this week. +- + !python {model: resource.calendar.leaves}: | + from datetime import datetime,timedelta + now = datetime.now() + dt = (now - timedelta(days=now.weekday()) ) + timedelta(days=3) + self.write(cr, uid, [ref('resource_dummyleave')], {'resource_id': ref('resource_developer'), 'calendar_id': ref('timesheet_group1'), 'date_from': dt.strftime("%Y-%m-%d 09:00:00"), 'date_to': dt.strftime("%Y-%m-%d 18:00:00")}) + +- + I check Actual working hours on resource 'Developer' from this week - !python {model: resource.calendar}: | - from datetime import datetime - dt = datetime.now() - calendar = self.browse(cr, uid, ref('timesheet_group1')) - result = self.working_hours_on_day(cr, uid, calendar, dt, context) - assert result, "No Working Our on Day for Resource has been Generated." -- - I Check the Resource 6.0 Hours Working Internal Timing Based on Resource Calendar. -- - !python {model: resource.calendar}: | - from datetime import datetime - dt = datetime.now() - result = self.interval_get(cr, uid, ref('timesheet_group1'), dt, 6.0, ref('resource_analyst')) - assert result, 'No Working Internal Timeming Generated' + from datetime import datetime, timedelta + now = datetime.now() + dt_from = now - timedelta(days=now.weekday()) + dt_to = dt_from+ timedelta(days=6) + hours = self.interval_hours_get(cr, uid, ref('timesheet_group1'), dt_from, dt_to, resource=ref('resource_developer')) + assert hours > 27 , 'Invalid Total Week working hour calculated' + - - I check total number of working hours on resource in between three dates based on resource working calendar. + Project Analysis work is of 20 hours which will start from Week startso i will calculate working schedule for resource Analyst for the same. - !python {model: resource.calendar}: | + from datetime import datetime, timedelta - dt_from = datetime.now() - dt_to = dt_from + timedelta(days=3) - hours = self.interval_hours_get(cr, uid, ref('timesheet_group1'), dt_from, dt_to) - assert hours, 'No Working Hours Generated' -- - I check resource working schedule based on resource calendar for 30 Hours. -- - !python {model: resource.calendar}: | - from datetime import datetime, timedelta - dt_from = datetime.now() - hours = self.interval_min_get(cr, uid, ref('timesheet_group1'), dt_from, 30.0, resource=ref('resource_analyst')) - assert hours, 'No Working Schedule Generated.' + now = datetime.now() + work_intreval = self.interval_min_get(cr, uid, ref('timesheet_group1'), now, 20.0, resource=ref('resource_designer')) + assert len(work_intreval) >= 5, 'Wrong Schedule Calculated' + +