aboutsummaryrefslogtreecommitdiff
path: root/apps/notes/tests/test_views.py
diff options
context:
space:
mode:
Diffstat (limited to 'apps/notes/tests/test_views.py')
-rw-r--r--apps/notes/tests/test_views.py58
1 files changed, 44 insertions, 14 deletions
diff --git a/apps/notes/tests/test_views.py b/apps/notes/tests/test_views.py
index 3f21b0b..05cb8db 100644
--- a/apps/notes/tests/test_views.py
+++ b/apps/notes/tests/test_views.py
@@ -1,9 +1,11 @@
import json
from django.test import Client
from django.test import RequestFactory, TestCase
+from django.urls import reverse
from rest_framework.test import force_authenticate
from rest_framework.test import APIRequestFactory
+from rest_framework.test import APIClient
from mixer.backend.django import mixer
from accounts.models import User
@@ -11,28 +13,32 @@ from notes.models import Note
from notes.views import NoteListView, NoteViewSet
-class StoriesViewTest(TestCase):
+class NotesViewsTest(TestCase):
def setUp(self):
# Every test needs access to the request factory.
self.factory = RequestFactory()
# test API with rest framework request factory.
self.apifactory = APIRequestFactory()
- self.user = mixer.blend(User, username='tpynchon', password="gravity")
+ self.client = Client()
+ # and test with rest client
+ self.apiclient = APIClient()
+ self.user = User.objects.create(username='testuser', password='password')
+ self.bad_user = User.objects.create(username='someoneelse', password='password')
self.note = Note.objects.create(
created_by=self.user,
title="test note",
- body_markdown="the body of the note",
+ body="the body of the note",
url="https://luxagraf.net/",
)
self.note.tags.add("mine,cool site")
self.note.save()
def test_list_view(self):
- request = self.factory.get('/%s/notes/' % (self.user.username))
+ request = self.factory.get('/notes/')
request.user = self.user
response = NoteListView.as_view()(request)
self.assertEqual(response.status_code, 200)
- response.render()
+ # bad_user
def test_api_list(self):
# Make an authenticated request to the view...
@@ -45,13 +51,37 @@ class StoriesViewTest(TestCase):
self.assertEqual(api_data['title'], 'test note')
self.assertEqual(api_data['tags'], ['mine,cool site'])
- def test_api_(self):
- # Make an authenticated request to the view...
- request = self.factory.get('/api/notes/')
- force_authenticate(request, user=self.user)
- response = NoteViewSet.as_view({'get': 'list'})(request)
- self.assertEqual(response.status_code, 200)
+ def test_note_create(self):
+ '''
+ post some data to create a new note
+ '''
+ data = {
+ 'title': "test note post",
+ 'body': "the body of the note",
+ 'url': "https://luxagraf.net/",
+ 'tags': [],
+ }
+ self.apiclient.force_authenticate(self.user)
+ url = reverse("notes:notes-list")
+ response = self.apiclient.post(url, data, format='json')
+ self.assertEqual(response.status_code, 201)
+ self.assertEqual(Note.objects.count(), 2)
response.render()
- api_data = json.loads(response.content.decode('utf8'))[0]
- self.assertEqual(api_data['title'], 'test note')
- self.assertEqual(api_data['tags'], ['mine,cool site'])
+ api_data = json.loads(response.content.decode('utf8'))
+ self.assertEqual(api_data['title'], 'test note post')
+ self.assertEqual(api_data['body'], 'the body of the note')
+ self.assertEqual(api_data['tags'], [])
+
+ def test_note_create_bad(self):
+ # create another user
+ data = {
+ 'title': "",
+ 'body': "the body of the note",
+ 'url': "https://luxagraf.net/",
+ 'tags': [],
+ }
+ url = reverse("notes:notes-list")
+ self.apiclient.force_authenticate(self.user)
+ response = self.apiclient.post(url, data, format='json')
+ self.assertEqual(response.status_code, 400)
+ self.assertEqual(Note.objects.count(), 1)