From d728c636b987fa774948ffc122fd080153d8f906 Mon Sep 17 00:00:00 2001 From: Elrond Date: Fri, 1 Feb 2013 19:57:39 +0100 Subject: [PATCH] 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. --- mediagoblin/tests/test_modelmethods.py | 17 +++++++++++++++++ mediagoblin/tests/test_submission.py | 9 ++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) 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, -- 2.25.1