def test_center_detail_invalid_center(self): self._create_and_login_user() self._add_user_to_group(self.user, groups.DATA_ENTRY_1_CLERK) tally = create_tally() tally.users.add(self.user) code = '12345' other_code = '21345' station_number = 1 center = create_center(code, tally=tally) other_center = create_center(other_code, tally=tally) create_station(center) create_station(other_center) result_form = create_result_form(form_state=FormState.DATA_ENTRY_1, center=center, tally=tally, station_number=station_number) view = views.CenterDetailsView.as_view() session = {'result_form': result_form.pk} data = center_data(other_code, station_number=station_number, tally_id=tally.pk) data.update(session) request = self.factory.post('/', data=data) request.user = self.user request.session = session response = view(request, tally_id=tally.pk) self.assertEqual(response.status_code, 200) response.render() self.assertContains(response, 'Center and station numbers do not match')
def test_center_detail_redirects_to_enter_results(self): self._create_and_login_user() self._add_user_to_group(self.user, groups.DATA_ENTRY_1_CLERK) tally = create_tally() tally.users.add(self.user) code = '12345' station_number = 1 center = create_center(code, tally=tally) create_station(center) result_form = create_result_form(form_state=FormState.DATA_ENTRY_1, center=center, tally=tally, station_number=station_number) view = views.CenterDetailsView.as_view() result_form_data = {'result_form': result_form.pk} data = center_data(code, station_number=station_number, tally_id=tally.pk) data.update(result_form_data) request = self.factory.post('/', data=data) request.user = self.user request.session = result_form_data response = view(request, tally_id=tally.pk) self.assertEqual(response.status_code, 302) self.assertIn('data-entry/enter-results', response['location'])
def test_center_detail_center_alpha_numeric(self): self._create_and_login_user() self._add_user_to_group(self.user, groups.DATA_ENTRY_1_CLERK) tally = create_tally() tally.users.add(self.user) code = '12345' station_number = 1 center = create_center(code, tally=tally) create_station(center) result_form = create_result_form(form_state=FormState.DATA_ENTRY_1, center=center, tally=tally, station_number=station_number) view = views.CenterDetailsView.as_view() data = center_data('12345', '12346') data['center_number'] = 'abcde' data['center_number_copy'] = 'abcde' session = {'result_form': result_form.pk} data.update(session) request = self.factory.post('/', data=data) request.user = self.user request.session = session response = view(request, tally_id=tally.pk) self.assertContains(response, u'Expecting only numbers for center number')
def test_center_detail_invalid_center(self): code = '12345' other_code = '21345' station_number = 1 center = create_center(code) other_center = create_center(other_code) create_station(center) create_station(other_center) result_form = create_result_form(form_state=FormState.DATA_ENTRY_1, center=center, station_number=station_number) self._create_and_login_user() self._add_user_to_group(self.user, groups.DATA_ENTRY_1_CLERK) view = views.CenterDetailsView.as_view() session = {'result_form': result_form.pk} data = center_data(other_code, station_number=station_number) data.update(session) request = self.factory.post('/', data=data) request.user = self.user request.session = session response = view(request) self.assertEqual(response.status_code, 200) response.render() self.assertContains(response, 'Center and station numbers do not match')
def test_enter_results_has_candidates(self): code = '12345' center = create_center(code) create_station(center) result_form = create_result_form(form_state=FormState.DATA_ENTRY_1) ballot = result_form.ballot candidate_name = 'candidate name' create_candidate(ballot, candidate_name) self._create_and_login_user() self._add_user_to_group(self.user, groups.DATA_ENTRY_1_CLERK) view = views.EnterResultsView.as_view() data = center_data(code) request = self.factory.get('/', data=data) request.user = self.user request.session = {'result_form': result_form.pk} response = view(request) self.assertEqual(response.status_code, 200) self.assertContains(response, candidate_name)
def test_center_detail_center_not_equal(self): code = '12345' station_number = 1 center = create_center(code) create_station(center) result_form = create_result_form(form_state=FormState.DATA_ENTRY_1, center=center, station_number=station_number) self._create_and_login_user() self._add_user_to_group(self.user, groups.DATA_ENTRY_1_CLERK) view = views.CenterDetailsView.as_view() data = center_data('12345', '12346') session = {'result_form': result_form.pk} data.update(session) request = self.factory.post('/', data=data) request.user = self.user request.session = session response = view(request) self.assertContains(response, 'Center Numbers do not match')
def test_center_detail_validates_clerk(self): code = '12345' station_number = 1 center = create_center(code) create_station(center) result_form = create_result_form(form_state=FormState.DATA_ENTRY_2, center=center, station_number=station_number) self._create_and_login_user() self._add_user_to_group(self.user, groups.DATA_ENTRY_1_CLERK) view = views.CenterDetailsView.as_view() result_form_data = {'result_form': result_form.pk} data = center_data(code, station_number=station_number) data.update(result_form_data) request = self.factory.post('/', data=data) request.user = self.user request.session = result_form_data response = view(request) self.assertEqual(response.status_code, 200) self.assertContains(response, 'Data Entry 2')
def test_center_detail_no_station(self): code = '12345' station_number = 1 center = create_center(code) create_station(center) result_form = create_result_form(form_state=FormState.DATA_ENTRY_1, center=center, station_number=station_number) self._create_and_login_user() self._add_user_to_group(self.user, groups.DATA_ENTRY_1_CLERK) view = views.CenterDetailsView.as_view() session = {'result_form': result_form.pk} data = center_data(code) data.update(session) data.update({'station_number': 3, 'station_number_copy': 3}) request = self.factory.post('/', data=data) request.user = self.user request.session = session response = view(request) self.assertEqual(response.status_code, 200) self.assertContains(response, 'Invalid Station Number for this Center')
def test_center_detail_center_not_equal(self): self._create_and_login_user() tally = create_tally() tally.users.add(self.user) code = '12345' station_number = 1 center = create_center(code, tally=tally) create_station(center) result_form = create_result_form(form_state=FormState.DATA_ENTRY_1, center=center, tally=tally, station_number=station_number) self._add_user_to_group(self.user, groups.DATA_ENTRY_1_CLERK) view = views.CenterDetailsView.as_view() data = center_data('12345', '12346') session = {'result_form': result_form.pk} data.update(session) request = self.factory.post('/', data=data) request.user = self.user request.session = session response = view(request, tally_id=tally.pk) self.assertContains(response, 'Center Numbers do not match')
def test_center_detail_validates_clerk(self): self._create_and_login_user() self._add_user_to_group(self.user, groups.DATA_ENTRY_1_CLERK) tally = create_tally() tally.users.add(self.user) code = '12345' station_number = 1 center = create_center(code, tally=tally) create_station(center) result_form = create_result_form(form_state=FormState.DATA_ENTRY_2, center=center, tally=tally, station_number=station_number) view = views.CenterDetailsView.as_view() result_form_data = {'result_form': result_form.pk} data = center_data(code, station_number=station_number) data.update(result_form_data) request = self.factory.post('/', data=data) request.user = self.user request.session = result_form_data response = view(request, tally_id=tally.pk) self.assertEqual(response.status_code, 200) response.render() self.assertIn(b'Data Entry 2', response.content)