Failing testcase for issue 611.

This currently fails (with foreign key constrain error):
1. Have user A and B.
2. User B creates media M.
3. User A post a comment on M.
4. User A deletes his own account.

The test is a little bit wider.
This commit is contained in:
Elrond 2013-01-29 21:13:49 +01:00
parent f8107ccccc
commit e9b4e50007
2 changed files with 68 additions and 2 deletions

View File

@ -16,9 +16,59 @@
from nose.tools import assert_equal
from mediagoblin.tests.tools import get_app
from mediagoblin.db.models import User, MediaEntry, MediaComment
from mediagoblin.tests.tools import get_app, \
fixture_add_user, fixture_media_entry
def test_404_for_non_existent():
test_app = get_app(dump_old_app=False)
res = test_app.get('/does-not-exist/', expect_errors=True)
assert_equal(res.status_int, 404)
def test_user_deletes_other_comments():
user_a = fixture_add_user(u"chris_a")
user_b = fixture_add_user(u"chris_b")
media_a = fixture_media_entry(uploader=user_a.id)
media_b = fixture_media_entry(uploader=user_b.id)
# Create all 4 possible comments:
for u_id in (user_a.id, user_b.id):
for m_id in (media_a.id, media_b.id):
cmt = MediaComment()
cmt.media_entry = m_id
cmt.author = u_id
cmt.content = u"Some Comment"
cmt.save()
usr_cnt1 = User.query.count()
med_cnt1 = MediaEntry.query.count()
cmt_cnt1 = MediaComment.query.count()
User.query.get(user_a.id).delete()
usr_cnt2 = User.query.count()
med_cnt2 = MediaEntry.query.count()
cmt_cnt2 = MediaComment.query.count()
# One user deleted
assert_equal(usr_cnt2, usr_cnt1 - 1)
# One media gone
assert_equal(med_cnt2, med_cnt1 - 1)
# Three of four comments gone.
assert_equal(cmt_cnt2, cmt_cnt1 - 3)
User.query.get(user_b.id).delete()
usr_cnt2 = User.query.count()
med_cnt2 = MediaEntry.query.count()
cmt_cnt2 = MediaComment.query.count()
# All users gone
assert_equal(usr_cnt2, usr_cnt1 - 2)
# All media gone
assert_equal(med_cnt2, med_cnt1 - 2)
# All comments gone
assert_equal(cmt_cnt2, cmt_cnt1 - 4)

View File

@ -25,7 +25,7 @@ from paste.deploy import loadapp
from webtest import TestApp
from mediagoblin import mg_globals
from mediagoblin.db.models import User, Collection
from mediagoblin.db.models import User, MediaEntry, Collection
from mediagoblin.tools import testing
from mediagoblin.init.config import read_mediagoblin_config
from mediagoblin.db.open import setup_connection_and_db_from_config
@ -228,6 +228,22 @@ def fixture_add_user(username=u'chris', password=u'toast',
return test_user
def fixture_media_entry(title=u"Some title", slug=None,
uploader=None, save=True, gen_slug=True):
entry = MediaEntry()
entry.title = title
entry.slug = slug
entry.uploader = uploader or fixture_add_user().id
entry.media_type = u'image'
if gen_slug:
entry.generate_slug()
if save:
entry.save()
return entry
def fixture_add_collection(name=u"My first Collection", user=None):
if user is None:
user = fixture_add_user()