From 5bd0adebd0bcf35aa6fa5238b857737134adc075 Mon Sep 17 00:00:00 2001 From: Brett Smith Date: Sun, 8 Jul 2012 10:04:06 -0400 Subject: [PATCH] Prevent non-Unicode SQLAlchemy warnings in most submission tests. This commit makes test_submission mostly warning-clean. --- mediagoblin/db/mixin.py | 2 +- mediagoblin/db/sql/models.py | 4 +-- mediagoblin/decorators.py | 6 ++--- mediagoblin/media_types/image/processing.py | 6 ++--- mediagoblin/processing/__init__.py | 2 +- mediagoblin/tests/test_submission.py | 28 ++++++++++----------- mediagoblin/user_pages/views.py | 16 ++++++------ 7 files changed, 32 insertions(+), 32 deletions(-) diff --git a/mediagoblin/db/mixin.py b/mediagoblin/db/mixin.py index a5aded02..fe6dc796 100644 --- a/mediagoblin/db/mixin.py +++ b/mediagoblin/db/mixin.py @@ -60,7 +60,7 @@ class MediaEntryMixin(object): if duplicate: if self.id is not None: - self.slug = "%s-%s" % (self.id, self.slug) + self.slug = u"%s-%s" % (self.id, self.slug) else: self.slug = None diff --git a/mediagoblin/db/sql/models.py b/mediagoblin/db/sql/models.py index d17386fc..9815fcf9 100644 --- a/mediagoblin/db/sql/models.py +++ b/mediagoblin/db/sql/models.py @@ -158,7 +158,7 @@ class MediaEntry(Base, MediaEntryMixin): """get the next 'newer' entry by this user""" media = MediaEntry.query.filter( (MediaEntry.uploader == self.uploader) - & (MediaEntry.state == 'processed') + & (MediaEntry.state == u'processed') & (MediaEntry.id > self.id)).order_by(MediaEntry.id).first() if media is not None: @@ -168,7 +168,7 @@ class MediaEntry(Base, MediaEntryMixin): """get the next 'older' entry by this user""" media = MediaEntry.query.filter( (MediaEntry.uploader == self.uploader) - & (MediaEntry.state == 'processed') + & (MediaEntry.state == u'processed') & (MediaEntry.id < self.id)).order_by(desc(MediaEntry.id)).first() if media is not None: diff --git a/mediagoblin/decorators.py b/mediagoblin/decorators.py index 83602c70..b2791083 100644 --- a/mediagoblin/decorators.py +++ b/mediagoblin/decorators.py @@ -97,7 +97,7 @@ def get_user_media_entry(controller): return render_404(request) media = request.db.MediaEntry.find_one( {'slug': request.matchdict['media'], - 'state': 'processed', + 'state': u'processed', 'uploader': user._id}) # no media via slug? Grab it via ObjectId @@ -105,7 +105,7 @@ def get_user_media_entry(controller): try: media = request.db.MediaEntry.find_one( {'_id': ObjectId(request.matchdict['media']), - 'state': 'processed', + 'state': u'processed', 'uploader': user._id}) except InvalidId: return render_404(request) @@ -127,7 +127,7 @@ def get_media_entry_by_id(controller): try: media = request.db.MediaEntry.find_one( {'_id': ObjectId(request.matchdict['media']), - 'state': 'processed'}) + 'state': u'processed'}) except InvalidId: return render_404(request) diff --git a/mediagoblin/media_types/image/processing.py b/mediagoblin/media_types/image/processing.py index 487d593a..32b1f4f7 100644 --- a/mediagoblin/media_types/image/processing.py +++ b/mediagoblin/media_types/image/processing.py @@ -143,10 +143,10 @@ def process_image(entry): # Insert media file information into database media_files_dict = entry.setdefault('media_files', {}) - media_files_dict['thumb'] = thumb_filepath - media_files_dict['original'] = original_filepath + media_files_dict[u'thumb'] = thumb_filepath + media_files_dict[u'original'] = original_filepath if medium_filepath: - media_files_dict['medium'] = medium_filepath + media_files_dict[u'medium'] = medium_filepath # Insert exif data into database exif_all = clean_exif(exif_tags) diff --git a/mediagoblin/processing/__init__.py b/mediagoblin/processing/__init__.py index 4a827af4..85b61880 100644 --- a/mediagoblin/processing/__init__.py +++ b/mediagoblin/processing/__init__.py @@ -84,7 +84,7 @@ def mark_entry_failed(entry_id, exc): atomic_update(mgg.database.MediaEntry, {'_id': entry_id}, {u'state': u'failed', - u'fail_error': exc.exception_path, + u'fail_error': unicode(exc.exception_path), u'fail_metadata': exc.metadata}) else: _log.warn("No idea what happened here, but it failed: %r", exc) diff --git a/mediagoblin/tests/test_submission.py b/mediagoblin/tests/test_submission.py index bf1b87aa..3cc5280c 100644 --- a/mediagoblin/tests/test_submission.py +++ b/mediagoblin/tests/test_submission.py @@ -37,8 +37,8 @@ EVIL_JPG = resource('evil.jpg') EVIL_PNG = resource('evil.png') BIG_BLUE = resource('bigblue.png') -GOOD_TAG_STRING = 'yin,yang' -BAD_TAG_STRING = 'rage,' + 'f' * 26 + 'u' * 26 +GOOD_TAG_STRING = u'yin,yang' +BAD_TAG_STRING = unicode('rage,' + 'f' * 26 + 'u' * 26) FORM_CONTEXT = ['mediagoblin/submit/start.html', 'submit_form'] REQUEST_CONTEXT = ['mediagoblin/user_pages/user.html', 'request'] @@ -92,7 +92,7 @@ class TestSubmission: # Test blank file # --------------- - response, form = self.do_post({'title': 'test title'}, *FORM_CONTEXT) + response, form = self.do_post({'title': u'test title'}, *FORM_CONTEXT) assert_equal(form.file.errors, [u'You must provide a file.']) def check_url(self, response, path): @@ -112,10 +112,10 @@ class TestSubmission: self.test_app.get(url) def test_normal_jpg(self): - self.check_normal_upload('Normal upload 1', GOOD_JPG) + self.check_normal_upload(u'Normal upload 1', GOOD_JPG) def test_normal_png(self): - self.check_normal_upload('Normal upload 2', GOOD_PNG) + 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) @@ -128,11 +128,11 @@ class TestSubmission: def test_tags(self): # Good tag string # -------- - response, request = self.do_post({'title': 'Balanced Goblin', + response, request = self.do_post({'title': u'Balanced Goblin', 'tags': GOOD_TAG_STRING}, *REQUEST_CONTEXT, do_follow=True, **self.upload_data(GOOD_JPG)) - media = self.check_media(request, {'title': 'Balanced Goblin'}, 1) + media = self.check_media(request, {'title': u'Balanced Goblin'}, 1) assert media.tags[0]['name'] == u'yin' assert media.tags[0]['slug'] == u'yin' @@ -141,7 +141,7 @@ class TestSubmission: # Test tags that are too long # --------------- - response, form = self.do_post({'title': 'Balanced Goblin', + response, form = self.do_post({'title': u'Balanced Goblin', 'tags': BAD_TAG_STRING}, *FORM_CONTEXT, **self.upload_data(GOOD_JPG)) @@ -151,10 +151,10 @@ class TestSubmission: 'ffffffffffffffffffffffffffuuuuuuuuuuuuuuuuuuuuuuuuuu']) def test_delete(self): - response, request = self.do_post({'title': 'Balanced Goblin'}, + response, request = self.do_post({'title': u'Balanced Goblin'}, *REQUEST_CONTEXT, do_follow=True, **self.upload_data(GOOD_JPG)) - media = self.check_media(request, {'title': 'Balanced Goblin'}, 1) + media = self.check_media(request, {'title': u'Balanced Goblin'}, 1) media_id = media.id # Add a comment, so we can test for its deletion later. @@ -173,7 +173,7 @@ class TestSubmission: user=self.test_user.username, media=media_id) # Empty data means don't confirm response = self.do_post({}, do_follow=True, url=delete_url)[0] - media = self.check_media(request, {'title': 'Balanced Goblin'}, 1) + media = self.check_media(request, {'title': u'Balanced Goblin'}, 1) media_id = media.id # Confirm deletion @@ -186,7 +186,7 @@ class TestSubmission: def test_evil_file(self): # Test non-suppoerted file with non-supported extension # ----------------------------------------------------- - response, form = self.do_post({'title': 'Malicious Upload 1'}, + response, form = self.do_post({'title': u'Malicious Upload 1'}, *FORM_CONTEXT, **self.upload_data(EVIL_FILE)) assert_equal(len(form.file.errors), 1) @@ -200,7 +200,7 @@ class TestSubmission: template.clear_test_template_context() response = self.test_app.post( '/submit/', { - 'title': 'UNIQUE_TITLE_PLS_DONT_CREATE_OTHER_MEDIA_WITH_THIS_TITLE' + 'title': u'UNIQUE_TITLE_PLS_DONT_CREATE_OTHER_MEDIA_WITH_THIS_TITLE' }, upload_files=[( 'file', GOOD_JPG)]) @@ -237,7 +237,7 @@ class TestSubmission: self.check_false_image('Malicious Upload 3', EVIL_PNG) def test_processing(self): - data = {'title': 'Big Blue'} + data = {'title': u'Big Blue'} response, request = self.do_post(data, *REQUEST_CONTEXT, do_follow=True, **self.upload_data(BIG_BLUE)) media = self.check_media(request, data, 1) diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index dad68ba5..a9b17b3b 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -48,7 +48,7 @@ def user_home(request, page): cursor = request.db.MediaEntry.find( {'uploader': user._id, - 'state': 'processed'}).sort('created', DESCENDING) + 'state': u'processed'}).sort('created', DESCENDING) pagination = Pagination(page, cursor) media_entries = pagination() @@ -75,13 +75,13 @@ def user_gallery(request, page): """'Gallery' of a User()""" user = request.db.User.find_one({ 'username': request.matchdict['user'], - 'status': 'active'}) + 'status': u'active'}) if not user: return render_404(request) cursor = request.db.MediaEntry.find( {'uploader': user._id, - 'state': 'processed'}).sort('created', DESCENDING) + 'state': u'processed'}).sort('created', DESCENDING) pagination = Pagination(page, cursor) media_entries = pagination() @@ -224,13 +224,13 @@ def atom_feed(request): user = request.db.User.find_one({ 'username': request.matchdict['user'], - 'status': 'active'}) + 'status': u'active'}) if not user: return render_404(request) cursor = request.db.MediaEntry.find({ 'uploader': user._id, - 'state': 'processed'}) \ + 'state': u'processed'}) \ .sort('created', DESCENDING) \ .limit(ATOM_DEFAULT_NR_OF_UPDATED_ITEMS) @@ -287,7 +287,7 @@ def processing_panel(request): # Get the user user = request.db.User.find_one( {'username': request.matchdict['user'], - 'status': 'active'}) + 'status': u'active'}) # Make sure the user exists and is active if not user: @@ -312,12 +312,12 @@ def processing_panel(request): # Get media entries which are in-processing processing_entries = request.db.MediaEntry.find( {'uploader': user._id, - 'state': 'unprocessed'}).sort('created', DESCENDING) + 'state': u'unprocessed'}).sort('created', DESCENDING) # Get media entries which have failed to process failed_entries = request.db.MediaEntry.find( {'uploader': user._id, - 'state': 'failed'}).sort('created', DESCENDING) + 'state': u'failed'}).sort('created', DESCENDING) # Render to response return render_to_response( -- 2.25.1