def test_duplicate_reports(self): # The processing code does not reorder data. It relies on the ordering set in # the database query. This test just verifies that the last report per period is # the one that counts (irrespective of the timestamp) feb20 = datetime.date(2014, 2, 20) self.center_reports = [ {'polling_center_code': '11001', 'date': feb20, 'reported': datetime.time(1, 0, 0), 'voting_period': '1', 'votes_reported': 8}, {'polling_center_code': '11001', 'date': feb20, 'reported': datetime.time(2, 0, 0), 'voting_period': '1', 'votes_reported': 58}, ] center_vote_counts = dict() result = process_raw_data(self.polling_centers, self.inactive_for_election, self.center_opens, self.center_reports, center_vote_counts) votes = result['by_polling_center']['11001']['2014-02-20']['1'] self.assertEqual(votes, 58) # even if we make the first report 'later', it doesn't matter self.center_reports[0]['reported'] = datetime.time(3, 0, 0) result = process_raw_data(self.polling_centers, self.inactive_for_election, self.center_opens, self.center_reports, center_vote_counts) votes = result['by_polling_center']['11001']['2014-02-20']['1'] self.assertEqual(votes, 58)
def test_opened(self): feb20 = datetime.date(2014, 2, 20) self.center_opens = [ {'polling_center_code': '11001', 'date': feb20, 'opened': datetime.time(8, 13, 21)}, ] center_vote_counts = dict() result = process_raw_data(self.polling_centers, self.inactive_for_election, self.center_opens, self.center_reports, center_vote_counts) self.assertEqual(result['dates'], ['2014-02-20']) self.assertIn('11001', result['by_polling_center']) self.assertEqual(result['by_polling_center']['11001']['2014-02-20']['opened'], '08:13:21')
def test_prelim_vote_count_rollup(self): center_reports = [ { 'polling_center_code': '11001', 'date': now(), 'reported': datetime.time(1, 0, 0), 'voting_period': '1', 'votes_reported': 8 }, ] center_vote_counts = { '11001': { 'country': 'Libya', 'office_id': self.test_office_1, 'polling_center_code': 11001, 'prelim_counts': { 1: 25, 2: 50 }, 'region': self.test_region }, '11002': { 'country': 'Libya', 'office_id': self.test_office_2, 'polling_center_code': 11002, 'prelim_counts': { 1: 14 }, 'region': self.test_region } } result = process_raw_data(self.polling_centers, self.inactive_for_election, self.center_opens, center_reports, center_vote_counts) prelim_counts = result['by_country']['Libya']['prelim_counts'] self.assertEqual(prelim_counts[1], 39) self.assertEqual(prelim_counts[2], 50) prelim_counts = result['by_region'][Office.REGION_NAMES[ self.test_region]]['prelim_counts'] self.assertEqual(prelim_counts[1], 39) self.assertEqual(prelim_counts[2], 50) prelim_counts = result['by_office'][ self.test_office_1]['prelim_counts'] self.assertEqual(prelim_counts[1], 25) self.assertEqual(prelim_counts[2], 50) prelim_counts = result['by_office'][ self.test_office_2]['prelim_counts'] self.assertEqual(prelim_counts[1], 14) self.assertFalse(2 in prelim_counts)
def test_inactive(self): result = process_raw_data(self.polling_centers, self.inactive_for_election, self.center_opens, self.center_reports, dict()) self.assertEqual( result['by_office'][self.test_office_1]['inactive_for_election'], [11003]) self.assertEqual( result['by_office'][self.test_office_2]['inactive_for_election'], []) self.assertEqual( result['by_polling_center']['11003']['inactive_for_election'], True)
def test_duplicate_reports(self): # The processing code does not reorder data. It relies on the ordering set in # the database query. This test just verifies that the last report per period is # the one that counts (irrespective of the timestamp) feb20 = datetime.date(2014, 2, 20) self.center_reports = [ { 'polling_center_code': '11001', 'date': feb20, 'reported': datetime.time(1, 0, 0), 'voting_period': '1', 'votes_reported': 8 }, { 'polling_center_code': '11001', 'date': feb20, 'reported': datetime.time(2, 0, 0), 'voting_period': '1', 'votes_reported': 58 }, ] center_vote_counts = dict() result = process_raw_data(self.polling_centers, self.inactive_for_election, self.center_opens, self.center_reports, center_vote_counts) votes = result['by_polling_center']['11001']['2014-02-20']['1'] self.assertEqual(votes, 58) # even if we make the first report 'later', it doesn't matter self.center_reports[0]['reported'] = datetime.time(3, 0, 0) result = process_raw_data(self.polling_centers, self.inactive_for_election, self.center_opens, self.center_reports, center_vote_counts) votes = result['by_polling_center']['11001']['2014-02-20']['1'] self.assertEqual(votes, 58)
def test_prelim_vote_count_rollup(self): center_reports = [ {'polling_center_code': '11001', 'date': now(), 'reported': datetime.time(1, 0, 0), 'voting_period': '1', 'votes_reported': 8}, ] center_vote_counts = { '11001': { 'country': 'Libya', 'office_id': self.test_office_1, 'polling_center_code': 11001, 'prelim_counts': { 1: 25, 2: 50 }, 'region': self.test_region }, '11002': { 'country': 'Libya', 'office_id': self.test_office_2, 'polling_center_code': 11002, 'prelim_counts': { 1: 14 }, 'region': self.test_region } } result = process_raw_data(self.polling_centers, self.inactive_for_election, self.center_opens, center_reports, center_vote_counts) prelim_counts = result['by_country']['Libya']['prelim_counts'] self.assertEqual(prelim_counts[1], 39) self.assertEqual(prelim_counts[2], 50) prelim_counts = result['by_region'][Office.REGION_NAMES[self.test_region]]['prelim_counts'] self.assertEqual(prelim_counts[1], 39) self.assertEqual(prelim_counts[2], 50) prelim_counts = result['by_office'][self.test_office_1]['prelim_counts'] self.assertEqual(prelim_counts[1], 25) self.assertEqual(prelim_counts[2], 50) prelim_counts = result['by_office'][self.test_office_2]['prelim_counts'] self.assertEqual(prelim_counts[1], 14) self.assertFalse(2 in prelim_counts)
def test_opened(self): feb20 = datetime.date(2014, 2, 20) self.center_opens = [ { 'polling_center_code': '11001', 'date': feb20, 'opened': datetime.time(8, 13, 21) }, ] center_vote_counts = dict() result = process_raw_data(self.polling_centers, self.inactive_for_election, self.center_opens, self.center_reports, center_vote_counts) self.assertEqual(result['dates'], ['2014-02-20']) self.assertIn('11001', result['by_polling_center']) self.assertEqual( result['by_polling_center']['11001']['2014-02-20']['opened'], '08:13:21')
def test_inactive(self): result = process_raw_data(self.polling_centers, self.inactive_for_election, self.center_opens, self.center_reports, dict()) self.assertEqual(result['by_office'][self.test_office_1]['inactive_for_election'], [11003]) self.assertEqual(result['by_office'][self.test_office_2]['inactive_for_election'], []) self.assertEqual(result['by_polling_center']['11003']['inactive_for_election'], True)