Skip to content
This repository was archived by the owner on Mar 15, 2018. It is now read-only.

Commit 9e37115

Browse files
author
Andy McKay
committed
update api token page (bug 842382)
1 parent 4f08a99 commit 9e37115

4 files changed

Lines changed: 23 additions & 14 deletions

File tree

apps/amo/tests/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -439,9 +439,9 @@ def skip_if_disabled(self, setting):
439439
if not setting:
440440
raise SkipTest('Skipping since setting is disabled')
441441

442-
def grant_permission(self, user_obj, rules):
442+
def grant_permission(self, user_obj, rules, name='Test Group'):
443443
"""Creates group with rule, and adds user to group."""
444-
group = Group.objects.create(name='Test Group', rules=rules)
444+
group = Group.objects.create(name=name, rules=rules)
445445
GroupUser.objects.create(group=group, user=user_obj)
446446

447447
def days_ago(self, days):

mkt/developers/tests/test_views_api.py

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,22 @@
1-
from django.contrib.auth.models import User
2-
31
from nose.tools import eq_
42

53
import amo.tests
64
from amo.urlresolvers import reverse
5+
from users.models import UserProfile
6+
77
from mkt.api.models import Access
8+
from mkt.site.fixtures import fixture
89

910

1011
class TestAPI(amo.tests.TestCase):
11-
fixtures = ['base/users.json']
12+
fixtures = fixture('user_999')
1213

1314
def setUp(self):
14-
self.user = User.objects.get(username='regular@mozilla.com')
15+
self.profile = UserProfile.objects.get(pk=999)
16+
self.user = self.profile.user
17+
self.login(self.profile)
1518
self.create_switch(name='create-api-tokens')
1619
self.url = reverse('mkt.developers.apps.api')
17-
self.client.login(username='regular@mozilla.com', password='password')
1820

1921
def test_logged_out(self):
2022
self.client.logout()
@@ -38,8 +40,13 @@ def test_regenerate(self):
3840
assert Access.objects.get(user=self.user).secret != 'bar'
3941

4042
def test_admin(self):
41-
admin = User.objects.get(username='editor@mozilla.com')
42-
self.client.login(username='editor@mozilla.com', password='password')
43-
res = self.client.post(self.url, {'delete': 'yep'})
43+
self.grant_permission(self.profile, 'What:ever', name='Admins')
44+
res = self.client.post(self.url)
4445
eq_(res.status_code, 200)
45-
eq_(Access.objects.filter(user=admin).count(), 0)
46+
eq_(Access.objects.filter(user=self.user).count(), 0)
47+
48+
def test_other(self):
49+
self.grant_permission(self.profile, 'What:ever')
50+
res = self.client.post(self.url)
51+
eq_(res.status_code, 302)
52+
eq_(Access.objects.filter(user=self.user).count(), 1)

mkt/developers/views.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -753,9 +753,10 @@ def api(request):
753753
except Access.DoesNotExist:
754754
access = None
755755

756-
roles = request.amo_user.groups.all()
756+
roles = request.amo_user.groups.filter(name='Admins').exists()
757757
if roles:
758-
messages.error(request, _('Users with roles cannot use the API.'))
758+
messages.error(request,
759+
_('Users with the admin role cannot use the API.'))
759760

760761
elif not request.amo_user.read_dev_agreement:
761762
messages.error(request, _('You must accept the terms of service.'))

mkt/site/fixtures/data/user_999.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,8 @@
4141
"notes": "",
4242
"modified": "2010-01-12 17:01:41",
4343
"notifyevents": 1,
44-
"read_dev_agreement": "2012-08-20 00:00:00"
44+
"read_dev_agreement": "2012-08-20 00:00:00",
45+
"user": 999
4546
},
4647
"model": "users.userprofile",
4748
"pk": 999

0 commit comments

Comments
 (0)