Skip to content

Commit

Permalink
Rename db_page_limit -> page_limit_max
Browse files Browse the repository at this point in the history
Update handling of `page_limit` in `_parse_params()`.
  • Loading branch information
CasperWA committed Jan 20, 2020
1 parent 2f361f9 commit 0abf9d8
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 16 deletions.
2 changes: 1 addition & 1 deletion optimade/server/config.ini
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ STRUCTURES_COLLECTION = structures

[SERVER]
PAGE_LIMIT = 20
DB_PAGE_LIMIT = 500
PAGE_LIMIT_MAX = 500
DEFAULT_DB = test_server
; BASE_URL = http://localhost:5000

Expand Down
10 changes: 5 additions & 5 deletions optimade/server/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ def _DEFAULTS(field: str) -> Any:
"references_collection": "references",
"structures_collection": "structures",
"page_limit": 20,
"db_page_limit": 500,
"page_limit_max": 500,
"default_db": "test_server",
"base_url": None,
"implementation": {
Expand Down Expand Up @@ -140,8 +140,8 @@ def load_from_ini(self):
self.page_limit = config.getint(
"SERVER", "PAGE_LIMIT", fallback=self._DEFAULTS("page_limit")
)
self.db_page_limit = config.getint(
"SERVER", "DB_PAGE_LIMIT", fallback=self._DEFAULTS("db_page_limit")
self.page_limit_max = config.getint(
"SERVER", "PAGE_LIMIT_MAX", fallback=self._DEFAULTS("page_limit_max")
)
self.default_db = config.get(
"SERVER", "DEFAULT_DB", fallback=self._DEFAULTS("default_db")
Expand Down Expand Up @@ -205,8 +205,8 @@ def load_from_json(self):
)

self.page_limit = int(config.get("page_limit", self._DEFAULTS("page_limit")))
self.db_page_limit = int(
config.get("db_page_limit", self._DEFAULTS("db_page_limit"))
self.page_limit_max = int(
config.get("page_limit_max", self._DEFAULTS("page_limit_max"))
)
self.default_db = config.get("default_db", self._DEFAULTS("default_db"))
self.base_url = config.get("base_url", self._DEFAULTS("base_url"))
Expand Down
12 changes: 5 additions & 7 deletions optimade/server/entry_collections.py
Original file line number Diff line number Diff line change
Expand Up @@ -175,17 +175,15 @@ def _parse_params(
)

if getattr(params, "page_limit", False):
limit = CONFIG.page_limit
if params.page_limit != CONFIG.page_limit:
limit = params.page_limit
if limit > CONFIG.db_page_limit:
limit = params.page_limit
if limit > CONFIG.page_limit_max:
raise HTTPException(
status_code=403, # Forbidden
detail=f"Max allowed page_limit is {CONFIG.db_page_limit}, you requested {limit}",
detail=f"Max allowed page_limit is {CONFIG.page_limit_max}, you requested {limit}",
)
if limit == 0:
limit = CONFIG.page_limit
cursor_kwargs["limit"] = limit
else:
cursor_kwargs["limit"] = CONFIG.page_limit

# All OPTiMaDe fields
fields = self.resource_mapper.TOP_LEVEL_NON_ATTRIBUTES_FIELDS.copy()
Expand Down
6 changes: 3 additions & 3 deletions tests/server/test_server.py
Original file line number Diff line number Diff line change
Expand Up @@ -336,15 +336,15 @@ def test_page_limit(self):
expected_return = 6
self._check_response(request, expected_ids, expected_return)

def test_db_page_limit(self):
def test_page_limit_max(self):
from optimade.server.config import CONFIG

request = f"/structures?page_limit={CONFIG.db_page_limit + 1}"
request = f"/structures?page_limit={CONFIG.page_limit_max + 1}"
self._check_error_response(
request,
expected_status=403,
expected_title="HTTPException",
expected_detail=f"Max allowed page_limit is {CONFIG.db_page_limit}, you requested {CONFIG.db_page_limit + 1}",
expected_detail=f"Max allowed page_limit is {CONFIG.page_limit_max}, you requested {CONFIG.page_limit_max + 1}",
)

def test_list_has_all(self):
Expand Down

0 comments on commit 0abf9d8

Please sign in to comment.