From cd75b2280fc2fe953bf1158ec1b9d5fb0d43a881 Mon Sep 17 00:00:00 2001 From: Elrond Date: Fri, 18 Jan 2013 11:42:56 +0100 Subject: [PATCH] Add some simple collection test. --- mediagoblin/tests/test_collections.py | 37 +++++++++++++++++++++++++++ mediagoblin/tests/tools.py | 23 ++++++++++++++++- 2 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 mediagoblin/tests/test_collections.py diff --git a/mediagoblin/tests/test_collections.py b/mediagoblin/tests/test_collections.py new file mode 100644 index 00000000..b19f6362 --- /dev/null +++ b/mediagoblin/tests/test_collections.py @@ -0,0 +1,37 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2013 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +from mediagoblin.tests.tools import fixture_add_collection, fixture_add_user, \ + get_app +from mediagoblin.db.models import Collection, User +from mediagoblin.db.base import Session +from nose.tools import assert_equal + + +def test_user_deletes_collection(): + # Setup db. + get_app(dump_old_app=False) + + user = fixture_add_user() + coll = fixture_add_collection(user=user) + # Reload into session: + user = User.query.get(user.id) + + cnt1 = Collection.query.count() + user.delete() + cnt2 = Collection.query.count() + + assert_equal(cnt1, cnt2 + 1) diff --git a/mediagoblin/tests/tools.py b/mediagoblin/tests/tools.py index 30218ede..18d4ec0c 100644 --- a/mediagoblin/tests/tools.py +++ b/mediagoblin/tests/tools.py @@ -25,7 +25,7 @@ from paste.deploy import loadapp from webtest import TestApp from mediagoblin import mg_globals -from mediagoblin.db.models import User +from mediagoblin.db.models import User, 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 @@ -226,3 +226,24 @@ def fixture_add_user(username=u'chris', password=u'toast', Session.expunge(test_user) return test_user + + +def fixture_add_collection(name=u"My first Collection", user=None): + if user is None: + user = fixture_add_user() + coll = Collection.query.filter_by(creator=user.id, title=name).first() + if coll is not None: + return coll + coll = Collection() + coll.creator = user.id + coll.title = name + coll.generate_slug() + coll.save() + + # Reload + Session.refresh(coll) + + # ... and detach from session: + Session.expunge(coll) + + return coll -- 2.25.1