Projet

Général

Profil

0001-oauth2-add-command-oauth2-create-client-fixes-22949.patch

Benjamin Dauvergne, 03 avril 2018 10:52

Télécharger (3,04 ko)

Voir les différences:

Subject: [PATCH] oauth2: add command oauth2-create-client (fixes #22949)

 .../management/commands/oauth2-create-client.py    | 24 ++++++++++++++++++++++
 tests/test_oauth2.py                               | 23 +++++++++++++++++++++
 2 files changed, 47 insertions(+)
 create mode 100644 fargo/oauth2/management/commands/oauth2-create-client.py
fargo/oauth2/management/commands/oauth2-create-client.py
1
from django.core.management.base import BaseCommand
2

  
3
from fargo.oauth2.models import OAuth2Client
4

  
5

  
6
class Command(BaseCommand):
7
    help = 'Create an OAuth2 client'
8

  
9
    def add_arguments(self, parser):
10
        parser.add_argument('client_name')
11
        parser.add_argument('redirect_uris')
12
        parser.add_argument('--client-id', required=False, default=None)
13
        parser.add_argument('--client-secret', required=False, default=None)
14

  
15
    def handle(self, client_name, redirect_uris, client_id, client_secret, **options):
16
        kwargs = {
17
            'client_name': client_name,
18
            'redirect_uris': redirect_uris,
19
        }
20
        if client_id:
21
            kwargs['client_id'] = client_id
22
        if client_secret:
23
            kwargs['client_secret'] = client_secret
24
        client = OAuth2Client.objects.create(**kwargs)
tests/test_oauth2.py
6 6

  
7 7
from django.core.urlresolvers import reverse
8 8
from django.utils.http import urlencode
9
from django.core.management import call_command
9 10

  
10 11
from fargo.oauth2.models import OAuth2Client, OAuth2Authorize, OAuth2TempFile
11 12
from fargo.fargo.models import UserDocument
......
205 206
    url = reverse('oauth2-get-document')
206 207
    app.authorization = ('Bearer', str(auth.access_token))
207 208
    resp = app.get(url, status=200)
209

  
210

  
211
def test_command_create_client(db):
212
    call_command('oauth2-create-client', 'test', 'https://example.com/')
213
    client = OAuth2Client.objects.get()
214
    assert client.client_name == 'test'
215
    assert client.redirect_uris == 'https://example.com/'
216
    assert client.client_id
217
    assert client.client_secret
218

  
219
    OAuth2Client.objects.all().delete()
220

  
221
    call_command('oauth2-create-client',
222
                 'test',
223
                 'https://example.com/',
224
                 '--client-id=wtf',
225
                 '--client-secret=whocares')
226
    client = OAuth2Client.objects.get()
227
    assert client.client_name == 'test'
228
    assert client.redirect_uris == 'https://example.com/'
229
    assert client.client_id == 'wtf'
230
    assert client.client_secret == 'whocares'
208
-