Turkesh Patel (openERP) has proposed merging 
lp:~openerp-dev/openobject-addons/trunk-clean-test-project_long_term-tpa into 
lp:openobject-addons.

Requested reviews:
  Ujjvala Collins (OpenERP) (uco-openerp)

For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-clean-test-project_long_term-tpa/+merge/85081

project_long_term

aded deadcode in project_long_term.py file
-- 
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-clean-test-project_long_term-tpa/+merge/85081
Your team OpenERP R&D Team is subscribed to branch 
lp:~openerp-dev/openobject-addons/trunk-clean-test-project_long_term-tpa.
=== modified file 'project_long_term/__openerp__.py'
--- project_long_term/__openerp__.py	2011-12-08 22:25:43 +0000
+++ project_long_term/__openerp__.py	2011-12-09 08:59:28 +0000
@@ -43,14 +43,7 @@
     "init_xml": [],
     "demo_xml": ["project_long_term_demo.xml"],
     "test": [
-          'test/test_schedule_phases_case1.yml',
-          'test/schedule_project_phases.yml',
-          'test/schedule_project_tasks.yml',
-          'test/test_schedule_phases_case2.yml',
-          'test/project_schedule_consecutive_day.yml',
-          'test/project_schedule_without_wroking_hour.yml',
-          'test/phase_constraint.yml',
-          'test/test_schedule_tasks_case1.yml',
+          'test/phase_process.yml',
     ],
     "update_xml": [
         "security/ir.model.access.csv",

=== modified file 'project_long_term/project_long_term.py'
--- project_long_term/project_long_term.py	2011-11-22 08:51:38 +0000
+++ project_long_term/project_long_term.py	2011-12-09 08:59:28 +0000
@@ -72,12 +72,13 @@
              if phase['date_start'] and phase['date_end'] and phase['date_start'] > phase['date_end']:
                  return False
          return True
-
+    #dead code
     def _get_default_uom_id(self, cr, uid):
        model_data_obj = self.pool.get('ir.model.data')
        model_data_id = model_data_obj._get_id(cr, uid, 'product', 'uom_hour')
        return model_data_obj.read(cr, uid, [model_data_id], ['res_id'])[0]['res_id']
 
+    #dead code
     def _compute_progress(self, cr, uid, ids, field_name, arg, context=None):
         res = {}
         if not ids:

=== modified file 'project_long_term/project_long_term_demo.xml'
--- project_long_term/project_long_term_demo.xml	2011-11-13 14:13:16 +0000
+++ project_long_term/project_long_term_demo.xml	2011-12-09 08:59:28 +0000
@@ -5,6 +5,10 @@
         This Demo data file Human Resources, Phases and Resources,Tasks allocation and  also run scheduling of phase and tasks.
         -->
 
+        <record id="project.project_integrate_openerp" model="project.project">
+            <field name="resource_calendar_id" ref="resource.timesheet_group1"/>
+        </record>
+
         <!-- Project Phases -->
 
         <record id="project_phase_1" model="project.phase">
@@ -13,6 +17,7 @@
             <field name="product_uom" ref="product.uom_day"/>
             <field eval="1" name="sequence"/>
             <field name="duration">30</field>
+            <field name="constraint_date_start" eval="time.strftime('%Y-%m-01 10:00:00')"></field>
             <field name="project_id" ref="project.project_integrate_openerp"/>
         </record>
 
@@ -37,9 +42,9 @@
             <field name="project_id" ref="project.project_integrate_openerp"/>
         </record>
         <function model="project.phase" name="set_open" eval="[ref('project_phase_3')]"/>
-        
+
         <record id="project_phase_4" model="project.phase">
-            <field eval="[(6, 0, [ref('project_phase_2')])]" name="previous_phase_ids"/>
+            <field eval="[(6, 0, [ref('project_phase_3')])]" name="previous_phase_ids"/>
             <field name="name">Development and Integration</field>
             <field name="product_uom" ref="product.uom_day"/>
             <field eval="4" name="sequence"/>
@@ -60,7 +65,7 @@
             <field eval="[(6, 0, [ref('project_phase_5')])]" name="previous_phase_ids"/>
             <field name="name">Deployement and Training</field>
             <field name="product_uom" ref="product.uom_day"/>
-            <field eval="5" name="sequence"/>
+            <field eval="6" name="sequence"/>
             <field name="duration">10</field>
             <field name="project_id" ref="project.project_integrate_openerp"/>
         </record>

=== removed file 'project_long_term/test/phase_constraint.yml'
--- project_long_term/test/phase_constraint.yml	2011-10-27 21:11:24 +0000
+++ project_long_term/test/phase_constraint.yml	1970-01-01 00:00:00 +0000
@@ -1,118 +0,0 @@
-- 
-  Given that I have a project 'Test Phases'.
-- 
-  !record {model: project.project, id: project_project_developyamlproject0}:
-    name: "Develop Yaml Project Module"
-    date_start: !eval time.strftime('%Y-%m-%d')
-    resource_calendar_id: resource.timesheet_group1
-    members:
-      - base.user_admin
-- 
-  And I create three human ressources to work on this project, an analyst.
-- 
-  !record {model: resource.resource, id: resource_resource_analyst1}:
-    calendar_id: resource.timesheet_group1
-    name: Analyst
-    resource_type: user
-    time_efficiency: 1.0
-    user_id: base.user_admin
-- 
-  I define a developer HR.
-- 
-  !record {model: resource.resource, id: resource_resource_develop0}:
-    calendar_id: resource.timesheet_group1
-    name: Developer
-    resource_type: user
-    time_efficiency: 1.0
-    user_id: base.user_admin
-- 
-  I define a tester HR.
-- 
-  !record {model: resource.resource, id: resource_resource_tester1}:
-    calendar_id: resource.timesheet_group1
-    name: tester
-    resource_type: user
-    time_efficiency: 1.0
-    user_id: base.user_admin
-- 
-  Then I create three phases for my projects; Analysis, Development, Testing.
-- 
-  The first phase is 'Analysis' and has a duration of 6 days.
-- 
-  !record {model: project.phase, id: project_phase_analysisflowforyaml0}:
-    date_start: !eval time.strftime('%Y-%m-%d')
-    duration: 6.0
-    name: "Analysis"
-    product_uom: product.uom_day
-    project_id: project_project_developyamlproject0
-    state: draft
-
-- 
-  I update the constrain and the analysis phase to not start before 4 days.
-- 
-   !python {model : project.phase }: |
-      pass
-      import datetime
-      from dateutil.relativedelta import *
-      start = datetime.date.today() + relativedelta(days=4)
-      self.write(cr,uid, [(ref("project_phase_analysisflowforyaml0"))], {'constraint_date_start': start})
-- 
-  The second phase is 'Development' and depend on the 'Analysis', with a duration of 6 days.
-- 
-  !record {model: project.phase, id: project_phase_developyaml0}:
-    duration: 6.0
-    name: Development
-    product_uom: product.uom_day
-    project_id: project_project_developyamlproject0
-    previous_phase_ids:
-      - project_phase_analysisflowforyaml0
-
-- 
-  I update the Constrain Date Start adn Date End for phase Develop yaml
-- 
-   !python {model : project.phase }: |
-      pass 
-      import datetime
-      #from dateutil.relativedelta import *
-      #start = datetime.date.today() - relativedelta(days=5)    
-      #end = datetime.date.today() + relativedelta(days=10)
-      #self.write(cr,uid, [(ref("project_phase_developyaml0"))], {'constraint_date_start': start, 'constraint_date_end':end})
--
-  The third phase is 'Testing' and depend on the 'Develop' phase, with a duration of 6 days.
-- 
-  !record {model: project.phase, id: project_phase_testyaml0}:
-    duration: 6.0
-    name: Testing
-    product_uom: product.uom_day
-    project_id: project_project_developyamlproject0
-    previous_phase_ids:
-      - project_phase_developyaml0
-- 
-  Then I launch the scheduler to compute starting and ending phases on all phases of this project.
-- 
-  !record {model: project.compute.phases, id: project_compute_phases_0}:
-    project_id: project_project_developyamlproject0
-    target_project: one
-- 
-  !python {model: project.project}: |
-    self.schedule_phases(cr, uid, [ref("project_project_developyamlproject0")])
--
-  After scheduling, I check the starting date and ending date on the phases are correct.
--
-  !python {model: project.phase}: |
-     import datetime
-     from dateutil.relativedelta import *
-     minstart = (datetime.date.today() + relativedelta(days=4)).strftime('%Y-%m-%d')
-     minend = (datetime.date.today() + relativedelta(days=11)).strftime('%Y-%m-%d')
-
-     phase1=self.browse(cr, uid, ref('project_phase_analysisflowforyaml0'))
-     assert phase1.date_start>=minstart, 'Error, the Analysis phase '+phase1.date_start+' should start after '+str(minstart)
-     assert phase1.date_end>=minend, 'Error, the Analysis phase should end after '+str(minend)
-
-     phase2=self.browse(cr, uid, ref('project_phase_developyaml0'))
-     assert phase2.date_start>=phase1.date_end, 'Error, the phase Development should start after the end of the Analysis phase'
-
-     phase3=self.browse(cr, uid, ref('project_phase_testyaml0'))
-     assert phase3.date_start>=phase2.date_end, 'Error, the phase Testing should start after the end of the Development phase'
-     assert phase3.date_start<phase3.date_end, 'Error, the phase Testing should start before ending'
-

=== added file 'project_long_term/test/phase_process.yml'
--- project_long_term/test/phase_process.yml	1970-01-01 00:00:00 +0000
+++ project_long_term/test/phase_process.yml	2011-12-09 08:59:28 +0000
@@ -0,0 +1,79 @@
+-
+  In order to test process of Phases,
+-
+  I create a record to schedule the phase of project.
+-
+  !record {model: project.compute.phases, id: project_compute_phases01}:
+    target_project: 'one'
+    project_id: project.project_integrate_openerp
+-
+  I schedule the phases.
+-
+  !python {model: project.compute.phases}: |
+    self.check_selection(cr, uid, [ref("project_compute_phases01")])
+-
+  I check the starting date and ending date on the phases after scheduling.
+-
+  !python {model: project.project}: |
+     project = self.browse(cr, uid, ref("project.project_integrate_openerp"), context=context)
+     def _convert(date):
+        import time
+        return time.strptime(date, '%Y-%m-%d %H:%M:%S')
+     def _check(phase, _convert, _check): #TOFIX: why need to pass function ?
+        for next_phase in phase.next_phase_ids:
+            assert _convert(next_phase.date_start) >= _convert(phase.date_end), "Phase does not start in proper date."
+            _check(next_phase, _convert, _check)
+        return True
+     
+     for phase in project.phase_ids:
+        
+        assert phase.date_start, "Start date should be computed."
+        assert phase.date_end, "End date should be computed." 
+        if not phase.previous_phase_ids and phase.constraint_date_start:
+            assert  _convert(phase.date_start) >= _convert(phase.constraint_date_start), "Phase does not start in proper date."
+            _check(phase, _convert, _check)
+-
+  I open phase.
+-
+  !python {model: project.phase}: |
+    self.set_open(cr, uid, [ref("project_phase_1")])
+-
+  I check state of phase after opened.
+-
+  !assert {model: project.phase, id: project_phase_1, severity: error, string: Phase should be in open state}:
+    - state == "open"
+-
+  I put phase in pending state.
+-
+  !python {model: project.phase}: |
+    self.set_pending(cr, uid, [ref("project_phase_1")])
+-
+  I check state of phase after put in pending.
+-
+  !assert {model: project.phase, id: project_phase_1, severity: error, string: Phase should be in pending state}:
+    - state == "pending"
+-
+  I make Phase in cancel state.
+-
+  !python {model: project.phase}: |
+    self.set_cancel(cr, uid, [ref("project_phase_1")])
+-
+  I check state of phase after cancelled.
+-
+  !assert {model: project.phase, id: project_phase_1, severity: error, string: Phase should be in cancel state}:
+    - state == "cancelled"
+-
+  I put again in draft phase.
+-
+  !python {model: project.phase}: |
+    self.set_draft(cr, uid, [ref("project_phase_1")])
+-
+  I close phase.
+-
+  !python {model: project.phase}: |
+    self.set_done(cr, uid, [ref("project_phase_1")])
+-
+  I check state of phase after closed.
+-
+  !assert {model: project.phase, id: project_phase_1, severity: error, string: Phase should be in done state}:
+    - state == "done"

=== removed file 'project_long_term/test/project_schedule_consecutive_day.yml'
--- project_long_term/test/project_schedule_consecutive_day.yml	2011-10-27 21:11:24 +0000
+++ project_long_term/test/project_schedule_consecutive_day.yml	1970-01-01 00:00:00 +0000
@@ -1,127 +0,0 @@
-- 
-  Create a project 'Develop yaml Project Module'.
-- 
-  !record {model: project.project, id: project_project_developyamlproject_2}:
-    name: "Develop Yaml Project Module"
-    date_start: !eval time.strftime('%Y-%m-%d')
-    members:
-      - base.user_admin
-
-- 
-  I have set Working Time from Monday to  Friday from 9am to 17pm.
-- 
-  !record {model: resource.calendar, id: resource_calendar_hoursweekstest_P2}:
-    name: "from Monday to  Friday, from 9am to 17pm"
-
-- 
-  I have set Day1 Working Time for Monday to  Friday from 9am to 17pm working hour
-- 
-  !record {model: resource.calendar.attendance, id: resource_calendar_hoursweekstest_P2day1}:
-    name: "Day1"
-    hour_from : 09.00
-    hour_to : 17.00
-    dayofweek : "0"
-    calendar_id : resource_calendar_hoursweekstest_P2
-
-- 
-  I have set Day2 Working Time for Monday to  Friday from 9am to 17pm working hour
-- 
-  !record {model: resource.calendar.attendance, id: rresource_calendar_hoursweekstest_P2day2}:
-    name: "Day2"
-    hour_from : 09.00
-    hour_to : 17.00
-    dayofweek : "1"
-    calendar_id : resource_calendar_hoursweekstest_P2
-    
-- 
-  I have set Day3 Working Time for Monday to  Friday from 9am to 17pm working hour
-- 
-  !record {model: resource.calendar.attendance, id: resource_calendar_hoursweekstest_P2day3}:
-    name: "Day3"
-    hour_from : 09.00
-    hour_to : 17.00
-    dayofweek : "2"    
-    calendar_id : resource_calendar_hoursweekstest_P2
-
-- 
-  I have set Day4 Working Time for Monday to  Friday from 9am to 17pm working hour
-- 
-  !record {model: resource.calendar.attendance, id: resource_calendar_hoursweekstest_P2day4}:
-    name: "Day4"
-    hour_from: 09.00
-    hour_to: 17.00
-    dayofweek: "3"
-    calendar_id: resource_calendar_hoursweekstest_P2
-
-- 
-  I have set Day5 Working Time for Monday to  Friday from 9am to 17pm working hour
--
-  !record {model: resource.calendar.attendance, id: resource_calendar_hoursweekstest_P2day5}:
-    name: "Day5"
-    hour_from: 09.00
-    hour_to: 17.00
-    dayofweek: "4"
-    calendar_id: resource_calendar_hoursweekstest_P2
-
-- 
-  Now Set working period to  Project 'Develop yaml Project Module'
-- 
-  !python {model: project.project}: |  
-    self.write(cr, uid, [ref("project_project_developyamlproject_2")], {'resource_calendar_id': ref("resource_calendar_hoursweekstest_P2")})
-
-- 
-  Create 3 a project phase.
-  First 'Analysis Flow for Yaml'Project Phase
-- 
-  !record {model: project.phase, id:  project_project_developyamlproject_2_Phase1}:
-    date_start: !eval time.strftime('%Y-%m-%d')
-    duration: 5.0
-    name: "Analysis Flow for Yaml"
-    product_uom: product.uom_day
-    project_id: project_project_developyamlproject_2
-    state: draft
-    
-- 
-  Create project phase 'Develop yaml'
-- 
-  !record {model: project.phase, id:  project_project_developyamlproject_2_Phase2}:
-    duration: 5.0
-    name: Develop Yaml
-    product_uom: product.uom_day
-    project_id: project_project_developyamlproject_2
-    previous_phase_ids:
-      -  project_project_developyamlproject_2_Phase1
-       
-- 
-  Create project phase 'Test Yaml'
-- 
-  !record {model: project.phase, id:  project_project_developyamlproject_2_Phase3}:
-    duration: 5.0
-    name: Testing Yaml
-    product_uom: product.uom_day
-    project_id: project_project_developyamlproject_2
-    previous_phase_ids:
-      -  project_project_developyamlproject_2_Phase2    
-    
-- 
-  Compute Schedule of phases For One project 
-- 
-  !record {model: project.compute.phases, id: project_compute_phases_0}:
-    project_id: project_project_developyamlproject_2
-    target_project: one
-- 
-  Schedule project phases using Compute Phase Scheduling
-- 
-  !python {model: project.project}: |
-    self.schedule_phases(cr, uid, [ref("project_project_developyamlproject_2")])
-      
--
-  After  scheduling, Check that  phases scheduled, check that either of phase's start_date, end_date not null.
--
-  !python {model: project.project}: |
-     proj=self.browse(cr, uid, [ref("project_project_developyamlproject_2")])[0]
-     for phase in proj.phase_ids:
-        if (not phase.date_start) or (not phase.date_end):
-           raise AssertionError("Phases not scheduled")
-
-

=== removed file 'project_long_term/test/project_schedule_without_wroking_hour.yml'
--- project_long_term/test/project_schedule_without_wroking_hour.yml	2011-10-27 21:11:24 +0000
+++ project_long_term/test/project_schedule_without_wroking_hour.yml	1970-01-01 00:00:00 +0000
@@ -1,76 +0,0 @@
--
-  Create a project 'Develop yaml Implementation Module'.
--
-  !record {model: project.project, id: project_project_developyamlproject_2}:
-    name: "Develop Yaml Project Module"
-    date_start: !eval time.strftime('%Y-%m-%d')
-
-- 
-  Create 4 Project phase.
-  First Project Phase 'Analysis Flow for Yaml'
-- 
-  !record {model: project.phase, id: project_project_developyamlproject_2_phase_1}:
-    date_start: !eval time.strftime('%Y-%m-%d')
-    duration: 6.0
-    product_uom: product.uom_day
-    name: "Analysis Flow for Yaml"
-    project_id: project_project_developyamlproject_2
-    state: draft
-    
-- 
-  Create project phase 'Develop yaml'
-- 
-  !record {model: project.phase, id: project_project_developyamlproject_2_phase_2}:
-    duration: 6.0
-    name: "Develop yaml"
-    product_uom: product.uom_day
-    project_id: project_project_developyamlproject_2
-    previous_phase_ids:
-      - project_project_developyamlproject_2_phase_1
-    state: draft
-- 
-  Create project phase 'Test Yaml'
-- 
-  !record {model: project.phase, id: project_project_developyamlproject_2_phase_3}:
-    duration: 6.0
-    name: Testing Yaml
-    product_uom: product.uom_day
-    project_id: project_project_developyamlproject_2
-    previous_phase_ids:
-      - project_project_developyamlproject_2_phase_2    
-    state: draft
-
-- 
-  Create project phase 'Implement Yaml'
-- 
-  !record {model: project.phase, id: project_project_developyamlproject_2_phase_4}:
-    duration: 6.0
-    name: Testing Yaml
-    product_uom: product.uom_day
-    project_id: project_project_developyamlproject_2
-    previous_phase_ids:
-      - project_project_developyamlproject_2_phase_3    
-    state: draft
-- 
-  Compute Schedule of phases For One project 
-- 
-  !record {model: project.compute.phases, id: project_compute_phases_0}:
-    project_id: project_project_developyamlproject_2
-    target_project: one
-    
-- 
-  Schedule project phases using Compute Phase Scheduling
-- 
-  !python {model: project.project}: |
-    self.schedule_phases(cr, uid, [ref("project_project_developyamlproject_2")])
-      
--
-  After  scheduling, Check that  phases scheduled, check that either of phase's start_date, end_date not null.
--
-  !python {model: project.project}: |
-     proj=self.browse(cr, uid, [ref("project_project_developyamlproject_2")])[0]
-     for phase in proj.phase_ids:
-        if (not phase.date_start) or (not phase.date_end):
-           raise AssertionError("Phases not scheduled")      
-      
-

=== removed file 'project_long_term/test/schedule_project_phases.yml'
--- project_long_term/test/schedule_project_phases.yml	2011-10-27 21:11:24 +0000
+++ project_long_term/test/schedule_project_phases.yml	1970-01-01 00:00:00 +0000
@@ -1,180 +0,0 @@
--
-  Create a project 'World Bank's Project'
--
-  !record {model: project.project, id: project_project_worldbanksproject0}:
-    name: "World Bank's Project"
-    priority: 4
-    members:
-      - project.res_users_analyst
-      - project.res_users_project_manager
-      - project.res_users_technical_leader
-      - project.res_users_developer
-      - project.res_users_designer
-      - project.res_users_tester
-
--
-  Create a project phase 'Defining Client's Basic Idea of Project'
--
-  !record {model: project.phase, id: project_phase_definingclientsbasicideaofproject0}:
-    date_start: !eval time.strftime('%Y-%m-%d')
-    duration: 15.0
-    name: "Defining Client's Basic Idea of Project"
-    product_uom: product.uom_day
-    project_id: project_project_worldbanksproject0
-
--
-  Create project phase 'Establishing Project Feasibility'
--
-  !record {model: project.phase, id: project_phase_establishingprojectfeasibility0}:
-    date_start: !eval time.strftime('%Y-%m-%d')
-    duration: 30.0
-    name: Establishing Project Feasibility
-    product_uom: product.uom_day
-    project_id: project_project_worldbanksproject0
--
-  Create the phase task 'Develop GUI for Server Configuration'
--
-  !record {model: project.task, id: project_task_t0}:
-    name: Develop GUI for Server Configuration
-    planned_hours: 20.0
-    state: draft
-    phase_id:  project_phase_definingclientsbasicideaofproject0
-    project_id: project_project_worldbanksproject0
-
--
-  Create the phase task 'Develop GUI for Modules Configuration'
--
-  !record {model: project.task, id: project_task_t1}:
-    name: Develop GUI for Modules Configuration
-    planned_hours: 25.0
-    remaining_hours: 25.0
-    state: draft
-    phase_id:  project_phase_definingclientsbasicideaofproject0
-    project_id: project_project_worldbanksproject0
-
--
-  Create project phase 'Preparation of Engineering Designs'
--
-  !record {model: project.phase, id: project_phase_preparationofengineeringdesigns0}:
-    date_start: !eval time.strftime('%Y-%m-%d')
-    duration: 100.0
-    name: Preparation of Engineering Designs
-    product_uom: product.uom_hour
-    project_id: project_project_worldbanksproject0
-
--
-  Create the phase task 'Develop GUI for Client Configuration'
--
-  !record {model: project.task, id: project_task_t2}:
-    name: Develop GUI for Server Configuration
-    planned_hours: 20.0
-    remaining_hours: 20.0
-    state: draft
-    phase_id:  project_phase_preparationofengineeringdesigns0
-    project_id: project_project_worldbanksproject0
-
--
-  Create the phase task 'Develop GUI for Client Module Configuration'
--
-  !record {model: project.task, id: project_task_t3}:
-    name: Develop GUI for Modules Configuration
-    planned_hours: 25.0
-    remaining_hours: 25.0
-    state: draft
-    phase_id:  project_phase_preparationofengineeringdesigns0
-    project_id: project_project_worldbanksproject0
-
-
--
-  Create project phase 'Procurement of Works and Goods'
--
-  !record {model: project.phase, id: project_phase_procurementofworksandgoods0}:
-    date_start: !eval time.strftime('%Y-%m-%d')
-    duration: 24.0
-    name: Procurement of Works and Goods
-    product_uom: product.uom_hour
-    project_id: project_project_worldbanksproject0
-
--
-  Create project phase 'Project Construction'
--
-  !record {model: project.phase, id: project_phase_projectconstruction0}:
-    date_start: !eval time.strftime('%Y-%m-%d')
-    duration: 4320.0
-    name: Project Construction
-    product_uom: product.uom_hour
-    project_id: project_project_worldbanksproject0
-
-
--
-  Create project phase 'Project Completion'
--
-  !record {model: project.phase, id: project_phase_projectcompletion0}:
-    date_start: !eval time.strftime('%Y-%m-%d')
-    duration: 240.0
-    name: Project Completion
-    product_uom: product.uom_hour
-    project_id: project_project_worldbanksproject0
-
--
-  Set previous phase for phase 'Establishing Project Feasibility'
--
-  !record {model: project.phase, id: project_phase_establishingprojectfeasibility0}:
-    previous_phase_ids:
-      - project_phase_definingclientsbasicideaofproject0
-
-
--
-  Set previous phase for phase 'Preparation of Engineering Designs'
--
-  !record {model: project.phase, id: project_phase_preparationofengineeringdesigns0}:
-    previous_phase_ids:
-      - project_phase_establishingprojectfeasibility0
-
--
-  Set previous phase for phase 'Procurement of Works and Goods'
--
-  !record {model: project.phase, id: project_phase_procurementofworksandgoods0}:
-    previous_phase_ids:
-      - project_phase_preparationofengineeringdesigns0
-
--
-  Set previous phase for phase 'Project Construction'
--
-  !record {model: project.phase, id: project_phase_projectconstruction0}:
-    previous_phase_ids:
-      - project_phase_procurementofworksandgoods0
-
-
--
-  Set previous phase for phase 'Project Completion'
--
-  !record {model: project.phase, id: project_phase_projectcompletion0}:
-    previous_phase_ids:
-      - project_phase_projectconstruction0
-
-
--
-  Get the project to schedule phases
--
-  !record {model: project.compute.phases, id: project_compute_phases_0}:
-    project_id: project_project_worldbanksproject0
-    target_project: one
-
-
--
-  Schedule project phases
--
-  !python {model: project.project}: |
-    self.schedule_phases(cr, uid, ref("project_project_worldbanksproject0"))
-
--
-  Check if phases scheduled, check that either of phase's start_date, end_date and user_id is not null
--
-  !python {model: project.project}: |
-     prj=self.browse(cr, uid, [ref("project_project_worldbanksproject0")])[0]
-     for phase in prj.phase_ids:
-        if (not phase.date_start) or (not phase.date_end):
-            raise AssertionError("Tasks not scheduled")
-
-

=== removed file 'project_long_term/test/schedule_project_tasks.yml'
--- project_long_term/test/schedule_project_tasks.yml	2011-10-27 21:11:24 +0000
+++ project_long_term/test/schedule_project_tasks.yml	1970-01-01 00:00:00 +0000
@@ -1,86 +0,0 @@
-- 
-  Create project 'Develop a thunderbird-openerp synchronization plugin'
-- 
-  !record {model: project.project, id: project_project_project1}:
-    name: Develop a thunderbird-openerp synchronization plugin
-    members:
-      - project.res_users_project_manager
-      - project.res_users_technical_leader
-      - project.res_users_developer
-      - project.res_users_designer
-      - project.res_users_tester
-      - project.res_users_analyst
-      - project.res_users_finacial_manager
-
-- 
-  Create phase 'Develop GUI' in thunderbird
-- 
-  !record {model: project.phase, id: project_phase_phase1}:
-    date_start: !eval time.strftime('%Y-%m-%d %H:%M:%S')
-    duration: 200.0
-    name: Develop GUI in thunderbird
-    product_uom: product.uom_day
-    project_id: project_project_project1
-    state: draft
-- 
-  Create the phase task 'Develop GUI for Server Configuration'
-- 
-  !record {model: project.task, id: project_task_t10}:
-    name: Develop GUI for Server Configuration
-    planned_hours: 20.0
-    remaining_hours: 20.0
-    state: draft
-    phase_id: project_phase_phase1
-    project_id: project_project_project1
-    user_id: project.res_users_developer
-    
-- 
-  Create the phase task 'Develop GUI for Modules Configuration'
-- 
-  !record {model: project.task, id: project_task_t11}:
-    name: Develop GUI for Modules Configuration
-    planned_hours: 25.0
-    remaining_hours: 25.0
-    state: draft
-    phase_id: project_phase_phase1
-    project_id: project_project_project1
-    user_id: project.res_users_developer
-- 
-  Create the phase task 'Develop GUI for OpenERP Synchronisation'
-- 
-  !record {model: project.task, id: project_task_t12}:
-    name: Develop GUI for OpenERP Synchronisation
-    planned_hours: 30.0
-    remaining_hours: 30.0
-    state: draft
-    phase_id: project_phase_phase1
-    project_id: project_project_project1
-    user_id: project.res_users_developer
-- 
-  Create the phase task 'Design required GUI/Menus'
-- 
-  !record {model: project.task, id: project_task_13}:
-    name: Design required GUI/Menus
-    planned_hours: 25.0
-    remaining_hours: 25.0
-    state: draft
-    phase_id: project_phase_phase1
-    project_id: project_project_project1
-    user_id: project.res_users_designer
-
-- 
-  Schedule tasks
-- 
-  !python {model: project.project}: |
-        self.schedule_tasks(cr, uid, ref("project_project_project1"))
-
--
-  Check if tasks scheduled, check that either of task's start_date, end_date and user_id is not null
--
-  !python {model: project.project}: |
-    prj = self.browse(cr, uid, [ref("project_project_project1")])[0]
-    for task in prj.tasks:
-        if task.state in ('done','cancelled'):
-            continue
-        if (not task.user_id) or (not task.date_start) or (not task.date_end):
-            raise AssertionError("Project tasks not scheduled!")

=== removed file 'project_long_term/test/test_schedule_phases_case1.yml'
--- project_long_term/test/test_schedule_phases_case1.yml	2011-11-09 18:12:56 +0000
+++ project_long_term/test/test_schedule_phases_case1.yml	1970-01-01 00:00:00 +0000
@@ -1,76 +0,0 @@
--
-  In order to test scheduling of project phases, I create two different phases and
-  test it with two different dates for scheduling.
--
-  I create a project Development and Testing.
-- 
-  !record {model: project.project, id: project_project_project_case1}:
-    name: "Development and Testing"
-    date_start: !eval time.strftime('%Y-%m-%d')
-    balance: 0.0
-    credit: 0.0
-    currency_id: base.EUR
-    debit: 0.0
-    effective_hours: 0.0
-    members:
-      - base.user_admin
-
-    planned_hours: 0.0
-    progress_rate: 0.0
-    quantity: 0.0
-    quantity_max: 0.0
-    state: open
-    type_ids:
-      - project.project_tt_specification
-      - project.project_tt_development
-      - project.project_tt_testing
-      - project.project_tt_merge
-- 
-  I create first phase of the project.
-- 
-  !record {model: project.phase, id: project_phase_firstphase0_case1}:
-    duration: 2.0
-    name: First Phase
-    product_uom: product.uom_day
-    project_id: project_project_project_case1
-    state: draft
-- 
-  I create second phase of the project.
-- 
-  !record {model: project.phase, id: project_phase_secondphase0_case2}:
-    duration: 3.0
-    name: Second Phase
-    previous_phase_ids:
-      - project_phase_firstphase0_case1
-    product_uom: product.uom_day
-    project_id: project_project_project_case1
-    state: draft
--
-  Now I create a record to compute the phase of project.
--
-  !record {model: project.compute.phases, id: project_compute_phases0}:
-    target_project: 'one'
-    project_id: project_project_project_case1
--
-  I schedule the phases.
--
-  !python {model: project.compute.phases}: |
-    self.check_selection(cr, uid, [ref("project_compute_phases0")])
--
-  I check the starting and ending dates of both phases.
--
-  !python {model: project.phase}: |
-    import datetime
-    from dateutil.relativedelta import *
-    start = (datetime.date.today()).strftime('%Y-%m-%d')
-    end = (datetime.date.today() + relativedelta(days=1)).strftime('%Y-%m-%d 17:00:00')
-    first_phase = self.browse(cr, uid, ref('project_phase_firstphase0_case1'))
-    assert (first_phase.date_start[:10] >= start),'Start dates are wrong: %s < %s !' % (first_phase.date_start[:10], start)
-    assert (first_phase.date_end >= end),'End dates are wrong: %s <%s!' % (first_phase.date_end, end)
-
-    second_phase = self.browse(cr, uid, ref('project_phase_secondphase0_case2'))
-    start = first_phase.date_end
-    end = (datetime.date.today() + relativedelta(days=4)).strftime('%Y-%m-%d')
-    assert second_phase.date_start >= start, 'Dates are wrong on second phase: %s < %s!' % (second_phase.date_start, start)
-    assert second_phase.date_end >= end, 'Dates are wrong on second phase %s < %s!' % (second_phase.date_end, end)
-

=== removed file 'project_long_term/test/test_schedule_phases_case2.yml'
--- project_long_term/test/test_schedule_phases_case2.yml	2011-10-27 21:11:24 +0000
+++ project_long_term/test/test_schedule_phases_case2.yml	1970-01-01 00:00:00 +0000
@@ -1,193 +0,0 @@
--
-  In order to test scheduling of project phases, I create two different 
-  working periods and resources. And schedule the phases.
-- 
-  I create first working period 'Working Time A'.
-- 
-  !record {model: resource.calendar, id: resource_calendar_workingtimea0}:
-    attendance_ids:
-      - dayofweek: '0'
-        hour_from: 10.0
-        hour_to: 16.0
-        name: Monday
-      - dayofweek: '1'
-        hour_from: 10.0
-        hour_to: 16.0
-        name: Tuesday
-      - dayofweek: '2'
-        hour_from: 10.0
-        hour_to: 16.0
-        name: Wednesday
-      - dayofweek: '3'
-        hour_from: 10.0
-        hour_to: 16.0
-        name: Thursday
-    name: Working Time A
-
-- 
-  Creating a resource.calendar.attendance record
-- 
-  !record {model: resource.calendar.attendance, id: resource_calendar_attendance_monday0}:
-    calendar_id: resource_calendar_workingtimea0
-    dayofweek: '0'
-    hour_from: 10.0
-    hour_to: 16.0
-    name: Monday
-- 
-  Creating a resource.calendar.attendance record
-- 
-  !record {model: resource.calendar.attendance, id: resource_calendar_attendance_tuesday0}:
-    calendar_id: resource_calendar_workingtimea0
-    dayofweek: '1'
-    hour_from: 10.0
-    hour_to: 16.0
-    name: Tuesday
-- 
-  Creating a resource.calendar.attendance record
-- 
-  !record {model: resource.calendar.attendance, id: resource_calendar_attendance_wednesday0}:
-    calendar_id: resource_calendar_workingtimea0
-    dayofweek: '2'
-    hour_from: 10.0
-    hour_to: 16.0
-    name: Wednesday
-- 
-  Creating a resource.calendar.attendance record
-- 
-  !record {model: resource.calendar.attendance, id: resource_calendar_attendance_thursday0}:
-    calendar_id: resource_calendar_workingtimea0
-    dayofweek: '3'
-    hour_from: 10.0
-    hour_to: 16.0
-    name: Thursday
-- 
-  I create second working period 'Working Time B'.
-- 
-  !record {model: resource.calendar, id: resource_calendar_workingtimeb0}:
-    attendance_ids:
-      - dayofweek: '4'
-        hour_from: 9.0
-        hour_to: 18.0
-        name: Friday
-    name: Working Time B
-- 
-  Creating a resource.calendar.attendance record
-- 
-  !record {model: resource.calendar.attendance, id: resource_calendar_attendance_friday0}:
-    calendar_id: resource_calendar_workingtimeb0
-    dayofweek: '4'
-    hour_from: 9.0
-    hour_to: 18.0
-    name: Friday
-- 
-  I create first resource say 'Resource X' without assigning working period.
-- 
-  !record {model: resource.resource, id: resource_resource_resourcex0}:
-    name: Resource X
-    resource_type: user
-    time_efficiency: 1.0
-    user_id: base.user_admin
-- 
-  I create first resource say 'Resource Y' with working period 'Working Time B'.
-- 
-  !record {model: resource.resource, id: resource_resource_resourcey0}:
-    calendar_id: resource_calendar_workingtimeb0
-    name: Resource Y
-    resource_type: user
-    time_efficiency: 1.0
-    user_id: base.user_admin
-- 
-  I create a project 'Development and Testing' and assign working period 'Working Time A'.
-- 
-  !record {model: project.project, id: project_project_project0}:
-    balance: 0.0
-    credit: 0.0
-    currency_id: base.EUR
-    debit: 0.0
-    effective_hours: 0.0
-    members:
-      - base.user_admin
-    name: Development and Testing
-    planned_hours: 20.0
-    progress_rate: 0.0
-    quantity: 0.0
-    quantity_max: 0.0
-    resource_calendar_id: resource_calendar_workingtimea0
-    state: open
-    tasks:
-      - delay_hours: 0.0
-        effective_hours: 0.0
-        name: Task 1
-        planned_hours: 10.0
-        remaining_hours: 10.0
-        state: draft
-        total_hours: 10.0
-      - delay_hours: 0.0
-        effective_hours: 0.0
-        name: Task 2
-        planned_hours: 10.0
-        remaining_hours: 10.0
-        state: draft
-        total_hours: 10.0
-    total_hours: 10.0
-    members:
-      - project.res_users_analyst
-      - project.res_users_project_manager
-      - project.res_users_technical_leader
-      - project.res_users_developer
-      - project.res_users_designer
-      - project.res_users_tester
-    type_ids:
-      - project.project_tt_specification
-      - project.project_tt_development
-      - project.project_tt_testing
-      - project.project_tt_merge
-     
-- 
-  I create a phase 'Initial Phase' for project 'Development and Testing'.
-- 
-  !record {model: project.phase, id: project_phase_phase0}:
-    date_start: '2011-01-03 08:00:00'
-    duration: 0.0
-    name: Initial Phase
-    product_uom: product.uom_day
-    project_id: project_project_project0
-    state: draft
-- 
-  I create first task 'Developing module' and assign 10h.
-- 
-  !record {model: project.task, id: project_task_task0}:
-    delay_hours: 0.0
-    effective_hours: 0.0
-    name: Developing module
-    planned_hours: 10.0
-    project_id: project_project_project0
-    remaining_hours: 10.0
-    state: draft
-    total_hours: 10.0
-    phase_id: project_phase_phase0
-- 
-  I create first task 'Testing module' and assign 10h.
-- 
-  !record {model: project.task, id: project_task_task1}:
-    delay_hours: 0.0
-    effective_hours: 0.0
-    name: Testing module
-    planned_hours: 10.0
-    project_id: project_project_project0
-    remaining_hours: 10.0
-    state: draft
-    total_hours: 10.0
-    phase_id: project_phase_phase0
--
-  Now I create a record to compute the phase of project.
--
-  !record {model: project.compute.phases, id: project_compute_phases0}:
-    target_project: 'one'
-    project_id: project_project_project0
--
-  I schedule the phases.
--
-  !python {model: project.compute.phases}: |
-    self.check_selection(cr, uid, [ref("project_compute_phases0")])
-

=== removed file 'project_long_term/test/test_schedule_tasks_case1.yml'
--- project_long_term/test/test_schedule_tasks_case1.yml	2011-10-27 21:11:24 +0000
+++ project_long_term/test/test_schedule_tasks_case1.yml	1970-01-01 00:00:00 +0000
@@ -1,246 +0,0 @@
--
-  In order to test scheduling of tasks, I create four tasks with different sequences and schedule them.
-- 
-  I create first user.
-- 
-  !record {model: res.users, id: res_users_user0}:
-    company_id: base.main_company
-    context_lang: en_US
-    groups_id:
-      - base.group_partner_manager
-      - base.group_user
-    login: user1
-    name: User 1
-    password: user1
-- 
-  I create second user.
-- 
-  !record {model: res.users, id: res_users_user1}:
-    company_id: base.main_company
-    context_lang: en_US
-    groups_id:
-      - base.group_partner_manager
-      - base.group_user
-    login: user2
-    name: User 2
-    password: user2    
-- 
-  I create a Project.
-- 
-  !record {model: project.project, id: project_project_projecta0}:
-    balance: 0.0
-    credit: 0.0
-    currency_id: base.EUR
-    debit: 0.0
-    effective_hours: 0.0
-    name: Project A
-    members:
-      - res_users_user0
-      - res_users_user1
-    phase_ids:
-      - date_start: '2011-01-06 08:00:00'
-        duration: 2.0
-        name: Phase A
-        product_uom: product.uom_day
-        state: draft
-        task_ids:
-          - delay_hours: 0.0
-            effective_hours: 0.0
-            name: Task D
-            planned_hours: 5.0
-            remaining_hours: 5.0
-            state: draft
-            total_hours: 5.0
-          - delay_hours: 0.0
-            effective_hours: 0.0
-            name: Task C
-            planned_hours: 5.0
-            remaining_hours: 5.0
-            sequence: 11
-            state: draft
-            total_hours: 5.0
-          - delay_hours: 0.0
-            effective_hours: 0.0
-            name: Task B
-            planned_hours: 5.0
-            remaining_hours: 5.0
-            sequence: 13
-            state: draft
-            total_hours: 5.0
-          - delay_hours: 0.0
-            effective_hours: 0.0
-            name: Task A
-            planned_hours: 5.0
-            remaining_hours: 5.0
-            sequence: 14
-            state: draft
-            total_hours: 5.0
-    planned_hours: 20.0
-    progress_rate: 0.0
-    quantity: 0.0
-    quantity_max: 0.0
-    state: open
-    tasks:
-      - delay_hours: 0.0
-        effective_hours: 0.0
-        name: Task D
-        planned_hours: 5.0
-        remaining_hours: 5.0
-        state: draft
-        total_hours: 5.0
-      - delay_hours: 0.0
-        effective_hours: 0.0
-        name: Task C
-        planned_hours: 5.0
-        remaining_hours: 5.0
-        sequence: 11
-        state: draft
-        total_hours: 5.0
-      - delay_hours: 0.0
-        effective_hours: 0.0
-        name: Task B
-        planned_hours: 5.0
-        remaining_hours: 5.0
-        sequence: 13
-        state: draft
-        total_hours: 5.0
-      - delay_hours: 0.0
-        effective_hours: 0.0
-        name: Task A
-        planned_hours: 5.0
-        remaining_hours: 5.0
-        sequence: 14
-        state: draft
-        total_hours: 5.0
-    total_hours: 15.0
-- 
-  I create first task with highest sequence.
-- 
-  !record {model: project.task, id: project_task_taska0}:
-    delay_hours: 0.0
-    effective_hours: 0.0
-    name: Task A
-    planned_hours: 5.0
-    project_id: project_project_projecta0
-    remaining_hours: 5.0
-    sequence: 14
-    state: draft
-    total_hours: 5.0
-- 
-  I create second task.
-- 
-  !record {model: project.task, id: project_task_taskb0}:
-    delay_hours: 0.0
-    effective_hours: 0.0
-    name: Task B
-    planned_hours: 5.0
-    project_id: project_project_projecta0
-    remaining_hours: 5.0
-    sequence: 13
-    state: draft
-    total_hours: 5.0
-- 
-  I create third task.
-- 
-  !record {model: project.task, id: project_task_taskc0}:
-    delay_hours: 0.0
-    effective_hours: 0.0
-    name: Task C
-    planned_hours: 5.0
-    project_id: project_project_projecta0
-    remaining_hours: 5.0
-    sequence: 11
-    state: draft
-    total_hours: 5.0
--
-  I create fourth task with lowest sequence.
-- 
-  !record {model: project.task, id: project_task_taskd0}:
-    delay_hours: 0.0
-    effective_hours: 0.0
-    name: Task D
-    planned_hours: 5.0
-    project_id: project_project_projecta0
-    remaining_hours: 5.0
-    state: draft
-    total_hours: 5.0
-- 
-  Now I create a resource for first user.
-- 
-  !record {model: resource.resource, id: resource_resource_user0}:
-    name: User 1
-    resource_type: user
-    time_efficiency: 1.0
-    user_id: res_users_user0
-- 
-  I create a resource for second user.
-- 
-  !record {model: resource.resource, id: resource_resource_user1}:
-    name: User 2
-    resource_type: user
-    time_efficiency: 1.0
-    user_id: res_users_user1
-- 
-  Now I create one phase for the project.
-- 
-  !record {model: project.phase, id: project_phase_phasea0}:
-    date_start: '2011-01-06 08:00:00'
-    duration: 2.0
-    name: Phase A
-    product_uom: product.uom_day
-    project_id: project_project_projecta0
-    state: draft
-    task_ids:
-      - delay_hours: 0.0
-        effective_hours: 0.0
-        name: Task D
-        planned_hours: 5.0
-        project_id: project_project_projecta0
-        remaining_hours: 5.0
-        state: draft
-        total_hours: 5.0
-      - delay_hours: 0.0
-        effective_hours: 0.0
-        name: Task C
-        planned_hours: 5.0
-        project_id: project_project_projecta0
-        remaining_hours: 5.0
-        sequence: 11
-        state: draft
-        total_hours: 5.0
-      - delay_hours: 0.0
-        effective_hours: 0.0
-        name: Task B
-        planned_hours: 5.0
-        project_id: project_project_projecta0
-        remaining_hours: 5.0
-        sequence: 13
-        state: draft
-        total_hours: 5.0
-      - delay_hours: 0.0
-        effective_hours: 0.0
-        name: Task A
-        planned_hours: 5.0
-        project_id: project_project_projecta0
-        remaining_hours: 5.0
-        sequence: 14
-        state: draft
-        total_hours: 5.0
--
-  Now I create a record to schedule the tasks of project.
--
-  !record {model: project.compute.tasks, id: project_compute_tasks0}:
-    project_id: project_project_projecta0
--
-  I schedule the tasks.
--
-  !python {model: project.compute.tasks}: |
-    self.compute_date(cr, uid, [ref("project_compute_tasks0")])
--
-  I check that whether the tasks now allocated to respected resources or not.
--
-  !python {model: project.task}: |
-    task_ids = self.search(cr, uid, [('project_id','=',ref('project_project_projecta0'))])
-    for task in self.browse(cr, uid, task_ids):
-      if (not task.date_start) or (not task.date_end):
-        raise AssertionError("Tasks are not scheduled.")

_______________________________________________
Mailing list: https://launchpad.net/~openerp-dev-gtk
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~openerp-dev-gtk
More help   : https://help.launchpad.net/ListHelp

Reply via email to