Skip to content

Commit f020678

Browse files
committed
Blacken
1 parent 01d7292 commit f020678

File tree

2 files changed

+51
-15
lines changed

2 files changed

+51
-15
lines changed

scuttle/versions/v1.py

Lines changed: 27 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,21 @@
88

99
from .base import BaseApi
1010

11+
1112
class NoNonPaginatedVersionError(Exception):
1213
"""Raised when a non-paginated of a paginated-only method is called."""
1314

15+
1416
def endpoint(endpoint_url):
1517
"""Decorator for API methods. Denotes the URL endpoint."""
18+
1619
@wrapt.decorator
1720
def wrapper(method, instance, args, kwargs):
1821
return instance.request(endpoint_url, *method(*args, **kwargs))
22+
1923
return wrapper
2024

25+
2126
def get_default_data(**kwargs):
2227
"""Returns a POST data dict using default values."""
2328
limit = kwargs.get('limit', 20)
@@ -29,7 +34,8 @@ def get_default_data(**kwargs):
2934
raise TypeError("`offset` must be int")
3035
if not direction in ('asc', 'desc'):
3136
raise ValueError("`direction` must be one of 'asc', 'desc'")
32-
return { 'limit': limit, 'offset': offset, 'direction': direction }
37+
return {'limit': limit, 'offset': offset, 'direction': direction}
38+
3339

3440
class PaginatedMethod:
3541
"""Object representing a method that has a POST paginated version (with
@@ -38,6 +44,7 @@ class PaginatedMethod:
3844
if it were a method. The POST version is accessed by calling the `verbose`
3945
attribute.
4046
"""
47+
4148
def __init__(self, method: Callable, verbose_only: bool = False):
4249
self._method = method
4350
self._verbose_only = verbose_only
@@ -55,6 +62,7 @@ def verbose(self, *args, **kwargs):
5562
data = get_default_data(**kwargs)
5663
return self.__call__(*args, data=data, __verbose=True)
5764

65+
5866
class Api(BaseApi):
5967
"""API version 1"""
6068

@@ -64,14 +72,18 @@ def __init__(self, *args):
6472
super().__init__(*args)
6573
self.pages_since = PaginatedMethod(self._pages_since)
6674
self.page_revisions = PaginatedMethod(self._page_revisions)
67-
self.forum_threads_since = PaginatedMethod(self._forum_threads_since,
68-
True)
75+
self.forum_threads_since = PaginatedMethod(
76+
self._forum_threads_since, True
77+
)
6978
self.thread_posts = PaginatedMethod(self._thread_posts)
70-
self.thread_posts_since = PaginatedMethod(self._thread_posts_since,
71-
True)
79+
self.thread_posts_since = PaginatedMethod(
80+
self._thread_posts_since, True
81+
)
7282
self.wikidotuser_pages = PaginatedMethod(self._wikidotuser_pages)
7383
self.wikidotuser_posts = PaginatedMethod(self._wikidotuser_posts)
74-
self.wikidotuser_revisions = PaginatedMethod(self._wikidotuser_revisions)
84+
self.wikidotuser_revisions = PaginatedMethod(
85+
self._wikidotuser_revisions
86+
)
7587
self.tags_pages = PaginatedMethod(self._tags_pages, True)
7688

7789
def verbose(self, method: Callable, *args, **kwargs):
@@ -107,8 +119,9 @@ def paginated_generator():
107119
offset: int = data['offset']
108120
direction: str = data['direction']
109121
while True:
110-
result = method.verbose(*args, limit=limit, offset=offset,
111-
direction=direction)
122+
result = method.verbose(
123+
*args, limit=limit, offset=offset, direction=direction
124+
)
112125
yield result
113126
if length < data['limit']:
114127
return
@@ -262,14 +275,18 @@ def tag_pages(self, tag: str):
262275
return tag, None
263276

264277
@endpoint("tag/pages")
265-
def _tags_pages(self, tags: Union[List[int], List[str]], operator: str = 'and', *, data):
278+
def _tags_pages(
279+
self, tags: Union[List[int], List[str]], operator: str = 'and', *, data
280+
):
266281
"""
267282
str[] `tags`: A list of tag names.
268283
int[] `tags`: A list of SCUTTLE tag IDs.
269284
str `operator`: 'and' or 'or'; defines how tags are combined.
270285
"""
271286
if isinstance(tags, str):
272-
raise TypeError("`tags` must be a list of at least one tag; use tag_pages() for a single tag name")
287+
raise TypeError(
288+
"`tags` must be a list of at least one tag; use tag_pages() for a single tag name"
289+
)
273290
data['operator'] = operator
274291
if all(isinstance(tag, str) for tag in tags):
275292
data['names'] = tags

test/test_api.py

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ def test_wiki():
3333
assert wiki.wikis()[0]['subdomain'] == "admin"
3434
assert wiki.wiki()['subdomain'] == "en"
3535

36+
3637
def test_pagination():
3738
wiki = scuttle.scuttle('en', API_KEY, 1)
3839
# will be testing on page revisions pagination
@@ -47,23 +48,40 @@ def test_pagination():
4748
assert 'content' in paginated_revisions[0].keys()
4849
assert len(paginated_revisions) == 20
4950

51+
5052
def test_pagination_generator():
5153
wiki = scuttle.scuttle('en', API_KEY, 1)
5254
# make a generator
5355
page_slug = "main"
5456
page_id = wiki.page_by_slug(page_slug)['id']
5557
gen1 = wiki.verbose(wiki.page_revisions, page_id, limit=100)
56-
assert int(next(gen1)[0]['metadata']['wikidot_metadata']['revision_number']) == 0
57-
assert int(next(gen1)[0]['metadata']['wikidot_metadata']['revision_number']) == 100
58+
assert (
59+
int(next(gen1)[0]['metadata']['wikidot_metadata']['revision_number'])
60+
== 0
61+
)
62+
assert (
63+
int(next(gen1)[0]['metadata']['wikidot_metadata']['revision_number'])
64+
== 100
65+
)
5866
# make another generator, see if they interfere
5967
gen2 = wiki.verbose(wiki.page_revisions, page_id, limit=10, offset=10)
60-
assert int(next(gen2)[0]['metadata']['wikidot_metadata']['revision_number']) == 10
61-
assert int(next(gen2)[0]['metadata']['wikidot_metadata']['revision_number']) == 20
62-
assert int(next(gen1)[0]['metadata']['wikidot_metadata']['revision_number']) == 200
68+
assert (
69+
int(next(gen2)[0]['metadata']['wikidot_metadata']['revision_number'])
70+
== 10
71+
)
72+
assert (
73+
int(next(gen2)[0]['metadata']['wikidot_metadata']['revision_number'])
74+
== 20
75+
)
76+
assert (
77+
int(next(gen1)[0]['metadata']['wikidot_metadata']['revision_number'])
78+
== 200
79+
)
6380
# check errors
6481
with pytest.raises(TypeError):
6582
wiki.verbose(len)
6683

84+
6785
def test_page():
6886
wiki = scuttle.scuttle('en', API_KEY, 1)
6987
pages = wiki.pages()
@@ -93,6 +111,7 @@ def test_page():
93111
# assert all(page['metadata']['wd_page_created_at'] >= timestamp
94112
# for page in pages_since_then)
95113

114+
96115
def test_revisions():
97116
wiki = scuttle.scuttle('en', API_KEY, 1)
98117
page_id = wiki.pages()[0]['id']

0 commit comments

Comments
 (0)