def test_prefilled_timecard(self): """ Test that new timecard form is prefilled with last (submitted) timecard's projects """ new_period = hours.models.ReportingPeriod.objects.create( start_date=datetime.date(2016, 1, 1), end_date=datetime.date(2016, 1, 7), ) date = new_period.start_date.strftime('%Y-%m-%d') response = self.app.get( reverse( 'reportingperiod:UpdateTimesheet', kwargs={'reporting_period': date} ), headers={'X_AUTH_USER': self.user.email}, ) # projects prefilled in the html prefilled_projects = response.html.find_all( 'div', {'class': 'entry-project'} )[:-1] prefilled_projects_names = set( p.find('option', {'selected': True}).text for p in prefilled_projects ) scrubbed_projects_names = [] for n in prefilled_projects_names: n = n.split(' - ')[1] if ' - ' in n else n scrubbed_projects_names.append(n) prefilled_projects_names = set(scrubbed_projects_names) # projects based on last submitted timecard last_timecard_projects = set( choice_label_for_project(tco.project) for tco in self.timecard.timecardobjects.all() ) scrubbed_projects_names = [] for n in last_timecard_projects: n = n.split(' - ')[1] if ' - ' in n else n scrubbed_projects_names.append(n) last_timecard_projects = set(scrubbed_projects_names) self.assertEqual(prefilled_projects_names, last_timecard_projects) # ensure hours field is left blank prefilled_hours = set( e.find('input').get('value') for e in response.html.find_all('div', {'class': 'entry-amount'})[:-1] ) self.assertEqual(prefilled_hours, {None})
def test_prefilled_timecard(self): """ Test that new timecard form is prefilled with last (submitted) timecard's projects """ new_period = hours.models.ReportingPeriod.objects.create( start_date=datetime.date(2016, 1, 1), end_date=datetime.date(2016, 1, 7), ) date = new_period.start_date.strftime('%Y-%m-%d') response = self.app.get( reverse( 'reportingperiod:UpdateTimesheet', kwargs={'reporting_period': date} ), headers={'X_FORWARDED_EMAIL': self.user.email}, ) # projects prefilled in the html prefilled_projects = response.html.find_all( 'div', {'class': 'entry-project'} )[:-1] prefilled_projects_names = set( p.find('option', {'selected': True}).text for p in prefilled_projects ) # projects based on last submitted timecard last_timecard_projects = set( choice_label_for_project(tco.project) for tco in self.timecard.timecardobject_set.all() ) self.assertEqual(prefilled_projects_names, last_timecard_projects) # ensure hours field is left blank prefilled_hours = set( e.find('input').get('value') for e in response.html.find_all('div', {'class': 'entry-amount'})[:-1] ) self.assertEqual(prefilled_hours, {None})
def test_choice_label_for_project(self): self.assertEqual(choice_label_for_project(self.project_1), '32 - openFEC')
def test_project_select_dynamic(self): self.projects[1].delete() self._assert_project_options( [choice_label_for_project(self.projects[0])], [choice_label_for_project(self.projects[1])])
def test_project_select(self): self._assert_project_options( [choice_label_for_project(each) for each in self.projects])
def test_project_select_dynamic(self): self.projects[1].delete() self._assert_project_options( [choice_label_for_project(self.projects[0])], [choice_label_for_project(self.projects[1])] )
def test_project_select(self): self._assert_project_options([ choice_label_for_project(each) for each in self.projects ])
def test_choice_label_for_project(self): self.assertEqual(choice_label_for_project(self.project_1), '32 - openFEC')