aboutsummaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authormarkotibold2011-03-11 12:47:16 +0100
committermarkotibold2011-03-11 12:47:16 +0100
commitecb82b0318f5dae29f4a00416fb279dff549c3b1 (patch)
tree5981e8c34ebdfb6ba0bd393dad608a881d2fffdf /examples
parentd6e7e95d95e7367f0d999c14d874d810a028a177 (diff)
downloaddjango-rest-framework-ecb82b0318f5dae29f4a00416fb279dff549c3b1.tar.bz2
Refactoring and added another test for blog-posts. Finally got eclipse setup properly with virtualenvs (code analysis). Also I think I get Bitbuckets workflow now.
Diffstat (limited to 'examples')
-rw-r--r--examples/blogpost/tests.py32
-rw-r--r--examples/blogpost/views.py5
-rw-r--r--examples/pygments_api/tests.py2
3 files changed, 26 insertions, 13 deletions
diff --git a/examples/blogpost/tests.py b/examples/blogpost/tests.py
index 9fd17707..3cc1aed0 100644
--- a/examples/blogpost/tests.py
+++ b/examples/blogpost/tests.py
@@ -4,6 +4,7 @@
from django.test import TestCase
from django.core.urlresolvers import reverse
from blogpost import views, models
+import blogpost
#import json
#from rest.utils import xml2dict, dict2xml
@@ -164,14 +165,16 @@ class AllowedMethodsTests(TestCase):
#above testcases need to probably moved to the core
from djangorestframework.compat import RequestFactory
+import json
class TestRotation(TestCase):
- """For the example the maximum amount of Blogposts is capped off at 10.
+ """For the example the maximum amount of Blogposts is capped off at views.MAX_POSTS.
Whenever a new Blogpost is posted the oldest one should be popped."""
def setUp(self):
self.factory = RequestFactory()
-
+ models.BlogPost.objects.all().delete()
+
def test_get_to_root(self):
'''Simple test to demonstrate how the requestfactory needs to be used'''
request = self.factory.get('/blog-post')
@@ -179,13 +182,26 @@ class TestRotation(TestCase):
response = view(request)
self.assertEqual(response.status_code, 200)
- def test_blogposts_not_exceed_10(self):
- '''Posting blogposts should not result in more than 10 items stored.'''
- models.BlogPost.objects.all().delete()
- for post in range(15):
+ def test_blogposts_not_exceed_MAX_POSTS(self):
+ '''Posting blog-posts should not result in more than MAX_POSTS items stored.'''
+ for post in range(views.MAX_POSTS + 5):
form_data = {'title': 'This is post #%s' % post, 'content': 'This is the content of post #%s' % post}
request = self.factory.post('/blog-post', data=form_data)
view = views.BlogPosts.as_view()
- response = view(request)
- self.assertEquals(len(models.BlogPost.objects.all()),10)
+ view(request)
+ self.assertEquals(len(models.BlogPost.objects.all()),views.MAX_POSTS)
+
+ def test_fifo_behaviour(self):
+ '''It's fine that the Blogposts are capped off at MAX_POSTS. But we want to make sure we see FIFO behaviour.'''
+ for post in range(15):
+ form_data = {'title': '%s' % post, 'content': 'This is the content of post #%s' % post}
+ request = self.factory.post('/blog-post', data=form_data)
+ view = views.BlogPosts.as_view()
+ view(request)
+ request = self.factory.get('/blog-post')
+ view = views.BlogPosts.as_view()
+ response = view(request)
+ response_posts = json.loads(response.content)
+ response_titles = [d['title'] for d in response_posts]
+ self.assertEquals(response_titles, ['%s' % i for i in range(views.MAX_POSTS - 5, views.MAX_POSTS + 5)])
\ No newline at end of file
diff --git a/examples/blogpost/views.py b/examples/blogpost/views.py
index ef970466..59a3fb9f 100644
--- a/examples/blogpost/views.py
+++ b/examples/blogpost/views.py
@@ -1,13 +1,10 @@
-from djangorestframework.response import Response
-from djangorestframework.resource import Resource
from djangorestframework.modelresource import ModelResource, RootModelResource
-from djangorestframework import status
from blogpost import models
BLOG_POST_FIELDS = ('created', 'title', 'slug', 'content', 'absolute_url', 'comment_url', 'comments_url')
COMMENT_FIELDS = ('username', 'comment', 'created', 'rating', 'absolute_url', 'blogpost_url')
-
+MAX_POSTS = 10
class BlogPosts(RootModelResource):
"""A resource with which lists all existing blog posts and creates new blog posts."""
diff --git a/examples/pygments_api/tests.py b/examples/pygments_api/tests.py
index 76f1afba..0036345c 100644
--- a/examples/pygments_api/tests.py
+++ b/examples/pygments_api/tests.py
@@ -1,7 +1,7 @@
from django.test import TestCase
from djangorestframework.compat import RequestFactory
from pygments_api import views
-import os, tempfile, shutil, time, json
+import tempfile, shutil, json
class TestPygmentsExample(TestCase):