Changeset View
Changeset View
Standalone View
Standalone View
swh/search/tests/test_search.py
Show First 20 Lines • Show All 311 Lines • ▼ Show 20 Lines | def test_origin_intrinsic_metadata_inconsistent_type(self): | ||||
actual_page = self.search.origin_search(metadata_pattern="baz qux") | actual_page = self.search.origin_search(metadata_pattern="baz qux") | ||||
assert actual_page.next_page_token is None | assert actual_page.next_page_token is None | ||||
assert actual_page.results == [origin3_bazqux] | assert actual_page.results == [origin3_bazqux] | ||||
actual_page = self.search.origin_search(metadata_pattern="foo bar") | actual_page = self.search.origin_search(metadata_pattern="foo bar") | ||||
assert actual_page.next_page_token is None | assert actual_page.next_page_token is None | ||||
assert actual_page.results == [origin1_foobar] | assert actual_page.results == [origin1_foobar] | ||||
def test_origin_intrinsic_metadata_date(self): | |||||
"""Checks inserting a date-like in a field does not update the mapping to | |||||
require every document uses a date in that field; or that search queries | |||||
use a date either. | |||||
Likewise for numeric fields.""" | |||||
origin1 = {"url": "http://origin1"} | |||||
origin2 = {"url": "http://origin2"} | |||||
self.search.origin_update( | |||||
[ | |||||
{ | |||||
**origin1, | |||||
"intrinsic_metadata": { | |||||
"@context": "https://doi.org/10.5063/schema/codemeta-2.0", | |||||
"dateCreated": "2021-02-18T10:16:52", | |||||
"version": "1.0", | |||||
}, | |||||
} | |||||
] | |||||
) | |||||
self.search.flush() | |||||
self.search.origin_update( | |||||
[ | |||||
{ | |||||
**origin2, | |||||
"intrinsic_metadata": { | |||||
"@context": "https://doi.org/10.5063/schema/codemeta-2.0", | |||||
"dateCreated": "a long time ago", | |||||
"address": "in a galaxy far, far away", | |||||
"version": "a new hope", | |||||
}, | |||||
}, | |||||
] | |||||
) | |||||
self.search.flush() | |||||
actual_page = self.search.origin_search(metadata_pattern="2021") | |||||
assert actual_page.next_page_token is None | |||||
assert actual_page.results == [origin1] | |||||
actual_page = self.search.origin_search(metadata_pattern="long time ago") | |||||
assert actual_page.next_page_token is None | |||||
assert actual_page.results == [origin2] | |||||
# TODO: add more tests with more codemeta terms | # TODO: add more tests with more codemeta terms | ||||
# TODO: add more tests with edge cases | # TODO: add more tests with edge cases | ||||
@settings(deadline=None) | @settings(deadline=None) | ||||
@given(strategies.integers(min_value=1, max_value=4)) | @given(strategies.integers(min_value=1, max_value=4)) | ||||
def test_origin_url_paging(self, limit): | def test_origin_url_paging(self, limit): | ||||
# TODO: no hypothesis | # TODO: no hypothesis | ||||
▲ Show 20 Lines • Show All 81 Lines • Show Last 20 Lines |