Skip to content

Commit dd950c6

Browse files
committed
OAuthProvider abstract base class
1 parent 9f822cc commit dd950c6

File tree

2 files changed

+13
-7
lines changed

2 files changed

+13
-7
lines changed

plain-oauth/plain/oauth/providers.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import datetime
22
import secrets
3+
from abc import ABC, abstractmethod
34
from typing import Any
45
from urllib.parse import urlencode
56

@@ -48,7 +49,7 @@ def __str__(self) -> str:
4849
return str(self.provider_id)
4950

5051

51-
class OAuthProvider:
52+
class OAuthProvider(ABC):
5253
authorization_url = ""
5354

5455
def __init__(
@@ -76,14 +77,14 @@ def get_authorization_url_params(self, *, request: Request) -> dict:
7677
"response_type": "code",
7778
}
7879

79-
def refresh_oauth_token(self, *, oauth_token: OAuthToken) -> OAuthToken:
80-
raise NotImplementedError()
80+
@abstractmethod
81+
def refresh_oauth_token(self, *, oauth_token: OAuthToken) -> OAuthToken: ...
8182

82-
def get_oauth_token(self, *, code: str, request: Request) -> OAuthToken:
83-
raise NotImplementedError()
83+
@abstractmethod
84+
def get_oauth_token(self, *, code: str, request: Request) -> OAuthToken: ...
8485

85-
def get_oauth_user(self, *, oauth_token: OAuthToken) -> OAuthUser:
86-
raise NotImplementedError()
86+
@abstractmethod
87+
def get_oauth_user(self, *, oauth_token: OAuthToken) -> OAuthUser: ...
8788

8889
def get_authorization_url(self, *, request: Request) -> str:
8990
return self.authorization_url

plain-oauth/tests/test_backends.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,11 @@ def get_oauth_token(self, *, code, request):
88
access_token="dummy_token",
99
)
1010

11+
def refresh_oauth_token(self, *, oauth_token):
12+
return OAuthToken(
13+
access_token="dummy_refreshed_token",
14+
)
15+
1116
def get_oauth_user(self, *, oauth_token):
1217
return OAuthUser(
1318
provider_id="dummy_user_id",

0 commit comments

Comments
 (0)