def test_schedule_e_sort_args_ascending(self):
     [
         factories.ScheduleEFactory(expenditure_amount=100, expenditure_date=datetime.date(2016, 1, 1),
                 committee_id='101', support_oppose_indicator='s'),
         factories.ScheduleEFactory(expenditure_amount=100, expenditure_date=datetime.date(2016, 1, 1),
                 committee_id='101', support_oppose_indicator='o'),
     ]
     results = self._results(api.url_for(ScheduleEView, sort='support_oppose_indicator'))
     self.assertEqual(results[0]['support_oppose_indicator'], 'o')
 def test_sort_sched_e(self):
     expenditures = [
         factories.ScheduleEFactory(expenditure_amount=50),
         factories.ScheduleEFactory(expenditure_amount=100, expenditure_date=datetime.date(2016, 1, 1)),
         factories.ScheduleEFactory(expenditure_amount=150, expenditure_date=datetime.date(2016, 2, 1)),
         factories.ScheduleEFactory(expenditure_amount=200, expenditure_date=datetime.date(2016, 3, 1)),
     ]
     sub_ids = [str(each.sub_id) for each in expenditures]
     results = self._results(api.url_for(ScheduleEView, sort='-expenditure_date', sort_nulls_last=True))
     self.assertEqual([each['sub_id'] for each in results], sub_ids[::-1])
Beispiel #3
0
 def test_amount_sched_e(self):
     [
         factories.ScheduleEFactory(expenditure_amount=50),
         factories.ScheduleEFactory(expenditure_amount=100),
         factories.ScheduleEFactory(expenditure_amount=150),
         factories.ScheduleEFactory(expenditure_amount=200),
     ]
     results = self._results(api.url_for(ScheduleEView, min_amount=100))
     self.assertTrue(all(each['expenditure_amount'] >= 100 for each in results))
     results = self._results(api.url_for(ScheduleEView, max_amount=150))
     self.assertTrue(all(each['expenditure_amount'] <= 150 for each in results))
     results = self._results(api.url_for(ScheduleEView, min_amount=100, max_amount=150))
     self.assertTrue(all(100 <= each['expenditure_amount'] <= 150 for each in results))
Beispiel #4
0
    def test_schedule_e_filters_date_range(self):
        factories.ScheduleEFactory(filing_date=datetime.datetime(2023, 12, 30))
        factories.ScheduleEFactory(filing_date=datetime.datetime(2021, 8, 29))
        factories.ScheduleEFactory(filing_date=datetime.datetime(2019, 10, 25))
        factories.ScheduleEFactory(filing_date=datetime.datetime(2017, 6, 22))
        factories.ScheduleEFactory(filing_date=datetime.datetime(2015, 10, 15))

        results = self._results(
            api.url_for(
                ScheduleEView,
                min_filing_date=datetime.date.fromisoformat('2015-01-01')))
        assert len(results) == 5

        results = self._results(
            api.url_for(
                ScheduleEView,
                max_filing_date=datetime.date.fromisoformat('2021-10-25')))
        assert len(results) == 4
Beispiel #5
0
 def test_filter_sched_e_most_recent(self):
     [
         factories.ScheduleEFactory(committee_id='C001',
                                    filing_form='F24',
                                    most_recent=True),
         factories.ScheduleEFactory(committee_id='C002',
                                    filing_form='F5',
                                    most_recent=False),
         factories.ScheduleEFactory(committee_id='C003',
                                    filing_form='F24',
                                    most_recent=True),
         factories.ScheduleEFactory(committee_id='C004',
                                    filing_form='F3X',
                                    most_recent=True),
     ]
     results = self._results(
         api.url_for(ScheduleEView, most_recent=True, **self.kwargs))
     self.assertEqual(len(results), 3)
Beispiel #6
0
 def test_schedule_e_filter_fulltext_fail(self):
     """
     test names that expect no returns
     """
     payee_names = ['#', '##', '@#$%^&*', '%', '', '  ']
     [
         factories.ScheduleEFactory(payee_name_text=payee)
         for payee in payee_names
     ]
     results = self._results(
         api.url_for(ScheduleEView, payee_name=payee_names))
     self.assertEquals(len(results), 0)
Beispiel #7
0
 def test_schedule_e_filter_fulltext_pass(self):
     """
     test names that expect to be returned
     """
     payee_names = [
         'Test.com', 'Test com', 'Testerosa', 'Test#com',
         'Test.com and Test.com'
     ]
     [factories.ScheduleEFactory(payee_name=payee) for payee in payee_names]
     results = self._results(api.url_for(ScheduleEView, payee_name='test'))
     for result in results:
         print(result, '\n')
     self.assertEqual(len(results), len(payee_names))
Beispiel #8
0
 def test_filters_sched_e(self):
     filters = [
         ('image_number', ScheduleE.image_number, ['123', '456']),
         ('committee_id', ScheduleE.committee_id, ['C01', 'C02']),
         ('support_oppose_indicator', ScheduleE.support_oppose_indicator, ['S', 'O']),
         ('is_notice', ScheduleE.is_notice, [True, False]),
     ]
     for label, column, values in filters:
         [
             factories.ScheduleEFactory(**{column.key: value})
             for value in values
         ]
         results = self._results(api.url_for(ScheduleEView, **{label: values[0]}))
         assert len(results) == 1
         assert results[0][column.key] == values[0]
Beispiel #9
0
 def test_schedule_e_filters(self):
     filters = [
         ('image_number', ScheduleE.image_number, ['123', '456']),
         ('committee_id', ScheduleE.committee_id, ['C01', 'C02']),
         ('support_oppose_indicator', ScheduleE.support_oppose_indicator,
          ['S', 'O']),
         ('is_notice', ScheduleE.is_notice, [True, False]),
         ('candidate_office_state', ScheduleE.candidate_office_state,
          ['AZ', 'AK']),
         ('candidate_office_district', ScheduleE.candidate_office_district,
          ['00', '01']),
         ('candidate_party', ScheduleE.candidate_party, ['DEM', 'REP']),
         ('candidate_office', ScheduleE.candidate_office, ['H', 'S', 'P']),
     ]
     for label, column, values in filters:
         [
             factories.ScheduleEFactory(**{column.key: value})
             for value in values
         ]
         results = self._results(
             api.url_for(ScheduleEView, **{label: values[0]}))
         assert len(results) == 1
         assert results[0][column.key] == values[0]