From f98641ef97e995838befd9e9424ed463d3d8bbae Mon Sep 17 00:00:00 2001 From: Sergei Azarkin Date: Tue, 12 Sep 2017 14:18:25 +0300 Subject: [PATCH] Fix authtoken managment command username param --- .../management/commands/drf_create_token.py | 21 ++++++++++--------- tests/test_authtoken.py | 10 +++++++++ 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/rest_framework/authtoken/management/commands/drf_create_token.py b/rest_framework/authtoken/management/commands/drf_create_token.py index 417bdd780..9f1d3563f 100644 --- a/rest_framework/authtoken/management/commands/drf_create_token.py +++ b/rest_framework/authtoken/management/commands/drf_create_token.py @@ -31,15 +31,16 @@ class Command(BaseCommand): ) def handle(self, *args, **options): - username = options['username'] + usernames = options['username'] reset_token = options['reset_token'] - try: - token = self.create_user_token(username, reset_token) - except UserModel.DoesNotExist: - raise CommandError( - 'Cannot create the Token: user {0} does not exist'.format( - username) - ) - self.stdout.write( - 'Generated token {0} for user {1}'.format(token.key, username)) + for username in usernames: + try: + token = self.create_user_token(username, reset_token) + except UserModel.DoesNotExist: + raise CommandError( + 'Cannot create the Token: user {0} does not exist'.format( + username) + ) + self.stdout.write( + 'Generated token {0} for user {1}'.format(token.key, username)) diff --git a/tests/test_authtoken.py b/tests/test_authtoken.py index 6374d7141..5df053da3 100644 --- a/tests/test_authtoken.py +++ b/tests/test_authtoken.py @@ -1,7 +1,9 @@ import pytest from django.contrib.admin import site from django.contrib.auth.models import User +from django.core.management import call_command from django.test import TestCase +from django.utils.six import StringIO from rest_framework.authtoken.admin import TokenAdmin from rest_framework.authtoken.management.commands.drf_create_token import \ @@ -68,3 +70,11 @@ class AuthTokenCommandTests(TestCase): second_token_key = Token.objects.first().key assert first_token_key == second_token_key + + def test_command_output(self): + out = StringIO() + call_command('drf_create_token', self.user.username, stdout=out) + token_saved = Token.objects.first() + self.assertIn('Generated token', out.getvalue()) + self.assertIn(self.user.username, out.getvalue()) + self.assertIn(token_saved.key, out.getvalue())