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'
+
+