def test_search_to_daily_requests(search: Search) -> None: # assert is not None necessary for mypy type checking daily_requests = search.to_daily_requests() assert search.since is not None and search.until is not None assert (search.until - search.since).days == len(daily_requests) for daily_request in daily_requests: assert daily_request.since is not None and daily_request.until is not None assert timedelta(days=1) == daily_request.until - daily_request.since
def test_correct_call_to_batch_daily(capsys: CaptureFixture, tmp_path: Path) -> None: batch_file = tmp_path / "batch.jsonl" request = Search("trump", since=date(2019, 1, 1), until=date(2019, 2, 1)) # Needed for type checking. assert request.until is not None and request.since is not None main(*_make_args(request, to_batch=batch_file, daily=True)) assert capsys.readouterr().out == "" batch = Batch() batch.load(batch_file) assert len(batch) == (request.until - request.since).days for batch_entry, expected_request in zip(batch, request.to_daily_requests()): assert batch_entry.request == expected_request assert batch_entry.id assert batch_entry.completed_at is None assert batch_entry.exception is None
def test_search_into_daily_requests_illegal_args(search: Search) -> None: with pytest.raises(ValueError): search.to_daily_requests()