Skip to content

Commit ea139fe

Browse files
committed
Merge entities.TokenInfo into auth.Token
1 parent 930246e commit ea139fe

File tree

5 files changed

+38
-46
lines changed

5 files changed

+38
-46
lines changed

gogs_client/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
from gogs_client.auth import Authentication, Token, UsernamePassword
2-
from gogs_client.entities import GogsUser, GogsRepo, TokenInfo
2+
from gogs_client.entities import GogsUser, GogsRepo
33
from gogs_client.interface import GogsApi, ApiFailure, NetworkFailure
44
from gogs_client.updates import GogsUserUpdate

gogs_client/auth.py

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
"""
22
Various classes for Gogs authentication
33
"""
4+
from gogs_client.entities import json_get
45

56

67
class Authentication(object):
@@ -22,11 +23,27 @@ class Token(Authentication):
2223
"""
2324
An immutable represention of a Gogs authentication token
2425
"""
25-
def __init__(self, token):
26+
def __init__(self, token, name=None):
2627
"""
2728
:param str token: contents of Gogs authentication token
2829
"""
2930
self._token = token
31+
self._name = name
32+
33+
@staticmethod
34+
def from_json(parsed_json):
35+
name = json_get(parsed_json, "name")
36+
sha1 = json_get(parsed_json, "sha1")
37+
return Token(sha1, name)
38+
39+
@property
40+
def name(self):
41+
"""
42+
The name of the token
43+
44+
:rtype: str
45+
"""
46+
return self._name
3047

3148
@property
3249
def token(self):

gogs_client/entities.py

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
"""
22
Various immutable classes that represent Gogs entities.
33
"""
4-
from gogs_client.auth import Token
54

65

76
def json_get(parsed_json, key):
@@ -242,27 +241,3 @@ def pull(self):
242241
"""
243242
return self._pull
244243

245-
246-
class TokenInfo(Token):
247-
"""
248-
An immutable representation of a Gogs user token information
249-
"""
250-
251-
def __init__(self, name, sha1):
252-
self._name = name
253-
Token.__init__(self, sha1)
254-
255-
@staticmethod
256-
def from_json(parsed_json):
257-
name = json_get(parsed_json, "name")
258-
sha1 = json_get(parsed_json, "sha1")
259-
return TokenInfo(name, sha1)
260-
261-
@property
262-
def name(self):
263-
"""
264-
The name of the token
265-
266-
:rtype: str
267-
"""
268-
return self._name

gogs_client/interface.py

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import requests
22

33
from gogs_client._implementation.http_utils import RelativeHttpRequestor, append_url
4-
from gogs_client.entities import GogsUser, GogsRepo, TokenInfo
4+
from gogs_client.entities import GogsUser, GogsRepo
5+
from gogs_client.auth import Token
56

67

78
class GogsApi(object):
@@ -51,15 +52,15 @@ def get_tokens(self, auth, username=None):
5152
:param auth.Authentication auth: authentication for user to retrieve
5253
:param str username: username of owner of tokens
5354
54-
:return: list of token info representation
55-
:rtype: List[TokenInfo]
55+
:return: list of token representation
56+
:rtype: List[Token]
5657
:raises NetworkFailure: if there is an error communicating with the server
5758
:raises ApiFailure: if the request cannot be serviced
5859
"""
5960
if username is None:
6061
username = self.authenticated_user(auth).username
6162
response = self._get("/users/{u}/tokens".format(u=username), auth=auth)
62-
return [TokenInfo.from_json(o) for o in self._check_ok(response).json()]
63+
return [Token.from_json(o) for o in self._check_ok(response).json()]
6364

6465
def create_token(self, auth, name, username=None):
6566
"""
@@ -71,16 +72,16 @@ def create_token(self, auth, name, username=None):
7172
:param str name: name of new token
7273
:param str username: username of owner of new token
7374
74-
:return: representation of token info
75-
:rtype: TokenInfo
75+
:return: new token representation
76+
:rtype: Token
7677
:raises NetworkFailure: if there is an error communicating with the server
7778
:raises ApiFailure: if the request cannot be serviced
7879
"""
7980
if username is None:
8081
username = self.authenticated_user(auth).username
8182
data = {"name": name}
8283
response = self._post("/users/{u}/tokens".format(u=username), auth=auth, data=data)
83-
return TokenInfo.from_json(self._check_ok(response).json())
84+
return Token.from_json(self._check_ok(response).json())
8485

8586
def ensure_token(self, auth, name, username=None):
8687
"""
@@ -92,8 +93,8 @@ def ensure_token(self, auth, name, username=None):
9293
:param str name: name of new token
9394
:param str username: username of owner of new token
9495
95-
:return: token authenticator
96-
:rtype: TokenInfo
96+
:return: token representation
97+
:rtype: Token
9798
:raises NetworkFailure: if there is an error communicating with the server
9899
:raises ApiFailure: if the request cannot be serviced
99100
"""

tests/interface_test.py

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,7 @@ def setUp(self):
5151
"auth_username", "password")
5252
self.expected_repo = gogs_client.GogsRepo.from_json(json.loads(self.repo_json_str))
5353
self.expected_user = gogs_client.GogsUser.from_json(json.loads(self.user_json_str))
54-
self.expected_token = gogs_client.TokenInfo.from_json(json.loads(self.token_json_str))
55-
self.token = gogs_client.Token(self.expected_token.token)
54+
self.token = gogs_client.Token.from_json(json.loads(self.token_json_str))
5655

5756
@responses.activate
5857
def test_create_repo1(self):
@@ -249,10 +248,10 @@ def test_ensure_token(self):
249248
responses.add(responses.GET, uri, body="[]", status=200)
250249
responses.add(responses.POST, uri, body=self.token_json_str, status=200)
251250
responses.add(responses.GET, uri, body="["+self.token_json_str+"]", status=200)
252-
token = self.client.ensure_token(self.username_password, self.expected_token.name, self.username_password.username)
253-
self.assert_tokens_equals(token, self.expected_token)
254-
token = self.client.ensure_token(self.username_password, self.expected_token.name, self.username_password.username)
255-
self.assert_tokens_equals(token, self.expected_token)
251+
token = self.client.ensure_token(self.username_password, self.token.name, self.username_password.username)
252+
self.assert_tokens_equals(token, self.token)
253+
token = self.client.ensure_token(self.username_password, self.token.name, self.username_password.username)
254+
self.assert_tokens_equals(token, self.token)
256255

257256
@responses.activate
258257
def test_ensure_auth_token(self):
@@ -263,10 +262,10 @@ def test_ensure_auth_token(self):
263262
responses.add(responses.POST, uri, body=self.token_json_str, status=200)
264263
tokens = self.client.get_tokens(self.username_password)
265264
self.assertEqual(tokens, [])
266-
tokeninfo = self.client.create_token(self.username_password, self.expected_token.name)
267-
self.assert_tokens_equals(tokeninfo, self.expected_token)
268-
token = self.client.ensure_token(self.username_password, self.expected_token.name)
269-
self.assert_tokens_equals(token, self.expected_token)
265+
tokeninfo = self.client.create_token(self.username_password, self.token.name)
266+
self.assert_tokens_equals(tokeninfo, self.token)
267+
token = self.client.ensure_token(self.username_password, self.token.name)
268+
self.assert_tokens_equals(token, self.token)
270269

271270
# helper methods
272271

0 commit comments

Comments
 (0)