Skip to content

Commit

Permalink
WIP
Browse files Browse the repository at this point in the history
  • Loading branch information
JWCook committed Sep 12, 2021
1 parent 2ed9ff4 commit 84a8d01
Show file tree
Hide file tree
Showing 3 changed files with 99 additions and 9 deletions.
59 changes: 52 additions & 7 deletions poetry.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ ipython = {optional=true, version="^7.25.0", python=">=3.7"}
linkify-it-py = {optional=true, version="^1.0.1"}
myst-parser = {optional=true, version="^0.15.1"}
nbsphinx = {optional=true, version="^0.8.5" }
sphinx = {optional=true, version="^4.0.2" }
sphinx = {optional=true, version="^4.2.0" }
sphinx-automodapi = {optional=true, version="^0.13" }
sphinx-autodoc-typehints = {optional=true, version="^1.11" }
sphinx-copybutton = {optional=true, version=">=0.3,<0.5" }
Expand All @@ -60,6 +60,7 @@ nox-poetry = "^0.8.6"
pre-commit = "^2.12"
pretty-errors = "^1.2.23"
pytest = "^6.2"
pytest-asyncio = "^0.15.1"
pytest-cov = ">=2.11"
pytest-xdist = ">=2.2"
requests-mock = "^1.8"
Expand Down
46 changes: 45 additions & 1 deletion test/test_paginator.py
Original file line number Diff line number Diff line change
@@ -1 +1,45 @@
# TODO
import pytest

from pyinaturalist.constants import API_V1_BASE_URL
from pyinaturalist.models import Observation
from pyinaturalist.paginator import Paginator
from pyinaturalist.v1 import get_observations
from test.sample_data import SAMPLE_DATA


def test_iter(requests_mock):
requests_mock.get(
f'{API_V1_BASE_URL}/observations',
[
{'json': SAMPLE_DATA['get_observations_node_page1'], 'status_code': 200},
{'json': SAMPLE_DATA['get_observations_node_page2'], 'status_code': 200},
],
)

paginator = Paginator(get_observations, Observation, id=[57754375, 57707611], page='all')
observations = list(paginator)
assert len(observations) == 2


@pytest.mark.asyncio
async def test_async_iter(requests_mock):
requests_mock.get(
f'{API_V1_BASE_URL}/observations',
[
{'json': SAMPLE_DATA['get_observations_node_page1'], 'status_code': 200},
{'json': SAMPLE_DATA['get_observations_node_page2'], 'status_code': 200},
],
)

paginator = Paginator(get_observations, Observation, id=[57754375, 57707611], page='all')
observations = [obs async for obs in paginator]
assert len(observations) == 2


def test_total_results_count(requests_mock):
requests_mock.get(
f'{API_V1_BASE_URL}/observations?per_page=0', json={'results': [], 'total_results': 50}
)

paginator = Paginator(get_observations, Observation, q='asdf')
assert paginator.total_results == 50

0 comments on commit 84a8d01

Please sign in to comment.