Example #1
0
 def test_date_range_creation(self):
     q_a = (
         {
             # Five days (though it looks like four)
             "q": {
                 "start": datetime.date(2017, 1, 1),
                 "end": datetime.date(2017, 1, 5),
                 "gap": 7,
             },
             "a": [(datetime.date(2017, 1, 1), datetime.date(2017, 1, 5))],
         },
         {
             # Six days (though it looks like five)
             "q": {
                 "start": datetime.date(2017, 1, 1),
                 "end": datetime.date(2017, 1, 6),
                 "gap": 7,
             },
             "a": [(datetime.date(2017, 1, 1), datetime.date(2017, 1, 6))],
         },
         {
             # Eight days (though it looks like seven)
             "q": {
                 "start": datetime.date(2017, 1, 1),
                 "end": datetime.date(2017, 1, 8),
                 "gap": 7,
             },
             "a": [
                 (datetime.date(2017, 1, 1), datetime.date(2017, 1, 7)),
                 (datetime.date(2017, 1, 8), datetime.date(2017, 1, 8)),
             ],
         },
         {
             # Gap bigger than range
             "q": {
                 "start": datetime.date(2017, 1, 1),
                 "end": datetime.date(2017, 1, 5),
                 "gap": 1000,
             },
             "a": [(datetime.date(2017, 1, 1), datetime.date(2017, 1, 5))],
         },
         {
             # Ends before starts
             "q": {
                 "start": datetime.date(2017, 1, 5),
                 "end": datetime.date(2017, 1, 1),
                 "gap": 7,
             },
             "a": [],
         },
     )
     for test in q_a:
         result = make_date_range_tuples(**test["q"])
         with self.subTest("Checking dates", test=test["q"]):
             self.assertEqual(result, test["a"])
Example #2
0
 def test_date_range_creation(self):
     q_a = (
         {
             # Six days (though it looks like five)
             'q': {
                 'start': datetime.date(2017, 1, 1),
                 'end': datetime.date(2017, 1, 5),
                 'gap': 7
             },
             'a': [(datetime.date(2017, 1, 1), datetime.date(2017, 1, 5))],
         },
         {
             # Seven days (though it looks like six)
             'q': {
                 'start': datetime.date(2017, 1, 1),
                 'end': datetime.date(2017, 1, 6),
                 'gap': 7
             },
             'a': [(datetime.date(2017, 1, 1), datetime.date(2017, 1, 6))],
         },
         {
             # Eight days (though it looks like seven)
             'q': {
                 'start': datetime.date(2017, 1, 1),
                 'end': datetime.date(2017, 1, 8),
                 'gap': 7
             },
             'a': [(datetime.date(2017, 1, 1), datetime.date(2017, 1, 7)),
                   (datetime.date(2017, 1, 8), datetime.date(2017, 1, 8))],
         },
         {
             # Gap bigger than range
             'q': {
                 'start': datetime.date(2017, 1, 1),
                 'end': datetime.date(2017, 1, 5),
                 'gap': 1000
             },
             'a': [(datetime.date(2017, 1, 1), datetime.date(2017, 1, 5))],
         },
         {
             # Ends before starts
             'q': {
                 'start': datetime.date(2017, 1, 5),
                 'end': datetime.date(2017, 1, 1),
                 'gap': 7
             },
             'a': [],
         })
     for test in q_a:
         result = make_date_range_tuples(**test['q'])
         self.assertEqual(result, test['a'])
Example #3
0
def date_search(options):
    """Collects a list of cases from a date range and adds them to the db.

    :return: None
    """
    start = options["start"]
    end = options["end"]
    logger.info("Getting cases between %s and %s, inclusive", start, end)

    end = min(end, date.today())
    date_ranges = make_date_range_tuples(start, end, gap=7)
    for start, end in date_ranges:
        tasks.fetch_date_range.apply_async(kwargs={
            "start": start,
            "end": end
        },
                                           queue=options["queue"])
Example #4
0
    def query(self, start, end, sort='date_filed', day_span=7):
        """Query the Free Opinions report one day at a time.

        :param start: a date object representing the date you want to start at.
        :param end: a date object representing the date you want to end at.
        :param sort: the order you wish the results to be in, either
        `date_filed` or `case_number`.
        :param day_span: The number of days to query at a time. Defaults to one
        week.
        """
        if self.court_id in self.EXCLUDED_COURT_IDS:
            logger.error("Cannot get written opinions report from '%s'. It is "
                         "not provided by the court or is in disuse." %
                         self.court_id)
            return []

        dates = make_date_range_tuples(start, end, gap=day_span)
        responses = []
        for start, end in dates:
            start = start.strftime('%m/%d/%Y')
            end = end.strftime('%m/%d/%Y')
            # Iterate one day at a time. Any more and PACER chokes.
            logger.info("Querying written opinions report for '%s' between %s "
                        "and %s, ordered by %s" %
                        (self.court_id, start, end, sort))
            data = {
                'filed_from': start,
                'filed_to': end,
                'ShowFull': '1',
                'Key1': self._normalize_sort_param(sort),
                'all_case_ids': '0'
            }
            response = self.session.post(self.url + '?1-L_1_0-1', data=data)
            responses.append(response)

        return responses
 def test_date_range_creation(self):
     q_a = ({
         # Six days (though it looks like five)
         'q': {'start': datetime.date(2017, 1, 1),
               'end': datetime.date(2017, 1, 5),
               'gap': 7},
         'a': [(datetime.date(2017, 1, 1), datetime.date(2017, 1, 5))],
     }, {
         # Seven days (though it looks like six)
         'q': {'start': datetime.date(2017, 1, 1),
               'end': datetime.date(2017, 1, 6),
               'gap': 7},
         'a': [(datetime.date(2017, 1, 1), datetime.date(2017, 1, 6))],
     }, {
         # Eight days (though it looks like seven)
         'q': {'start': datetime.date(2017, 1, 1),
               'end': datetime.date(2017, 1, 8),
               'gap': 7},
         'a': [(datetime.date(2017, 1, 1), datetime.date(2017, 1, 7)),
               (datetime.date(2017, 1, 8), datetime.date(2017, 1, 8))],
     }, {
         # Gap bigger than range
         'q': {'start': datetime.date(2017, 1, 1),
               'end': datetime.date(2017, 1, 5),
               'gap': 1000},
         'a': [(datetime.date(2017, 1, 1), datetime.date(2017, 1, 5))],
     }, {
         # Ends before starts
         'q': {'start': datetime.date(2017, 1, 5),
               'end': datetime.date(2017, 1, 1),
               'gap': 7},
         'a': [],
     })
     for test in q_a:
         result = make_date_range_tuples(**test['q'])
         self.assertEqual(result, test['a'])