aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/tests/test_modelmethods.py
diff options
context:
space:
mode:
authorChristopher Allan Webber <cwebber@dustycloud.org>2013-04-04 19:23:04 -0500
committerChristopher Allan Webber <cwebber@dustycloud.org>2013-04-04 19:23:04 -0500
commit5c2ece7401723486d76ea0fcd2f99ba4d1002504 (patch)
treea71a2bf9b15bd2805e344362e0bd265d7a124910 /mediagoblin/tests/test_modelmethods.py
parente11c62a0efeb053f71f8ab0793c7399ce8b0758d (diff)
downloadmediagoblin-5c2ece7401723486d76ea0fcd2f99ba4d1002504.tar.lz
mediagoblin-5c2ece7401723486d76ea0fcd2f99ba4d1002504.tar.xz
mediagoblin-5c2ece7401723486d76ea0fcd2f99ba4d1002504.zip
Switch test_app generation over to use py.test fixtures.
By doing this, we can take advantage of py.test's ability to create temporary directories that are then cleaned up later during testing. This helps for sandboxing things. This also involves a ton of changes: - Changing the get_app stuff appropriately, getting rid of the setup_fresh_app decorator - Making said fixture - Switching over a billion tests to use it
Diffstat (limited to 'mediagoblin/tests/test_modelmethods.py')
-rw-r--r--mediagoblin/tests/test_modelmethods.py95
1 files changed, 58 insertions, 37 deletions
diff --git a/mediagoblin/tests/test_modelmethods.py b/mediagoblin/tests/test_modelmethods.py
index 808aa9f2..a5739ed5 100644
--- a/mediagoblin/tests/test_modelmethods.py
+++ b/mediagoblin/tests/test_modelmethods.py
@@ -22,8 +22,7 @@ from nose.tools import assert_equal
from mediagoblin.db.base import Session
from mediagoblin.db.models import MediaEntry
-from mediagoblin.tests.tools import get_app, \
- fixture_add_user
+from mediagoblin.tests.tools import fixture_add_user
import mock
@@ -35,8 +34,7 @@ UUID_MOCK = mock.Mock(return_value=FakeUUID())
class TestMediaEntrySlugs(object):
- def setup(self):
- self.test_app = get_app(dump_old_app=True)
+ def _setup(self):
self.chris_user = fixture_add_user(u'chris')
self.emily_user = fixture_add_user(u'emily')
self.existing_entry = self._insert_media_entry_fixture(
@@ -57,56 +55,78 @@ class TestMediaEntrySlugs(object):
return entry
- def test_unique_slug_from_title(self):
+ def test_unique_slug_from_title(self, test_app):
+ self._setup()
+
entry = self._insert_media_entry_fixture(u"Totally unique slug!", save=False)
entry.generate_slug()
assert entry.slug == u'totally-unique-slug'
- def test_old_good_unique_slug(self):
+ def test_old_good_unique_slug(self, test_app):
+ self._setup()
+
entry = self._insert_media_entry_fixture(
u"A title here", u"a-different-slug-there", save=False)
entry.generate_slug()
assert entry.slug == u"a-different-slug-there"
- def test_old_weird_slug(self):
+ def test_old_weird_slug(self, test_app):
+ self._setup()
+
entry = self._insert_media_entry_fixture(
slug=u"wowee!!!!!", save=False)
entry.generate_slug()
assert entry.slug == u"wowee"
- def test_existing_slug_use_id(self):
- entry = self._insert_media_entry_fixture(
- u"Beware, I exist!!", this_id=9000, save=False)
- entry.generate_slug()
- assert entry.slug == u"beware-i-exist-9000"
-
- @mock.patch('uuid.uuid4', UUID_MOCK)
- def test_existing_slug_cant_use_id(self):
- # This one grabs the nine thousand slug
- self._insert_media_entry_fixture(
- slug=u"beware-i-exist-9000")
+ def test_existing_slug_use_id(self, test_app):
+ self._setup()
entry = self._insert_media_entry_fixture(
u"Beware, I exist!!", this_id=9000, save=False)
entry.generate_slug()
- assert entry.slug == u"beware-i-exist-test"
-
- @mock.patch('uuid.uuid4', UUID_MOCK)
- def test_existing_slug_cant_use_id_extra_junk(self):
- # This one grabs the nine thousand slug
- self._insert_media_entry_fixture(
- slug=u"beware-i-exist-9000")
-
- # This one grabs makes sure the annoyance doesn't stop
- self._insert_media_entry_fixture(
- slug=u"beware-i-exist-test")
-
- entry = self._insert_media_entry_fixture(
- u"Beware, I exist!!", this_id=9000, save=False)
- entry.generate_slug()
- assert entry.slug == u"beware-i-exist-testtest"
+ assert entry.slug == u"beware-i-exist-9000"
- def test_garbage_slug(self):
+ def test_existing_slug_cant_use_id(self, test_app):
+ self._setup()
+
+ # Getting tired of dealing with test_app and this mock.patch
+ # thing conflicting, getting lazy.
+ @mock.patch('uuid.uuid4', UUID_MOCK)
+ def _real_test():
+ # This one grabs the nine thousand slug
+ self._insert_media_entry_fixture(
+ slug=u"beware-i-exist-9000")
+
+ entry = self._insert_media_entry_fixture(
+ u"Beware, I exist!!", this_id=9000, save=False)
+ entry.generate_slug()
+ assert entry.slug == u"beware-i-exist-test"
+
+ _real_test()
+
+ def test_existing_slug_cant_use_id_extra_junk(self, test_app):
+ self._setup()
+
+ # Getting tired of dealing with test_app and this mock.patch
+ # thing conflicting, getting lazy.
+ @mock.patch('uuid.uuid4', UUID_MOCK)
+ def _real_test():
+ # This one grabs the nine thousand slug
+ self._insert_media_entry_fixture(
+ slug=u"beware-i-exist-9000")
+
+ # This one grabs makes sure the annoyance doesn't stop
+ self._insert_media_entry_fixture(
+ slug=u"beware-i-exist-test")
+
+ entry = self._insert_media_entry_fixture(
+ u"Beware, I exist!!", this_id=9000, save=False)
+ entry.generate_slug()
+ assert entry.slug == u"beware-i-exist-testtest"
+
+ _real_test()
+
+ def test_garbage_slug(self, test_app):
"""
Titles that sound totally like Q*Bert shouldn't have slugs at
all. We'll just reference them by id.
@@ -126,14 +146,15 @@ class TestMediaEntrySlugs(object):
| |#| |#| |#| |#|
\|/ \|/ \|/ \|/
"""
+ self._setup()
+
qbert_entry = self._insert_media_entry_fixture(
u"@!#?@!", save=False)
qbert_entry.generate_slug()
assert qbert_entry.slug is None
-def test_media_data_init():
- get_app() # gotta init the db and etc
+def test_media_data_init(test_app):
Session.rollback()
Session.remove()
media = MediaEntry()