Skip to content

Commit 01d7292

Browse files
committed
Merge branch 'master' into details
2 parents d628d86 + e37858d commit 01d7292

File tree

8 files changed

+44
-17
lines changed

8 files changed

+44
-17
lines changed

Pipfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ pytest = "*"
88
pipfile-requirements = "*"
99
pylint = "*"
1010
python-dateutil = "*"
11+
black = "==19.10b0"
1112

1213
[packages]
1314
requests = "*"

pylintrc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[DESIGN]
2+
# Maximum number of public methods for a class (see R0904).
3+
max-public-methods=50

pyproject.toml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
[tool.black]
2+
line-length = 80
3+
target-version = ['py38']
4+
skip-string-normalization = true
5+
include = '\.pyi?$'

scuttle/versions/base.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,14 @@
22

33
import requests
44

5+
56
class BaseApi:
67
version = None
8+
79
def __init__(self, domain, api_key):
810
self.endpoint = "https://{}.scuttle.bluesoul.net/api/v{}".format(
9-
domain, type(self).version)
11+
domain, type(self).version
12+
)
1013
self.api_key = api_key
1114

1215
def request(self, namespace, value=None, data=None):
@@ -15,8 +18,6 @@ def request(self, namespace, value=None, data=None):
1518
if data is not None:
1619
send['data'] = data
1720
response = getattr(requests, method)(
18-
"{}/{}".format(
19-
self.endpoint,
20-
namespace.format(value)),
21-
**send)
21+
"{}/{}".format(self.endpoint, namespace.format(value)), **send
22+
)
2223
return response.json()

scuttle/versions/v1.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ def verbose(self, *args, **kwargs):
5757

5858
class Api(BaseApi):
5959
"""API version 1"""
60+
6061
version = 1
6162

6263
def __init__(self, *args):

scuttle/wrapper.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
from scuttle.versions import v1
88

9+
910
def scuttle(wiki, api_key, api_version=1):
1011
"""Create a new API wrapper for a given wiki and API version.
1112
@@ -18,6 +19,7 @@ def scuttle(wiki, api_key, api_version=1):
1819
raise NotImplementedError
1920
return ApiWrapper(wiki, api_key, api_version)
2021

22+
2123
class ApiWrapper:
2224
def __init__(self, wiki, api_key, api_version):
2325
self.domain = wiki
@@ -27,8 +29,9 @@ def __init__(self, wiki, api_key, api_version):
2729
if self.version == 1:
2830
self.api = v1.Api(self.domain, self.api_key)
2931
else:
30-
raise ModuleNotFoundError("API version {} does not exist."
31-
.format(self.version))
32+
raise ModuleNotFoundError(
33+
"API version {} does not exist.".format(self.version)
34+
)
3235

3336
def __getattr__(self, attr):
3437
# Redirect attribute requests to api.

setup.py

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,25 +6,21 @@
66
from scuttle import __version__
77

88
from os import path
9+
910
this_directory = path.abspath(path.dirname(__file__))
1011
with open(path.join(this_directory, 'README.md'), encoding='utf-8') as f:
1112
long_description = f.read()
1213

1314
setup(
1415
name='scuttle',
1516
version=__version__,
16-
packages=[
17-
'scuttle',
18-
'scuttle.versions'
19-
],
17+
packages=['scuttle', 'scuttle.versions'],
2018
url="http://github.com/scuttle/python-scuttle",
2119
license="MIT",
2220
author="Ross Williams",
2321
author_email="[email protected]",
2422
description="Python wrapper for SCUTTLE API.",
2523
long_description=long_description,
2624
long_description_content_type='text/markdown',
27-
install_requires=[
28-
"requests"
29-
]
25+
install_requires=["requests"],
3026
)

test/test_api.py

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,22 +8,26 @@
88

99
API_KEY = os.environ['SCUTTLE_API_KEY']
1010

11+
1112
def test_basic():
1213
wiki = scuttle.scuttle('en', None, 1)
1314
assert wiki.domain == 'en'
1415
assert wiki.version == 1
1516
assert isinstance(wiki.api, scuttle.versions.v1.Api)
1617

18+
1719
def test_get_nonexistent_version():
1820
with pytest.raises(ModuleNotFoundError) as error:
1921
scuttle.scuttle('en', None, 0)
2022
assert str(error.value) == "API version 0 does not exist."
2123

24+
2225
def test_get_default_version():
2326
wiki = scuttle.scuttle('en', None)
2427
assert wiki.version == 1
2528
assert isinstance(wiki.api, scuttle.versions.v1.Api)
2629

30+
2731
def test_wiki():
2832
wiki = scuttle.scuttle('en', API_KEY, 1)
2933
assert wiki.wikis()[0]['subdomain'] == "admin"
@@ -66,8 +70,16 @@ def test_page():
6670
assert set(pages[0].keys()) == {'id', 'slug', 'wd_page_id'}
6771
page_id = pages[0]['id']
6872
assert wiki.page_by_id(page_id)['id'] == page_id
69-
assert wiki.page_by_slug("scp-001")['metadata']['wikidot_metadata']['fullname'] == "scp-001"
70-
assert wiki.page_by_slug("component:ar-theme")['metadata']['wikidot_metadata']['created_by'] == "Croquembouche"
73+
assert (
74+
wiki.page_by_slug("scp-001")['metadata']['wikidot_metadata']['fullname']
75+
== "scp-001"
76+
)
77+
assert (
78+
wiki.page_by_slug("component:ar-theme")['metadata']['wikidot_metadata'][
79+
'created_by'
80+
]
81+
== "Croquembouche"
82+
)
7183
if len(votes := wiki.page_votes(page_id)) > 0:
7284
assert isinstance(votes[0]['vote'], int)
7385
if len(tags := wiki.page_tags(page_id)) > 0:
@@ -97,13 +109,18 @@ def test_revisions():
97109
assert len(first_rev) == 1
98110
final_rev = wiki.page_revisions.verbose(page_id, limit=1, direction='desc')
99111
print(f"{final_rev=}")
100-
assert first_rev[0]['metadata']['wikidot_metadata']['timestamp'] <= final_rev[0]['metadata']['wikidot_metadata']['timestamp']
112+
assert (
113+
first_rev[0]['metadata']['wikidot_metadata']['timestamp']
114+
<= final_rev[0]['metadata']['wikidot_metadata']['timestamp']
115+
)
116+
101117

102118
def test_forums():
103119
wiki = scuttle.scuttle('en', API_KEY, 1)
104120
forum_id = wiki.forums()[0]['id']
105121
assert wiki.forum(forum_id)['id'] == forum_id
106122

123+
107124
def test_tags():
108125
# TODO
109126
pass

0 commit comments

Comments
 (0)