aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorElrond <elrond+mediagoblin.org@samba-tng.org>2013-02-01 19:57:39 +0100
committerElrond <elrond+mediagoblin.org@samba-tng.org>2013-02-01 22:02:29 +0100
commitd728c636b987fa774948ffc122fd080153d8f906 (patch)
tree7632a8e42b0e31fedcde3718f8f2c66fc9db3b4f
parentcf41e7d7444fb9d19a777a4720d9b00684e6fe7b (diff)
downloadmediagoblin-d728c636b987fa774948ffc122fd080153d8f906.tar.lz
mediagoblin-d728c636b987fa774948ffc122fd080153d8f906.tar.xz
mediagoblin-d728c636b987fa774948ffc122fd080153d8f906.zip
Some tests for media_data, yeah!
One in the submissions, that posts a jpg with gps data. One in the modelmethods to test some behaviours. The later test fails. Fixes coming up.
-rw-r--r--mediagoblin/tests/test_modelmethods.py17
-rw-r--r--mediagoblin/tests/test_submission.py9
2 files changed, 25 insertions, 1 deletions
diff --git a/mediagoblin/tests/test_modelmethods.py b/mediagoblin/tests/test_modelmethods.py
index c1064d3a..7719bd97 100644
--- a/mediagoblin/tests/test_modelmethods.py
+++ b/mediagoblin/tests/test_modelmethods.py
@@ -17,7 +17,9 @@
# Maybe not every model needs a test, but some models have special
# methods, and so it makes sense to test them here.
+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, \
@@ -128,3 +130,18 @@ class TestMediaEntrySlugs(object):
u"@!#?@!", save=False)
qbert_entry.generate_slug()
assert qbert_entry.slug is None
+
+
+def test_media_data_init():
+ Session.rollback()
+ Session.remove()
+ media = MediaEntry()
+ media.media_type = u"mediagoblin.media_types.image"
+ assert media.media_data is None
+ media.media_data_init()
+ assert media.media_data is not None
+ obj_in_session = 0
+ for obj in Session():
+ obj_in_session += 1
+ print repr(obj)
+ assert_equal(obj_in_session, 0)
diff --git a/mediagoblin/tests/test_submission.py b/mediagoblin/tests/test_submission.py
index 00f1ed3d..fc3d8c83 100644
--- a/mediagoblin/tests/test_submission.py
+++ b/mediagoblin/tests/test_submission.py
@@ -27,6 +27,7 @@ from pkg_resources import resource_filename
from mediagoblin.tests.tools import get_app, \
fixture_add_user
from mediagoblin import mg_globals
+from mediagoblin.db.models import MediaEntry
from mediagoblin.tools import template
from mediagoblin.media_types.image import MEDIA_MANAGER as img_MEDIA_MANAGER
@@ -40,6 +41,7 @@ EVIL_FILE = resource('evil')
EVIL_JPG = resource('evil.jpg')
EVIL_PNG = resource('evil.png')
BIG_BLUE = resource('bigblue.png')
+from .test_exif import GPS_JPG
GOOD_TAG_STRING = u'yin,yang'
BAD_TAG_STRING = unicode('rage,' + 'f' * 26 + 'u' * 26)
@@ -122,7 +124,7 @@ class TestSubmission:
self.check_normal_upload(u'Normal upload 2', GOOD_PNG)
def check_media(self, request, find_data, count=None):
- media = request.db.MediaEntry.find(find_data)
+ media = MediaEntry.find(find_data)
if count is not None:
assert_equal(media.count(), count)
if count == 0:
@@ -265,6 +267,11 @@ class TestSubmission:
# -------------------------------------------
self.check_false_image(u'Malicious Upload 3', EVIL_PNG)
+ def test_media_data(self):
+ self.check_normal_upload(u"With GPS data", GPS_JPG)
+ media = self.check_media(None, {"title": u"With GPS data"}, 1)
+ assert_equal(media.media_data.gps_latitude, 59.336666666666666)
+
def test_processing(self):
data = {'title': u'Big Blue'}
response, request = self.do_post(data, *REQUEST_CONTEXT, do_follow=True,