コード例 #1
0
ファイル: tests.py プロジェクト: crystal3a/worklog
 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))
コード例 #2
0
ファイル: tests.py プロジェクト: crystal3a/worklog
 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])   
コード例 #3
0
ファイル: tests.py プロジェクト: crystal3a/worklog
 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)
コード例 #4
0
ファイル: tests.py プロジェクト: crystal3a/worklog
 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'))
コード例 #5
0
ファイル: tests.py プロジェクト: crystal3a/worklog
 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)
コード例 #6
0
ファイル: tests.py プロジェクト: crystal3a/worklog
 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)