def test_create_if_exists_runs_in_parallel(self):
     http = Http_TestDouble(use_sleep=True)
     inmates = Inmates_TestDouble()
     monitor = Mock()
     inmate_scraper = InmatesScraper(http, inmates, InmateDetails_TestDouble, monitor)
     jail_ids = ['jail_id_%d' % j_id for j_id in range(1, 6)]
     expected_http_calls_args = []
     expected_inmate_details_calls_args = []
     for jail_id in jail_ids:
         expected_http_calls_args.append(CCJ_INMATE_DETAILS_URL + jail_id)
         if not http.bad_response_desired(jail_id):
             expected_inmate_details_calls_args.append(InmateDetails_TestDouble(jail_id))
     expected_inmate_details_calls_args.append(expected_inmate_details_calls_args.pop(0))
     inmate_create_if_msgs = []
     count = len(expected_inmate_details_calls_args)
     start_time = datetime.now()
     for jail_id in jail_ids:
         inmate_scraper.create_if_exists(jail_id)
     while count > 0:
         inmate_create_if_msgs.append(inmates.msg())
         count -= 1
     end_time = datetime.now()
     assert (end_time - start_time).seconds == ONE_SECOND # All processing should happen with a second
     assert inmates.msg_q_size() == 0  # make sure did not receive more messages than expected.
     assert http.get_args_list() == expected_http_calls_args
     assert expected_inmate_details_calls_args == inmate_create_if_msgs
 def test_finish(self):
     http = Http_TestDouble(use_sleep=True)
     inmates = Inmates_TestDouble()
     monitor = Mock()
     inmate_scraper = InmatesScraper(http, inmates, InmateDetails_TestDouble, monitor)
     inmate_scraper.finish()
     assert monitor.notify.call_args_list == [call(inmate_scraper.__class__, inmate_scraper.FINISHED_PROCESSING)]
Example #3
0
 def test_create_if_exists_runs_in_parallel(self):
     http = Http_TestDouble(use_sleep=True)
     inmates = Inmates_TestDouble()
     monitor = Mock()
     inmate_scraper = InmatesScraper(http, inmates,
                                     InmateDetails_TestDouble, monitor)
     jail_ids = ['jail_id_%d' % j_id for j_id in range(1, 6)]
     expected_http_calls_args = []
     expected_inmate_details_calls_args = []
     for jail_id in jail_ids:
         expected_http_calls_args.append(CCJ_INMATE_DETAILS_URL + jail_id)
         if not http.bad_response_desired(jail_id):
             expected_inmate_details_calls_args.append(
                 InmateDetails_TestDouble(jail_id))
     expected_inmate_details_calls_args.append(
         expected_inmate_details_calls_args.pop(0))
     inmate_create_if_msgs = []
     count = len(expected_inmate_details_calls_args)
     start_time = datetime.now()
     for jail_id in jail_ids:
         inmate_scraper.create_if_exists(jail_id)
     while count > 0:
         inmate_create_if_msgs.append(inmates.msg())
         count -= 1
     end_time = datetime.now()
     assert (
         end_time - start_time
     ).seconds == ONE_SECOND  # All processing should happen with a second
     assert inmates.msg_q_size(
     ) == 0  # make sure did not receive more messages than expected.
     assert http.get_args_list() == expected_http_calls_args
     assert expected_inmate_details_calls_args == inmate_create_if_msgs
Example #4
0
 def test_finish(self):
     http = Http_TestDouble(use_sleep=True)
     inmates = Inmates_TestDouble()
     monitor = Mock()
     inmate_scraper = InmatesScraper(http, inmates,
                                     InmateDetails_TestDouble, monitor)
     inmate_scraper.finish()
     assert monitor.notify.call_args_list == [
         call(inmate_scraper.__class__, inmate_scraper.FINISHED_PROCESSING)
     ]
 def test_create_if_exists_calls_http(self):
     http = Http_TestDouble(get_succeeds_always=True)
     inmates = Mock()
     monitor = Mock()
     inmate_scraper = InmatesScraper(http, inmates, InmateDetails_TestDouble, monitor)
     jail_ids = ['jail_id_%d' % id for id in range(1, 5)]
     expected_http_calls_args = []
     for jail_id in jail_ids:
         expected_http_calls_args.append(CCJ_INMATE_DETAILS_URL + jail_id)
         inmate_scraper.create_if_exists(jail_id)
     assert http.get_args_list() == expected_http_calls_args
 def test_create_if_exists_adds_inmates(self):
     http = Http_TestDouble()
     inmates = Mock()
     monitor = Mock()
     inmate_scraper = InmatesScraper(http, inmates, InmateDetails_TestDouble, monitor)
     jail_ids = ['jail_id_%d' % j_id for j_id in range(1, 5)]
     expected_inmate_details_calls_args = []
     for jail_id in jail_ids:
         if not http.bad_response_desired(jail_id):
             expected_inmate_details_calls_args.append(call(jail_id, InmateDetails_TestDouble(jail_id)))
         inmate_scraper.create_if_exists(jail_id)
     assert inmates.add.call_args_list == expected_inmate_details_calls_args
Example #7
0
 def test_create_if_exists_calls_http(self):
     http = Http_TestDouble(get_succeeds_always=True)
     inmates = Mock()
     monitor = Mock()
     inmate_scraper = InmatesScraper(http, inmates,
                                     InmateDetails_TestDouble, monitor)
     jail_ids = ['jail_id_%d' % id for id in range(1, 5)]
     expected_http_calls_args = []
     for jail_id in jail_ids:
         expected_http_calls_args.append(CCJ_INMATE_DETAILS_URL + jail_id)
         inmate_scraper.create_if_exists(jail_id)
     assert http.get_args_list() == expected_http_calls_args
 def test_resurrect_if_found(self):
     http = Http_TestDouble()
     inmates = Mock()
     monitor = Mock()
     inmate_scraper = InmatesScraper(http, inmates, InmateDetails_TestDouble, monitor)
     jail_ids = ['jail_id_%d' % id for id in range(1, 5)]
     expected_update_calls_args = []
     for jail_id in jail_ids:
         if not http.bad_response_desired(jail_id):
             expected_update_calls_args.append(call(jail_id, InmateDetails_TestDouble(jail_id)))
     for jail_id in jail_ids:
         inmate_scraper.resurrect_if_found(jail_id)
     assert inmates.update.call_args_list == expected_update_calls_args
Example #9
0
 def test_create_if_exists_adds_inmates(self):
     http = Http_TestDouble()
     inmates = Mock()
     monitor = Mock()
     inmate_scraper = InmatesScraper(http, inmates,
                                     InmateDetails_TestDouble, monitor)
     jail_ids = ['jail_id_%d' % j_id for j_id in range(1, 5)]
     expected_inmate_details_calls_args = []
     for jail_id in jail_ids:
         if not http.bad_response_desired(jail_id):
             expected_inmate_details_calls_args.append(
                 call(jail_id, InmateDetails_TestDouble(jail_id)))
         inmate_scraper.create_if_exists(jail_id)
     assert inmates.add.call_args_list == expected_inmate_details_calls_args
Example #10
0
 def test_resurrect_if_found(self):
     http = Http_TestDouble()
     inmates = Mock()
     monitor = Mock()
     inmate_scraper = InmatesScraper(http, inmates,
                                     InmateDetails_TestDouble, monitor)
     jail_ids = ['jail_id_%d' % id for id in range(1, 5)]
     expected_update_calls_args = []
     for jail_id in jail_ids:
         if not http.bad_response_desired(jail_id):
             expected_update_calls_args.append(
                 call(jail_id, InmateDetails_TestDouble(jail_id)))
     for jail_id in jail_ids:
         inmate_scraper.resurrect_if_found(jail_id)
     assert inmates.update.call_args_list == expected_update_calls_args