def test_basic(self): # create some reminders uuidtpl = '{0:032d}' today = datetime.date.today() diffs = [0,1, app_settings.EMAIL_REMINDERS_EXPIRE_AFTER-1, # 13 app_settings.EMAIL_REMINDERS_EXPIRE_AFTER, # 14 app_settings.EMAIL_REMINDERS_EXPIRE_AFTER+1, # 15 -1, -app_settings.EMAIL_REMINDERS_EXPIRE_AFTER+1, # -13 -app_settings.EMAIL_REMINDERS_EXPIRE_AFTER, # -14 -app_settings.EMAIL_REMINDERS_EXPIRE_AFTER-1 # -15 ] dates = list(today-datetime.timedelta(days=x) for x in diffs) for i,date in enumerate(dates): id = str(uuid.UUID(uuidtpl.format(i))) reminder = WorkLogReminder(reminder_id=id, user=self.user, date=date) reminder.save() rems = WorkLogReminder.objects.all() self.assertEquals(rems.count(),9) # clear the expired reminders tasks.clear_expired_reminder_records() # verify results rems = WorkLogReminder.objects.all() self.assertEquals(rems.count(),7) for rem in rems: self.assertTrue(rem.date > today-datetime.timedelta(days=app_settings.EMAIL_REMINDERS_EXPIRE_AFTER))
def test_previousItemsTableReminder(self): """Test that previous items table works correctly with reminders.""" # create the reminder uuidstr = '00001111000011110000111100001111' id = str(uuid.UUID(uuidstr)) reminder = WorkLogReminder(reminder_id=id, user=self.user, date=self.last_week) reminder.save() # create some work log entries job1 = Job.objects.get(name="Job_LastWeek") item1= WorkItem(user=self.user, date=self.last_week, hours=3, text='Should be visible in table.', job=job1) job2 = Job.objects.get(name="Job_Today") item2 = WorkItem(user=self.user, date=self.today, hours=5, text='Should not be visible in table.', job=job2) item1.save() item2.save() with self.scoped_login(username='******', password='******'): response = self.client.get('/worklog/add/reminder_{0}/'.format(id)) self.assertEquals(response.context['reminder_id'],id) self.assertEquals(len(response.context['items']),1) items = response.context['items'] # order of columns depends on configuration, so just check that they exist self.assertTrue(job1 in items[0]) self.assertTrue(self.user in items[0]) self.assertTrue(3 in items[0])
def test_reminder_submitAndExit(self): uuidstr = '00001111000011110000111100001111' id = str(uuid.UUID(uuidstr)) reminder = WorkLogReminder(reminder_id=id, user=self.user, date=self.last_week) reminder.save() jobs = reminder.get_available_jobs() job = jobs[0] with self.scoped_login(username='******', password='******'): data = {'submit_and_exit':'','hours':'2', 'text':'description', 'job':job.pk} response = self.client.post('/worklog/add/reminder_{0}/'.format(id), data) #datemin = self.last_week.replace(day=1) #datemax = get_month_end(self.last_week) redirurl = '/worklog/view/{0}/{1}_{1}/'.format(self.user.username,self.last_week) self.assertRedirects(response, redirurl) items = WorkItem.objects.all() self.assertEquals(items.count(),1) item = items[0] self.assertEquals(item.date, self.last_week) self.assertEquals(item.hours, 2) self.assertEquals(item.job, job)
def test_badUser(self): uuidstr = '00001111000011110000111100001111' id = str(uuid.UUID(uuidstr)) reminder = WorkLogReminder(reminder_id=id, user=self.user2, date=self.last_week) reminder.save() # NOTE: login user does not match user associated with the reminder with self.scoped_login(username='******', password='******'): response = self.client.get('/worklog/add/reminder_{0}/'.format(id)) self.assertTrue(response.has_header('Worklog-UnableToCreateItem'))
def test_reminder_get(self): uuidstr = '00001111000011110000111100001111' id = str(uuid.UUID(uuidstr)) reminder = WorkLogReminder(reminder_id=id, user=self.user, date=self.last_week) reminder.save() with self.scoped_login(username='******', password='******'): response = self.client.get('/worklog/add/reminder_{0}/'.format(id)) self.assertEquals(response.context['reminder_id'],id) qs = response.context['form'].fields["job"].queryset self.assertEquals(qs.count(),3) names = list(job.name for job in qs) self.assertTrue("Job_LastWeek" in names) self.assertTrue("Job_LastWeek2" in names) self.assertTrue("Job_Old" in names)
def test_reminder_submitAndAddAnother(self): uuidstr = '00001111000011110000111100001111' id = str(uuid.UUID(uuidstr)) reminder = WorkLogReminder(reminder_id=id, user=self.user, date=self.last_week) reminder.save() jobs = reminder.get_available_jobs() job = jobs[0] with self.scoped_login(username='******', password='******'): data = {'submit_and_add_another':'','hours':'4', 'text':'description', 'job':job.pk} response = self.client.post('/worklog/add/reminder_{0}/'.format(id), data) self.assertRedirects(response, '/worklog/add/reminder_{0}/'.format(id)) items = WorkItem.objects.all() self.assertEquals(items.count(),1) item = items[0] self.assertEquals(item.date, self.last_week) self.assertEquals(item.hours, 4) self.assertEquals(item.job, job)