diff options
author | Brett Smith <brettcsmith@brettcsmith.org> | 2012-03-17 17:53:00 -0400 |
---|---|---|
committer | Brett Smith <brettcsmith@brettcsmith.org> | 2012-03-17 17:53:00 -0400 |
commit | a0a7f87f625ca29ccddc123eb6540aa15a779eb7 (patch) | |
tree | 1b8eae477b57c91627095d5040644c26e1560716 | |
parent | 416b439fc883a570902edd094b44f310d66e849c (diff) | |
download | mediagoblin-a0a7f87f625ca29ccddc123eb6540aa15a779eb7.tar.lz mediagoblin-a0a7f87f625ca29ccddc123eb6540aa15a779eb7.tar.xz mediagoblin-a0a7f87f625ca29ccddc123eb6540aa15a779eb7.zip |
When media is deleted, delete associated comments too.
The actual code is just a simple for loop; there might be a better
implementation but this is a fine start. I also extended test_delete to
check this too.
-rw-r--r-- | mediagoblin/tests/test_submission.py | 15 | ||||
-rw-r--r-- | mediagoblin/user_pages/views.py | 4 |
2 files changed, 19 insertions, 0 deletions
diff --git a/mediagoblin/tests/test_submission.py b/mediagoblin/tests/test_submission.py index 2f11bdfb..1f56779e 100644 --- a/mediagoblin/tests/test_submission.py +++ b/mediagoblin/tests/test_submission.py @@ -180,6 +180,18 @@ class TestSubmission: # Does media entry exist? assert_true(media) + # Add a comment, so we can test for its deletion later. + get_comments = lambda: list( + request.db.MediaComment.find({'media_entry': media._id})) + assert_false(get_comments()) + response = self.test_app.post( + request.urlgen('mediagoblin.user_pages.media_post_comment', + user=self.test_user.username, + media=media._id), + {'comment_content': 'i love this test'}) + response.follow() + assert_true(get_comments()) + # Do not confirm deletion # --------------------------------------------------- response = self.test_app.post( @@ -219,6 +231,9 @@ class TestSubmission: request.db.MediaEntry.find( {'_id': media._id}).count()) + # How about the comment? + assert_false(get_comments()) + def test_malicious_uploads(self): # Test non-suppoerted file with non-supported extension # ----------------------------------------------------- diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index 530dea64..6eff684c 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -173,6 +173,10 @@ def media_confirm_delete(request, media): if form.confirm.data is True: username = media.get_uploader.username + # Delete all the associated comments + for comment in media.get_comments(): + comment.delete() + # Delete all files on the public storage delete_media_files(media) |