- In Order to test calendar, I will first create One Simple Event with real data - !record {model: calendar.event, id: calendar_event_technicalpresentation0}: class: private date: '2011-04-30 16:00:00' date_deadline: '2011-04-30 18:30:00' description: The Technical Presentation will cover following topics:\n* Creating OpenERP class\n* Views\n* Wizards\n* Workflows duration: 2.5 location: OpenERP S.A. name: Technical Presentation - Now I will set recurrence for this event to occur monday and friday of week - !python {model: calendar.event}: | data = {'fr': 1, 'mo': 1, 'interval': 1, 'rrule_type': 'weekly', 'end_type': 'end_date', 'end_date': '2011-05-31 00:00:00', 'recurrency' : True} self.write(cr, uid, [ref("calendar_event_technicalpresentation0")], data) - In order to check that recurrent events are views successfully in calendar view, I will open calendar view of events - !python {model: calendar.event}: | self.fields_view_get(cr, uid, False, 'calendar', context) - In order to check that recurrent events are views successfully in calendar view, I will search for one of the recurrent event and count the number of events - !python {model: calendar.event}: | ids = self.search(cr, uid, [('date', '>=', '2011-04-30 16:00:00'), ('date', '<=', '2011-05-31 00:00:00')], context={'virtual_id': True} ) assert len(ids) == 9, 'Wrong number of events found' - Now I move a virtual event, to see that a real event is well created and depending from the native recurrence - !python {model: calendar.event}: | ids = self.search(cr, uid, [('date', '>=', '2011-04-30 16:00:00'), ('date', '<=', '2011-05-31 00:00:00')], context={'virtual_id': True} ) before = self.search(cr, uid, [('date', '>=', '2011-04-30 16:00:00'), ('date', '<=', '2011-05-31 00:00:00')], context={'virtual_id': False}) # We start by detach the event newid = self._detach_one_event(cr, uid,ids[1]) self.write(cr, uid,[newid], {'name':'New Name','recurrency' : True}, context={'virtual_id': True}) after = self.search(cr, uid, [('date', '>=', '2011-04-30 16:00:00'), ('date', '<=', '2011-05-31 00:00:00')], context={'virtual_id': False}) assert len(after) == len(before)+1, 'Wrong number of events found, after to have moved a virtual event' new_id = list(set(after)-set(before))[0] new_event = self.browse(cr,uid,new_id,context=context) assert new_event.recurrent_id == before[0], 'Recurrent_id not correctly passed to the new event' - Now I will make All day event and test it - !record {model: calendar.event, id: calendar_event_alldaytestevent0}: allday: 1 class: confidential date: '2011-04-30 00:00:00' date_deadline: '2011-04-30 00:00:00' description: 'All day technical test ' location: School name: All day test event - In order to check reminder I will first create reminder - !record {model: calendar.alarm, id: res_alarm_daybeforeeventstarts0}: name: 1 Day before event starts duration: 1 interval: days type: notification - Now I will assign this reminder to all day event - !python {model: calendar.event}: | self.write(cr, uid, [ref("calendar_event_alldaytestevent0")], {'alarm_ids': [(6,0,[ref("res_alarm_daybeforeeventstarts0")])]}) - I create a recuring rule for my event - !record {model: calendar.event, id: calendar.event_sprintreview1}: name: Begin of month meeting date: !eval time.strftime('%Y-%m-%d 12:00:00') recurrency: true rrule: FREQ=MONTHLY;INTERVAL=1;COUNT=12;BYDAY=1MO - I check that the attributes are set correctly - !assert {model: calendar.event, id: calendar.event_sprintreview1}: - rrule_type == 'monthly' - count == 12 - month_by == 'day' - byday == '1' - week_list == 'MO'