Advertisement
Guest User

Untitled

a guest
Oct 15th, 2016
265
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.53 KB | None | 0 0
  1. django.template.response.ContentNotRenderedError: The response content must be rendered before it can be accessed.
  2.  
  3. POST: localhost:8000/api-token-auth/
  4. {"username": "cchilders", "password": "blahblah"}
  5.  
  6. Body
  7. {
  8. "token": "4c3008f5130b94e15a52937b56a3cc0ae1e1ee79"
  9. }
  10.  
  11. $ http POST 127.0.0.1:8000/api-token-auth/ username='cchilders' password='blahblah'
  12. HTTP/1.0 200 OK
  13. Allow: POST, OPTIONS
  14. Content-Type: application/json
  15. Date: Sun, 16 Oct 2016 04:18:02 GMT
  16. Server: WSGIServer/0.1 Jython/3.5.1
  17. X-Frame-Options: SAMEORIGIN
  18.  
  19. {
  20. "token": "4c3008f5130b94e15a522342j234234ae1e1ee79"
  21. }
  22.  
  23. from django.contrib.auth.models import User
  24. from django.urls import reverse
  25.  
  26. from model_mommy import mommy
  27.  
  28. from api.login.views import customer_login
  29. from api.mixins import AppUserViewsTests
  30.  
  31.  
  32. class LoginViewTests(AppUserViewsTests):
  33.  
  34. def setUp(self):
  35. super().setUp()
  36. self.view = customer_login
  37. self.token_url = reverse('auth-token')
  38. self.token_test_url = reverse('api:login:token-test')
  39. self.payload = {'username': 'cchilders', 'password': 'blahblah'}
  40. self.make_user()
  41.  
  42. def test_auth_token_works(self):
  43. response = self.run_assertion_test(self.token_url, data=self.payload, expected_status_code=200)
  44. import ipdb; ipdb.set_trace()
  45.  
  46. def test_protected_url_with_no_token_given_fails_400(self):
  47. self.run_assertion_test(self.token_test_url, expected_status_code=400)
  48.  
  49. def test_protected_url_with_token_given_works(self):
  50. response = self.call_view(self.token_url, data=self.payload)
  51. self.run_assertion_test(self.token_test_url, expected_status_code=200)
  52.  
  53. def make_user(self):
  54. user = mommy.make(User, **self.payload)
  55.  
  56. from copy import copy
  57.  
  58. from django.contrib.auth.models import User
  59. from django.test import TransactionTestCase
  60. from rest_framework.test import APIRequestFactory
  61.  
  62. from users.models import AppUser
  63.  
  64.  
  65. class AppUserViewsTests(TransactionTestCase):
  66.  
  67. def setUp(self):
  68. self.factory = APIRequestFactory()
  69. self.test_email = "fake@fake.com"
  70. self.phone_number = "8135555555"
  71. self.base_data = {
  72. "first_name": "John",
  73. "last_name": "Doe",
  74. "email": self.test_email,
  75. "password": "password",
  76. }
  77.  
  78. def tearDown(self):
  79. self.clear_test_user()
  80.  
  81. def run_assertion_test(self, url=None, method='post', data=None, expected_status_code=None):
  82. response = self.call_view(url, method=method, data=data)
  83. self.assertEqual(response.status_code, expected_status_code)
  84. return response
  85.  
  86. def call_view(self, url, method='post', data=None):
  87. request = getattr(self.factory, method)(url, data=data, content_type='application/json')# format='json')
  88. response = self.view(request)
  89. return response
  90.  
  91. def create_user_and_app_user(self):
  92. new_user = User.objects.create(**self.user_creation_data)
  93. new_user.save()
  94. new_app_user = AppUser(user=new_user, phone_number=self.phone_number)
  95. new_app_user.save()
  96.  
  97. def clear_test_user(self):
  98. try:
  99. app_user = AppUser.objects.get(user__username=self.test_email)
  100. app_user.delete()
  101. except:
  102. pass # all is well
  103.  
  104. @property
  105. def request_data(self):
  106. this_data = copy(self.base_data)
  107. this_data.update({'phone_number': self.phone_number})
  108. return this_data
  109.  
  110. @property
  111. def user_creation_data(self):
  112. this_data = copy(self.base_data)
  113. this_data.update({'username': self.test_email})
  114. return this_data
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement