summaryrefslogtreecommitdiff
path: root/tests/regressiontests
diff options
context:
space:
mode:
Diffstat (limited to 'tests/regressiontests')
-rw-r--r--tests/regressiontests/comment_tests/tests/comment_view_tests.py21
-rw-r--r--tests/regressiontests/comment_tests/tests/moderation_view_tests.py77
-rw-r--r--tests/regressiontests/file_uploads/tests.py3
-rw-r--r--tests/regressiontests/generic_inline_admin/tests.py9
4 files changed, 68 insertions, 42 deletions
diff --git a/tests/regressiontests/comment_tests/tests/comment_view_tests.py b/tests/regressiontests/comment_tests/tests/comment_view_tests.py
index 0c975116ef..312fab633f 100644
--- a/tests/regressiontests/comment_tests/tests/comment_view_tests.py
+++ b/tests/regressiontests/comment_tests/tests/comment_view_tests.py
@@ -1,3 +1,4 @@
+import re
from django.conf import settings
from django.contrib.auth.models import User
from django.contrib.comments import signals
@@ -5,6 +6,8 @@ from django.contrib.comments.models import Comment
from regressiontests.comment_tests.models import Article
from regressiontests.comment_tests.tests import CommentTestCase
+post_redirect_re = re.compile(r'^http://testserver/posted/\?c=(?P<pk>\d+$)')
+
class CommentViewTests(CommentTestCase):
def testPostCommentHTTPMethods(self):
@@ -181,18 +184,26 @@ class CommentViewTests(CommentTestCase):
a = Article.objects.get(pk=1)
data = self.getValidData(a)
response = self.client.post("/post/", data)
- self.assertEqual(response["Location"], "http://testserver/posted/?c=1")
-
+ location = response["Location"]
+ match = post_redirect_re.match(location)
+ self.failUnless(match != None, "Unexpected redirect location: %s" % location)
+
data["next"] = "/somewhere/else/"
data["comment"] = "This is another comment"
response = self.client.post("/post/", data)
- self.assertEqual(response["Location"], "http://testserver/somewhere/else/?c=2")
+ location = response["Location"]
+ match = re.search(r"^http://testserver/somewhere/else/\?c=\d+$", location)
+ self.failUnless(match != None, "Unexpected redirect location: %s" % location)
def testCommentDoneView(self):
a = Article.objects.get(pk=1)
data = self.getValidData(a)
response = self.client.post("/post/", data)
- response = self.client.get("/posted/", {'c':1})
+ location = response["Location"]
+ match = post_redirect_re.match(location)
+ self.failUnless(match != None, "Unexpected redirect location: %s" % location)
+ pk = int(match.group('pk'))
+ response = self.client.get(location)
self.assertTemplateUsed(response, "comments/posted.html")
- self.assertEqual(response.context[0]["comment"], Comment.objects.get(pk=1))
+ self.assertEqual(response.context[0]["comment"], Comment.objects.get(pk=pk))
diff --git a/tests/regressiontests/comment_tests/tests/moderation_view_tests.py b/tests/regressiontests/comment_tests/tests/moderation_view_tests.py
index 2f6b51d709..b9eadd78b4 100644
--- a/tests/regressiontests/comment_tests/tests/moderation_view_tests.py
+++ b/tests/regressiontests/comment_tests/tests/moderation_view_tests.py
@@ -8,39 +8,43 @@ class FlagViewTests(CommentTestCase):
def testFlagGet(self):
"""GET the flag view: render a confirmation page."""
- self.createSomeComments()
+ comments = self.createSomeComments()
+ pk = comments[0].pk
self.client.login(username="normaluser", password="normaluser")
- response = self.client.get("/flag/1/")
+ response = self.client.get("/flag/%d/" % pk)
self.assertTemplateUsed(response, "comments/flag.html")
def testFlagPost(self):
"""POST the flag view: actually flag the view (nice for XHR)"""
- self.createSomeComments()
+ comments = self.createSomeComments()
+ pk = comments[0].pk
self.client.login(username="normaluser", password="normaluser")
- response = self.client.post("/flag/1/")
- self.assertEqual(response["Location"], "http://testserver/flagged/?c=1")
- c = Comment.objects.get(pk=1)
+ response = self.client.post("/flag/%d/" % pk)
+ self.assertEqual(response["Location"], "http://testserver/flagged/?c=%d" % pk)
+ c = Comment.objects.get(pk=pk)
self.assertEqual(c.flags.filter(flag=CommentFlag.SUGGEST_REMOVAL).count(), 1)
return c
def testFlagPostTwice(self):
"""Users don't get to flag comments more than once."""
c = self.testFlagPost()
- self.client.post("/flag/1/")
- self.client.post("/flag/1/")
+ self.client.post("/flag/%d/" % c.pk)
+ self.client.post("/flag/%d/" % c.pk)
self.assertEqual(c.flags.filter(flag=CommentFlag.SUGGEST_REMOVAL).count(), 1)
def testFlagAnon(self):
"""GET/POST the flag view while not logged in: redirect to log in."""
- self.createSomeComments()
- response = self.client.get("/flag/1/")
- self.assertEqual(response["Location"], "http://testserver/accounts/login/?next=/flag/1/")
- response = self.client.post("/flag/1/")
- self.assertEqual(response["Location"], "http://testserver/accounts/login/?next=/flag/1/")
+ comments = self.createSomeComments()
+ pk = comments[0].pk
+ response = self.client.get("/flag/%d/" % pk)
+ self.assertEqual(response["Location"], "http://testserver/accounts/login/?next=/flag/%d/" % pk)
+ response = self.client.post("/flag/%d/" % pk)
+ self.assertEqual(response["Location"], "http://testserver/accounts/login/?next=/flag/%d/" % pk)
def testFlaggedView(self):
- self.createSomeComments()
- response = self.client.get("/flagged/", data={"c":1})
+ comments = self.createSomeComments()
+ pk = comments[0].pk
+ response = self.client.get("/flagged/", data={"c":pk})
self.assertTemplateUsed(response, "comments/flagged.html")
def testFlagSignals(self):
@@ -70,23 +74,25 @@ class DeleteViewTests(CommentTestCase):
def testDeletePermissions(self):
"""The delete view should only be accessible to 'moderators'"""
- self.createSomeComments()
+ comments = self.createSomeComments()
+ pk = comments[0].pk
self.client.login(username="normaluser", password="normaluser")
- response = self.client.get("/delete/1/")
- self.assertEqual(response["Location"], "http://testserver/accounts/login/?next=/delete/1/")
+ response = self.client.get("/delete/%d/" % pk)
+ self.assertEqual(response["Location"], "http://testserver/accounts/login/?next=/delete/%d/" % pk)
makeModerator("normaluser")
- response = self.client.get("/delete/1/")
+ response = self.client.get("/delete/%d/" % pk)
self.assertEqual(response.status_code, 200)
def testDeletePost(self):
"""POSTing the delete view should mark the comment as removed"""
- self.createSomeComments()
+ comments = self.createSomeComments()
+ pk = comments[0].pk
makeModerator("normaluser")
self.client.login(username="normaluser", password="normaluser")
- response = self.client.post("/delete/1/")
- self.assertEqual(response["Location"], "http://testserver/deleted/?c=1")
- c = Comment.objects.get(pk=1)
+ response = self.client.post("/delete/%d/" % pk)
+ self.assertEqual(response["Location"], "http://testserver/deleted/?c=%d" % pk)
+ c = Comment.objects.get(pk=pk)
self.failUnless(c.is_removed)
self.assertEqual(c.flags.filter(flag=CommentFlag.MODERATOR_DELETION, user__username="normaluser").count(), 1)
@@ -103,21 +109,23 @@ class DeleteViewTests(CommentTestCase):
self.assertEqual(received_signals, [signals.comment_was_flagged])
def testDeletedView(self):
- self.createSomeComments()
- response = self.client.get("/deleted/", data={"c":1})
+ comments = self.createSomeComments()
+ pk = comments[0].pk
+ response = self.client.get("/deleted/", data={"c":pk})
self.assertTemplateUsed(response, "comments/deleted.html")
class ApproveViewTests(CommentTestCase):
def testApprovePermissions(self):
"""The delete view should only be accessible to 'moderators'"""
- self.createSomeComments()
+ comments = self.createSomeComments()
+ pk = comments[0].pk
self.client.login(username="normaluser", password="normaluser")
- response = self.client.get("/approve/1/")
- self.assertEqual(response["Location"], "http://testserver/accounts/login/?next=/approve/1/")
+ response = self.client.get("/approve/%d/" % pk)
+ self.assertEqual(response["Location"], "http://testserver/accounts/login/?next=/approve/%d/" % pk)
makeModerator("normaluser")
- response = self.client.get("/approve/1/")
+ response = self.client.get("/approve/%d/" % pk)
self.assertEqual(response.status_code, 200)
def testApprovePost(self):
@@ -127,9 +135,9 @@ class ApproveViewTests(CommentTestCase):
makeModerator("normaluser")
self.client.login(username="normaluser", password="normaluser")
- response = self.client.post("/approve/1/")
- self.assertEqual(response["Location"], "http://testserver/approved/?c=1")
- c = Comment.objects.get(pk=1)
+ response = self.client.post("/approve/%d/" % c1.pk)
+ self.assertEqual(response["Location"], "http://testserver/approved/?c=%d" % c1.pk)
+ c = Comment.objects.get(pk=c1.pk)
self.failUnless(c.is_public)
self.assertEqual(c.flags.filter(flag=CommentFlag.MODERATOR_APPROVAL, user__username="normaluser").count(), 1)
@@ -146,8 +154,9 @@ class ApproveViewTests(CommentTestCase):
self.assertEqual(received_signals, [signals.comment_was_flagged])
def testApprovedView(self):
- self.createSomeComments()
- response = self.client.get("/approved/", data={"c":1})
+ comments = self.createSomeComments()
+ pk = comments[0].pk
+ response = self.client.get("/approved/", data={"c":pk})
self.assertTemplateUsed(response, "comments/approved.html")
diff --git a/tests/regressiontests/file_uploads/tests.py b/tests/regressiontests/file_uploads/tests.py
index 6fcd8a99aa..21f8ad4de2 100644
--- a/tests/regressiontests/file_uploads/tests.py
+++ b/tests/regressiontests/file_uploads/tests.py
@@ -238,6 +238,9 @@ class DirectoryCreationTests(unittest.TestCase):
self.obj = FileModel()
if not os.path.isdir(temp_storage.location):
os.makedirs(temp_storage.location)
+ if os.path.isdir(UPLOAD_TO):
+ os.chmod(UPLOAD_TO, 0700)
+ shutil.rmtree(UPLOAD_TO)
def tearDown(self):
os.chmod(temp_storage.location, 0700)
diff --git a/tests/regressiontests/generic_inline_admin/tests.py b/tests/regressiontests/generic_inline_admin/tests.py
index e03cc1f2f4..a3ea5fc60b 100644
--- a/tests/regressiontests/generic_inline_admin/tests.py
+++ b/tests/regressiontests/generic_inline_admin/tests.py
@@ -21,8 +21,10 @@ class GenericAdminViewTest(TestCase):
# relies on content type IDs, which will vary depending on what
# other tests have been run), thus we do it here.
e = Episode.objects.create(name='This Week in Django')
+ self.episode_pk = e.pk
m = Media(content_object=e, url='http://example.com/podcast.mp3')
m.save()
+ self.media_pk = m.pk
def tearDown(self):
self.client.logout()
@@ -39,7 +41,7 @@ class GenericAdminViewTest(TestCase):
"""
A smoke test to ensure GET on the change_view works.
"""
- response = self.client.get('/generic_inline_admin/admin/generic_inline_admin/episode/1/')
+ response = self.client.get('/generic_inline_admin/admin/generic_inline_admin/episode/%d/' % self.episode_pk)
self.failUnlessEqual(response.status_code, 200)
def testBasicAddPost(self):
@@ -64,10 +66,11 @@ class GenericAdminViewTest(TestCase):
# inline data
"generic_inline_admin-media-content_type-object_id-TOTAL_FORMS": u"2",
"generic_inline_admin-media-content_type-object_id-INITIAL_FORMS": u"1",
- "generic_inline_admin-media-content_type-object_id-0-id": u"1",
+ "generic_inline_admin-media-content_type-object_id-0-id": u"%d" % self.media_pk,
"generic_inline_admin-media-content_type-object_id-0-url": u"http://example.com/podcast.mp3",
"generic_inline_admin-media-content_type-object_id-1-id": u"",
"generic_inline_admin-media-content_type-object_id-1-url": u"",
}
- response = self.client.post('/generic_inline_admin/admin/generic_inline_admin/episode/1/', post_data)
+ url = '/generic_inline_admin/admin/generic_inline_admin/episode/%d/' % self.episode_pk
+ response = self.client.post(url, post_data)
self.failUnlessEqual(response.status_code, 302) # redirect somewhere