Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- django.template.response.ContentNotRenderedError: The response content must be rendered before it can be accessed.
- POST: localhost:8000/api-token-auth/
- {"username": "cchilders", "password": "blahblah"}
- Body
- {
- "token": "4c3008f5130b94e15a52937b56a3cc0ae1e1ee79"
- }
- $ http POST 127.0.0.1:8000/api-token-auth/ username='cchilders' password='blahblah'
- HTTP/1.0 200 OK
- Allow: POST, OPTIONS
- Content-Type: application/json
- Date: Sun, 16 Oct 2016 04:18:02 GMT
- Server: WSGIServer/0.1 Jython/3.5.1
- X-Frame-Options: SAMEORIGIN
- {
- "token": "4c3008f5130b94e15a522342j234234ae1e1ee79"
- }
- from django.contrib.auth.models import User
- from django.urls import reverse
- from model_mommy import mommy
- from api.login.views import customer_login
- from api.mixins import AppUserViewsTests
- class LoginViewTests(AppUserViewsTests):
- def setUp(self):
- super().setUp()
- self.view = customer_login
- self.token_url = reverse('auth-token')
- self.token_test_url = reverse('api:login:token-test')
- self.payload = {'username': 'cchilders', 'password': 'blahblah'}
- self.make_user()
- def test_auth_token_works(self):
- response = self.run_assertion_test(self.token_url, data=self.payload, expected_status_code=200)
- import ipdb; ipdb.set_trace()
- def test_protected_url_with_no_token_given_fails_400(self):
- self.run_assertion_test(self.token_test_url, expected_status_code=400)
- def test_protected_url_with_token_given_works(self):
- response = self.call_view(self.token_url, data=self.payload)
- self.run_assertion_test(self.token_test_url, expected_status_code=200)
- def make_user(self):
- user = mommy.make(User, **self.payload)
- from copy import copy
- from django.contrib.auth.models import User
- from django.test import TransactionTestCase
- from rest_framework.test import APIRequestFactory
- from users.models import AppUser
- class AppUserViewsTests(TransactionTestCase):
- def setUp(self):
- self.factory = APIRequestFactory()
- self.test_email = "fake@fake.com"
- self.phone_number = "8135555555"
- self.base_data = {
- "first_name": "John",
- "last_name": "Doe",
- "email": self.test_email,
- "password": "password",
- }
- def tearDown(self):
- self.clear_test_user()
- def run_assertion_test(self, url=None, method='post', data=None, expected_status_code=None):
- response = self.call_view(url, method=method, data=data)
- self.assertEqual(response.status_code, expected_status_code)
- return response
- def call_view(self, url, method='post', data=None):
- request = getattr(self.factory, method)(url, data=data, content_type='application/json')# format='json')
- response = self.view(request)
- return response
- def create_user_and_app_user(self):
- new_user = User.objects.create(**self.user_creation_data)
- new_user.save()
- new_app_user = AppUser(user=new_user, phone_number=self.phone_number)
- new_app_user.save()
- def clear_test_user(self):
- try:
- app_user = AppUser.objects.get(user__username=self.test_email)
- app_user.delete()
- except:
- pass # all is well
- @property
- def request_data(self):
- this_data = copy(self.base_data)
- this_data.update({'phone_number': self.phone_number})
- return this_data
- @property
- def user_creation_data(self):
- this_data = copy(self.base_data)
- this_data.update({'username': self.test_email})
- return this_data
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement