Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 0 additions & 4 deletions kinto/core/cornice/service.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,6 @@
SERVICES = []


def clear_services():
SERVICES[:] = []


def get_services(names=None, exclude=None):
def _keep(service):
if exclude is not None and service.name in exclude:
Expand Down
37 changes: 0 additions & 37 deletions kinto/core/storage/utils.py

This file was deleted.

10 changes: 0 additions & 10 deletions kinto/core/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -510,16 +510,6 @@ def instance_uri(request, resource_name, **params):
return strip_uri_prefix(request.route_path(f"{resource_name}-object", **params))


def instance_uri_registry(registry, resource_name, **params):
"""Return the URI for the given resource, even if you don't have a request.

This gins up a request using Request.blank and so does not support
any routes with pregenerators.
"""
request = Request.blank(path="")
request.registry = registry
return instance_uri(request, resource_name, **params)


def apply_json_patch(obj, ops):
"""
Expand Down
19 changes: 18 additions & 1 deletion tests/core/support.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,32 @@
import pytest
from pyramid.authorization import Authenticated
from pyramid.interfaces import IAuthorizationPolicy
from pyramid.request import Request
from zope.interface import implementer

from kinto.core import testing
from kinto.core.cornice.service import SERVICES
from kinto.core.storage.exceptions import BackendError
from kinto.core.utils import sqlalchemy
from kinto.core.utils import instance_uri, sqlalchemy

from .testapp import main as testapp


def clear_services():
SERVICES[:] = []


def instance_uri_registry(registry, resource_name, **params):
"""Return the URI for the given resource, even if you don't have a request.

This gins up a request using Request.blank and so does not support
any routes with pregenerators.
"""
request = Request.blank(path="")
request.registry = registry
return instance_uri(request, resource_name, **params)


# This is the principal a connected user should have (in the tests).
USER_PRINCIPAL = "basicauth:8a931a10fc88ab2f6d1cc02a07d3a81b5d4768f6f13e85c5d8d4180419acb1b4"

Expand Down
61 changes: 0 additions & 61 deletions tests/core/test_storage.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
postgresql,
)
from kinto.core.storage.testing import StorageTest
from kinto.core.storage.utils import paginated
from kinto.core.testing import skip_if_no_postgresql, unittest
from kinto.core.utils import COMPARISON, json
from kinto.core.utils import sqlalchemy as sa
Expand Down Expand Up @@ -314,66 +313,6 @@ def test_pagination_with_modified_field_filter(self):
self.assertLess(obj["last_modified"], before)


class PaginatedTest(unittest.TestCase):
def setUp(self):
self.storage = mock.Mock()
self.sample_objects = [
{"id": "object-01", "flavor": "strawberry"},
{"id": "object-02", "flavor": "banana"},
{"id": "object-03", "flavor": "mint"},
{"id": "object-04", "flavor": "plain"},
{"id": "object-05", "flavor": "peanut"},
]

def sample_objects_side_effect(*args, **kwargs):
return self.sample_objects

self.storage.list_all.side_effect = sample_objects_side_effect

def test_paginated_passes_sort(self):
i = paginated(self.storage, sorting=[Sort("id", -1)])
next(i) # make the generator do anything
self.storage.list_all.assert_called_with(
sorting=[Sort("id", -1)], limit=25, pagination_rules=None
)

def test_paginated_passes_batch_size(self):
i = paginated(self.storage, sorting=[Sort("id", -1)], batch_size=17)
next(i) # make the generator do anything
self.storage.list_all.assert_called_with(
sorting=[Sort("id", -1)], limit=17, pagination_rules=None
)

def test_paginated_yields_objects(self):
iter = paginated(self.storage, sorting=[Sort("id", -1)])
assert next(iter) == {"id": "object-01", "flavor": "strawberry"}

def test_paginated_fetches_next_page(self):
objects = self.sample_objects
objects.reverse()

def list_all_mock(*args, **kwargs):
this_objects = objects[:3]
del objects[:3]
return this_objects

self.storage.list_all.side_effect = list_all_mock

list(paginated(self.storage, sorting=[Sort("id", -1)]))
assert self.storage.list_all.call_args_list == [
mock.call(sorting=[Sort("id", -1)], limit=25, pagination_rules=None),
mock.call(
sorting=[Sort("id", -1)],
limit=25,
pagination_rules=[[Filter("id", "object-03", COMPARISON.LT)]],
),
mock.call(
sorting=[Sort("id", -1)],
limit=25,
pagination_rules=[[Filter("id", "object-01", COMPARISON.LT)]],
),
]


class FormatConditionsEQContainmentTest(unittest.TestCase):
"""Test that _format_conditions uses JSONB containment (@>) for EQ filters
Expand Down
5 changes: 3 additions & 2 deletions tests/core/test_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
find_nested_value,
follow_subrequest,
hmac_digest,
instance_uri_registry,
native_value,
prefixed_principals,
random_bytes_hex,
Expand All @@ -25,6 +24,8 @@
strip_whitespace,
)

from .support import instance_uri_registry


def build_real_request(wsgi_environ):
"""Build a Pyramid request, as if it was instantiated by Pyramid."""
Expand Down Expand Up @@ -317,7 +318,7 @@ def test_merge_non_dict(self):


class InstanceURIRegistryTest(unittest.TestCase):
@mock.patch("kinto.core.utils.instance_uri")
@mock.patch("tests.core.support.instance_uri")
def test_instance_uri_registry_calls_instance_uri(self, instance_uri):
registry = mock.Mock()
instance_uri_registry(registry, "object", a=1)
Expand Down
Loading