diff --git a/webapp-django/crashstats/tokens/tests/test_middleware.py b/webapp-django/crashstats/tokens/tests/test_middleware.py index dd03da0eba..6805728660 100644 --- a/webapp-django/crashstats/tokens/tests/test_middleware.py +++ b/webapp-django/crashstats/tokens/tests/test_middleware.py @@ -1,7 +1,7 @@ import datetime import json -from nose.tools import eq_, ok_, assert_raises +import pytest from django.contrib.auth.models import User, Permission from django.conf import settings @@ -24,11 +24,8 @@ class TestMiddleware(DjangoTestCase): def test_impropertly_configured(self): request = RequestFactory().get('/') - assert_raises( - ImproperlyConfigured, - self.middleware.process_request, - request - ) + with pytest.raises(ImproperlyConfigured): + self.middleware.process_request(request) def _get_request(self, **headers): # boilerplate stuff @@ -40,16 +37,16 @@ def _get_request(self, **headers): def test_no_token_key(self): request = self._get_request() - eq_(self.middleware.process_request(request), None) + assert self.middleware.process_request(request) is None def test_non_existant_token_key(self): request = self._get_request(HTTP_AUTH_TOKEN='xxx') response = self.middleware.process_request(request) - eq_(response.status_code, 403) + assert response.status_code == 403 # the response content will be JSON result = json.loads(response.content) - eq_(result['error'], 'API Token not matched') + assert result['error'] == 'API Token not matched' def test_expired_token(self): user = User.objects.create(username='peterbe') @@ -63,9 +60,9 @@ def test_expired_token(self): request = self._get_request(HTTP_AUTH_TOKEN=token.key) response = self.middleware.process_request(request) - eq_(response.status_code, 403) + assert response.status_code == 403 result = json.loads(response.content) - eq_(result['error'], 'API Token found but expired') + assert result['error'] == 'API Token found but expired' def test_token_valid(self): user = User.objects.create(username='peterbe') @@ -75,8 +72,8 @@ def test_token_valid(self): request = self._get_request(HTTP_AUTH_TOKEN=token.key) response = self.middleware.process_request(request) - eq_(response, None) - eq_(request.user, user) + assert response is None + assert request.user == user def test_token_permissions(self): user = User.objects.create(username='peterbe') @@ -101,9 +98,9 @@ def test_token_permissions(self): request = self._get_request(HTTP_AUTH_TOKEN=token.key) # do the magic to the request self.middleware.process_request(request) - eq_(request.user, user) - ok_(request.user.has_perm('crashstats.play')) - ok_(not request.user.has_perm('crashstats.fire')) + assert request.user == user + assert request.user.has_perm('crashstats.play') + assert not request.user.has_perm('crashstats.fire') def test_token_on_inactive_user(self): user = User.objects.create(username='peterbe') @@ -115,6 +112,6 @@ def test_token_on_inactive_user(self): request = self._get_request(HTTP_AUTH_TOKEN=token.key) response = self.middleware.process_request(request) - eq_(response.status_code, 403) + assert response.status_code == 403 result = json.loads(response.content) - eq_(result['error'], 'User of API token not active') + assert result['error'] == 'User of API token not active' diff --git a/webapp-django/crashstats/tokens/tests/test_models.py b/webapp-django/crashstats/tokens/tests/test_models.py index 144b2b17b7..40f0000999 100644 --- a/webapp-django/crashstats/tokens/tests/test_models.py +++ b/webapp-django/crashstats/tokens/tests/test_models.py @@ -1,7 +1,5 @@ import datetime -from nose.tools import eq_, ok_ - from django.utils import timezone from django.contrib.auth.models import User, Permission, Group from django.conf import settings @@ -18,19 +16,16 @@ def test_create_token(self): user=bob, notes='Some notes' ) - eq_(len(token.key), 32) + assert len(token.key) == 32 now = timezone.now() future = now + datetime.timedelta( days=settings.TOKENS_DEFAULT_EXPIRATION_DAYS ) - eq_( - token.expires.strftime('%Y%m%d%H%M'), - future.strftime('%Y%m%d%H%M') - ) + assert token.expires.strftime('%Y%m%d%H%M') == future.strftime('%Y%m%d%H%M') # using __repr__ shouldn't reveal the key - ok_(token.key not in repr(token)) + assert token.key not in repr(token) def test_token_manager(self): bob = User.objects.create(username='bob') @@ -45,8 +40,8 @@ def test_token_manager(self): notes='First one', expires=now ) - eq_(models.Token.objects.all().count(), 2) - eq_(models.Token.objects.active().count(), 1) + assert models.Token.objects.all().count() == 2 + assert models.Token.objects.active().count() == 1 def test_is_expired(self): bob = User.objects.create(username='bob') @@ -54,12 +49,12 @@ def test_is_expired(self): user=bob, notes='Some notes' ) - ok_(not token.is_expired) + assert not token.is_expired now = timezone.now() yesterday = now - datetime.timedelta(days=1) token.expires = yesterday token.save() - ok_(token.is_expired) + assert token.is_expired def test_api_token_losing_permissions(self): bob = User.objects.create(username='bob') @@ -82,6 +77,6 @@ def test_api_token_losing_permissions(self): # reload the token token = models.Token.objects.get(id=token.id) - ok_(permission not in token.permissions.all()) + assert permission not in token.permissions.all() # it should still have this one though - ok_(permission2 in token.permissions.all()) + assert permission2 in token.permissions.all() diff --git a/webapp-django/crashstats/tokens/tests/test_views.py b/webapp-django/crashstats/tokens/tests/test_views.py index 32ee0c8e75..81bdccc71d 100644 --- a/webapp-django/crashstats/tokens/tests/test_views.py +++ b/webapp-django/crashstats/tokens/tests/test_views.py @@ -1,5 +1,4 @@ import pyquery -from nose.tools import eq_, ok_ from django.core.urlresolvers import reverse from django.contrib.contenttypes.models import ContentType @@ -38,7 +37,7 @@ def test_home_page(self): user = self._login() response = self.client.get(url) - eq_(response.status_code, 200) + assert response.status_code == 200 user.is_active = False user.save() @@ -52,10 +51,10 @@ def test_generate_new_token_form(self): url = reverse('tokens:home') user = self._login() response = self.client.get(url) - eq_(response.status_code, 200) + assert response.status_code == 200 # which choices you have depend in your owned permissions doc = pyquery.PyQuery(response.content) - eq_(len(doc('#id_permissions')), 0) + assert len(doc('#id_permissions')) == 0 p1 = self._make_permission('Make a mess', 'make-mess') p2 = self._make_permission('Clean Things', 'cool-things') @@ -70,10 +69,10 @@ def test_generate_new_token_form(self): assert user.has_perm('crashstats.%s' % p3.codename) response = self.client.get(url) - eq_(response.status_code, 200) + assert response.status_code == 200 # which choices you have depend in your owned permissions doc = pyquery.PyQuery(response.content) - eq_(len(doc('#id_permissions option')), 2) + assert len(doc('#id_permissions option')) == 2 def test_generate_new_token(self): url = reverse('tokens:home') @@ -95,18 +94,18 @@ def test_generate_new_token(self): response = self.client.post(url, { 'notes': ' Some notes ', }) - eq_(response.status_code, 302) + assert response.status_code == 302 token, = models.Token.objects.all() - eq_(token.notes, 'Some notes') - eq_(token.permissions.all().count(), 0) + assert token.notes == 'Some notes' + assert token.permissions.all().count() == 0 token.delete() # The 'notes' field can't been too long response = self.client.post(url, { 'notes': 'X' * 10000, }) - eq_(response.status_code, 200) - ok_('Text too long' in response.content) + assert response.status_code == 200 + assert 'Text too long' in response.content group = Group.objects.create(name='Cool people') group.permissions.add(p1) @@ -119,20 +118,20 @@ def test_generate_new_token(self): }) # Because you tried to assign this token permissions you # don't have. - eq_(response.status_code, 403) + assert response.status_code == 403 response = self.client.post(url, { 'notes': ' Some notes ', 'permissions': [p1.pk, p3.pk] }) - eq_(response.status_code, 302) + assert response.status_code == 302 token, = models.Token.objects.active().filter(user=user) - eq_(set(token.permissions.all()), set([p1, p3])) + assert set(token.permissions.all()) == set([p1, p3]) # this should be listed on the home page now response = self.client.get(url) - eq_(response.status_code, 200) - ok_('data-key="{}"'.format(token.key) in response.content) + assert response.status_code == 200 + assert 'data-key="{}"'.format(token.key) in response.content def test_delete_token(self): user = self._login() @@ -148,13 +147,13 @@ def test_delete_token(self): url = reverse('tokens:delete_token', args=(token1.pk,)) # Just like a good logout endpoint, shouldn't be able to GET there. response = self.client.get(url) - eq_(response.status_code, 405) + assert response.status_code == 405 # It has to be post. response = self.client.post(url) - eq_(response.status_code, 302) - ok_(not models.Token.objects.filter(notes='Some note')) + assert response.status_code == 302 + assert not models.Token.objects.filter(notes='Some note') # but you can't delete someone elses url = reverse('tokens:delete_token', args=(token_other_user.pk,)) response = self.client.post(url) - eq_(response.status_code, 404) + assert response.status_code == 404