def test_hide_null_candidate_totals(self): candidates = [ factories.CandidateFactory(candidate_id='C1234'), factories.CandidateFactory(candidate_id='C5678'), ] candidateHistory = [ factories.CandidateHistoryFutureFactory(candidate_id='C1234', two_year_period=2016, election_years=[2016], cycles=[2016],candidate_election_year=2016), factories.CandidateHistoryFutureFactory(candidate_id='C5678', two_year_period=2016, election_years=[2016], cycles=[2016],candidate_election_year=2016) ] candidateTotals = [ factories.CandidateTotalFactory(candidate_id='C1234', is_election=False, cycle=2016), factories.CandidateTotalFactory(candidate_id='C5678', disbursements='9999.99', is_election=False, cycle=2016) ] candidateFlags = [ factories.CandidateFlagsFactory(candidate_id='C1234'), factories.CandidateFlagsFactory(candidate_id='C5678') ] tcv = candidate_aggregates.TotalsCandidateView() query, columns = sorting.sort(tcv.build_query(election_full=False), 'disbursements', model=None) self.assertEqual(len(query.all()), len(candidates)) query, columns = sorting.sort(tcv.build_query(election_full=False), 'disbursements', model=None, hide_null=True) self.assertEqual(len(query.all()), len(candidates) - 1) self.assertTrue(candidates[1].candidate_id in query.all()[0])
def setUp(self): super().setUp() self.candidate_1 = factories.CandidateHistoryFutureFactory( candidate_id='S123', candidate_election_year=2016, ) self.candidate_2 = factories.CandidateHistoryFutureFactory( candidate_id='S456', candidate_election_year=2016, ) self.candidate_3 = factories.CandidateHistoryFutureFactory( candidate_id='S789', two_year_period=2014, candidate_election_year=2016, candidate_inactive=True, ) self.candidate_4 = factories.CandidateHistoryFutureFactory( candidate_id='P123', two_year_period=2018, candidate_election_year=2020, ) factories.CandidateTotalFactory( candidate_id=self.candidate_1.candidate_id, is_election=True, receipts=100, cycle=2016, election_year=2016, ) factories.CandidateTotalFactory( candidate_id=self.candidate_1.candidate_id, is_election=False, receipts=200, cycle=2016, election_year=2016, ) factories.CandidateTotalFactory( candidate_id=self.candidate_2.candidate_id, is_election=True, receipts=21, cycle=2016, election_year=2016, ) factories.CandidateTotalFactory( candidate_id=self.candidate_3.candidate_id, is_election=True, receipts=5000, cycle=2016, election_year=2016, ) factories.CandidateTotalFactory( candidate_id=self.candidate_4.candidate_id, is_election=True, receipts=10000, cycle=2020, election_year=2020, )
def setUp(self): super().setUp() self.candidate = factories.CandidateHistoryFutureFactory( candidate_id='S123', two_year_period=2012, candidate_election_year=2012, ) self.committees = [ factories.CommitteeHistoryFactory(cycle=2012, designation='P'), factories.CommitteeHistoryFactory(cycle=2012, designation='A'), ] factories.CandidateDetailFactory( candidate_id=self.candidate.candidate_id, election_years=[2008, 2012], ) [ factories.CandidateElectionFactory( candidate_id=self.candidate.candidate_id, cand_election_year=election_year, ) for election_year in [2008, 2012] ] [ factories.CommitteeDetailFactory(committee_id=each.committee_id) for each in self.committees ] factories.CandidateTotalFactory( candidate_id=self.candidate.candidate_id, cycle=2012, is_election=True, receipts=100, ) factories.CandidateTotalFactory( candidate_id=self.candidate.candidate_id, cycle=2012, is_election=False, receipts=75, ) factories.CandidateFlagsFactory( candidate_id=self.candidate.candidate_id) db.session.flush() # Create two-year totals for both the target period (2011-2012) and the # previous period (2009-2010) for testing the `election_full` flag factories.CandidateCommitteeLinkFactory( candidate_id=self.candidate.candidate_id, committee_id=self.committees[0].committee_id, committee_designation='P', committee_type='S', fec_election_year=2012, election_yr_to_be_included=2012, ) factories.CandidateCommitteeLinkFactory( candidate_id=self.candidate.candidate_id, committee_id=self.committees[1].committee_id, committee_designation='A', committee_type='S', fec_election_year=2012, election_yr_to_be_included=2012, ) factories.CandidateCommitteeLinkFactory( candidate_id=self.candidate.candidate_id, committee_id=self.committees[1].committee_id, committee_designation='A', committee_type='S', fec_election_year=2010, election_yr_to_be_included=2012, ) # Create a candidate_zero without a committee and $0 in CandidateTotal self.candidate_zero = factories.CandidateHistoryFutureFactory( candidate_id='H321', two_year_period=2018, candidate_election_year=2018, candidate_inactive=True, ) factories.CandidateDetailFactory( candidate_id=self.candidate_zero.candidate_id, election_years=[2018], ) factories.CandidateTotalFactory( candidate_id=self.candidate_zero.candidate_id, cycle=2018, is_election=False, receipts=0, ) factories.CandidateTotalFactory( candidate_id=self.candidate_zero.candidate_id, cycle=2018, is_election=True, receipts=0, ) # Create data for a candidate who ran in 2017 and 2018 self.candidate_17_18 = factories.CandidateHistoryFutureFactory( candidate_id='S456', two_year_period=2018, candidate_election_year=2018, candidate_inactive=False, ) self.committees_17_18 = [ factories.CommitteeHistoryFactory(cycle=2018, designation='P'), ] factories.CandidateDetailFactory( candidate_id=self.candidate_17_18.candidate_id, election_years=[2018], ) [ factories.CandidateElectionFactory( candidate_id=self.candidate_17_18.candidate_id, cand_election_year=election_year, ) for election_year in [2017, 2018] ] [ factories.CommitteeDetailFactory(committee_id=each.committee_id) for each in self.committees_17_18 ] factories.CandidateTotalFactory( candidate_id=self.candidate_17_18.candidate_id, cycle=2018, is_election=True, receipts=100, ) factories.CandidateTotalFactory( candidate_id=self.candidate_17_18.candidate_id, cycle=2018, is_election=False, receipts=100, ) factories.CandidateFlagsFactory( candidate_id=self.candidate_17_18.candidate_id) db.session.flush() factories.CandidateCommitteeLinkFactory( candidate_id=self.candidate_17_18.candidate_id, committee_id=self.committees_17_18[0].committee_id, committee_designation='P', committee_type='S', cand_election_year=2017, fec_election_year=2018, ) factories.CandidateCommitteeLinkFactory( candidate_id=self.candidate_17_18.candidate_id, committee_id=self.committees_17_18[0].committee_id, committee_designation='P', committee_type='S', cand_election_year=2018, fec_election_year=2018, ) # Create data for a candidate who ran just in 2017 self.candidate_17_only = factories.CandidateHistoryFutureFactory( candidate_id='H456', two_year_period=2018, candidate_election_year=2017, ) self.committees_17_only = [ factories.CommitteeHistoryFactory(cycle=2018, designation='P'), ] factories.CandidateDetailFactory( candidate_id=self.candidate_17_only.candidate_id, election_years=[2017], ) [ factories.CandidateElectionFactory( candidate_id=self.candidate_17_only.candidate_id, cand_election_year=election_year, ) for election_year in [2017] ] [ factories.CommitteeDetailFactory(committee_id=each.committee_id) for each in self.committees_17_only ] factories.CandidateTotalFactory( candidate_id=self.candidate_17_only.candidate_id, cycle=2018, is_election=True, receipts=150, ) factories.CandidateTotalFactory( candidate_id=self.candidate_17_only.candidate_id, cycle=2018, is_election=False, receipts=150, ) factories.CandidateFlagsFactory( candidate_id=self.candidate_17_only.candidate_id) db.session.flush() factories.CandidateCommitteeLinkFactory( candidate_id=self.candidate_17_only.candidate_id, committee_id=self.committees_17_only[0].committee_id, committee_designation='P', committee_type='S', cand_election_year=2017, fec_election_year=2018, ) # Create data for future presidential - next_cycle. Use formula for future # Test full next_cycle and current_cycle 2-year totals self.candidate_20 = factories.CandidateHistoryFutureFactory( candidate_id='P456', two_year_period=self.current_cycle, candidate_election_year=self.next_cycle, ) self.candidate_20 = factories.CandidateHistoryFutureFactory( candidate_id='P456', two_year_period=self.next_cycle, candidate_election_year=self.next_cycle, ) # Candidate history won't have next_cycle yet self.committees_20 = [ factories.CommitteeHistoryFactory(cycle=self.current_cycle, designation='P'), ] factories.CandidateDetailFactory( candidate_id=self.candidate_20.candidate_id, election_years=[self.next_cycle], ) [ factories.CandidateElectionFactory( candidate_id=self.candidate_20.candidate_id, cand_election_year=election_year, ) for election_year in [self.next_cycle - 4, self.next_cycle] ] [ factories.CommitteeDetailFactory(committee_id=each.committee_id) for each in self.committees_20 ] # Full next_cycle factories.CandidateTotalFactory( candidate_id=self.candidate_20.candidate_id, cycle=self.next_cycle, is_election=True, receipts=55000, ) # current_cycle 2-year factories.CandidateTotalFactory( candidate_id=self.candidate_20.candidate_id, cycle=self.current_cycle, is_election=False, receipts=25000, ) factories.CandidateFlagsFactory( candidate_id=self.candidate_20.candidate_id) db.session.flush() factories.CandidateCommitteeLinkFactory( candidate_id=self.candidate_20.candidate_id, committee_id=self.committees_20[0].committee_id, committee_designation='P', committee_type='P', cand_election_year=self.next_cycle, fec_election_year=self.current_cycle, ) factories.CandidateCommitteeLinkFactory( candidate_id=self.candidate_20.candidate_id, committee_id=self.committees_20[0].committee_id, committee_designation='P', committee_type='P', cand_election_year=self.next_cycle, fec_election_year=self.next_cycle, )