diff options
Diffstat (limited to 'mediagoblin/tests/test_submission.py')
-rw-r--r-- | mediagoblin/tests/test_submission.py | 134 |
1 files changed, 67 insertions, 67 deletions
diff --git a/mediagoblin/tests/test_submission.py b/mediagoblin/tests/test_submission.py index a7661e85..72faf1b9 100644 --- a/mediagoblin/tests/test_submission.py +++ b/mediagoblin/tests/test_submission.py @@ -48,7 +48,7 @@ import pytest import webtest.forms import pkg_resources try: - import mock + from unittest import mock except ImportError: import unittest.mock as mock @@ -72,8 +72,8 @@ from mediagoblin.submit.lib import new_upload_entry, run_process_media from .resources import GOOD_JPG, GOOD_PNG, EVIL_FILE, EVIL_JPG, EVIL_PNG, \ BIG_BLUE, GOOD_PDF, GPS_JPG, MED_PNG, BIG_PNG -GOOD_TAG_STRING = u'yin,yang' -BAD_TAG_STRING = six.text_type('rage,' + 'f' * 26 + 'u' * 26) +GOOD_TAG_STRING = 'yin,yang' +BAD_TAG_STRING = str('rage,' + 'f' * 26 + 'u' * 26) FORM_CONTEXT = ['mediagoblin/submit/start.html', 'submit_form'] REQUEST_CONTEXT = ['mediagoblin/user_pages/user.html', 'request'] @@ -115,7 +115,7 @@ def get_sample_entry(user, media_type): entry = new_upload_entry(user) entry.media_type = media_type entry.title = 'testentry' - entry.description = u"" + entry.description = "" entry.license = None entry.media_metadata = {} entry.save() @@ -129,7 +129,7 @@ class BaseTestSubmission: # TODO: Possibly abstract into a decorator like: # @as_authenticated_user('chris') - fixture_add_user(privileges=[u'active',u'uploader', u'commenter']) + fixture_add_user(privileges=['active','uploader', 'commenter']) self.login() @@ -143,12 +143,12 @@ class BaseTestSubmission: #### totally stupid. #### Also if we found a way to make this run it should be a #### property. - return LocalUser.query.filter(LocalUser.username==u'chris').first() + return LocalUser.query.filter(LocalUser.username=='chris').first() def login(self): self.test_app.post( '/auth/login/', { - 'username': u'chris', + 'username': 'chris', 'password': 'toast'}) def logout(self): @@ -185,10 +185,10 @@ class BaseTestSubmission: def check_normal_upload(self, title, filename): response, context = self.do_post({'title': title}, do_follow=True, **self.upload_data(filename)) - self.check_url(response, '/u/{0}/'.format(self.our_user().username)) + self.check_url(response, '/u/{}/'.format(self.our_user().username)) assert 'mediagoblin/user_pages/user.html' in context # Make sure the media view is at least reachable, logged in... - url = '/u/{0}/m/{1}/'.format(self.our_user().username, + url = '/u/{}/m/{}/'.format(self.our_user().username, title.lower().replace(' ', '-')) self.test_app.get(url) # ... and logged out too. @@ -212,38 +212,38 @@ class TestSubmissionBasics(BaseTestSubmission): # Test blank form # --------------- response, form = self.do_post({}, *FORM_CONTEXT) - assert form.file.errors == [u'You must provide a file.'] + assert form.file.errors == ['You must provide a file.'] # Test blank file # --------------- - response, form = self.do_post({'title': u'test title'}, *FORM_CONTEXT) - assert form.file.errors == [u'You must provide a file.'] + response, form = self.do_post({'title': 'test title'}, *FORM_CONTEXT) + assert form.file.errors == ['You must provide a file.'] def test_normal_jpg(self): # User uploaded should be 0 assert self.our_user().uploaded == 0 - self.check_normal_upload(u'Normal upload 1', GOOD_JPG) + self.check_normal_upload('Normal upload 1', GOOD_JPG) # User uploaded should be the same as GOOD_JPG size in Mb file_size = os.stat(GOOD_JPG).st_size / (1024.0 * 1024) - file_size = float('{0:.2f}'.format(file_size)) + file_size = float('{:.2f}'.format(file_size)) # Reload user assert self.our_user().uploaded == file_size def test_public_id_populated(self): # Upload the image first. - response, request = self.do_post({'title': u'Balanced Goblin'}, + response, request = self.do_post({'title': 'Balanced Goblin'}, *REQUEST_CONTEXT, do_follow=True, **self.upload_data(GOOD_JPG)) - media = self.check_media(request, {'title': u'Balanced Goblin'}, 1) + media = self.check_media(request, {'title': 'Balanced Goblin'}, 1) # Now check that the public_id attribute is set. assert media.public_id != None def test_normal_png(self): - self.check_normal_upload(u'Normal upload 2', GOOD_PNG) + self.check_normal_upload('Normal upload 2', GOOD_PNG) def test_default_upload_limits(self): self.user_upload_limits(uploaded=500) @@ -251,10 +251,10 @@ class TestSubmissionBasics(BaseTestSubmission): # User uploaded should be 500 assert self.our_user().uploaded == 500 - response, context = self.do_post({'title': u'Normal upload 4'}, + response, context = self.do_post({'title': 'Normal upload 4'}, do_follow=True, **self.upload_data(GOOD_JPG)) - self.check_url(response, '/u/{0}/'.format(self.our_user().username)) + self.check_url(response, '/u/{}/'.format(self.our_user().username)) assert 'mediagoblin/user_pages/user.html' in context # Shouldn't have uploaded @@ -266,10 +266,10 @@ class TestSubmissionBasics(BaseTestSubmission): # User uploaded should be 25 assert self.our_user().uploaded == 25 - response, context = self.do_post({'title': u'Normal upload 5'}, + response, context = self.do_post({'title': 'Normal upload 5'}, do_follow=True, **self.upload_data(GOOD_JPG)) - self.check_url(response, '/u/{0}/'.format(self.our_user().username)) + self.check_url(response, '/u/{}/'.format(self.our_user().username)) assert 'mediagoblin/user_pages/user.html' in context # Shouldn't have uploaded @@ -281,23 +281,23 @@ class TestSubmissionBasics(BaseTestSubmission): # User uploaded should be 499 assert self.our_user().uploaded == 499 - response, context = self.do_post({'title': u'Normal upload 6'}, + response, context = self.do_post({'title': 'Normal upload 6'}, do_follow=False, **self.upload_data(MED_PNG)) form = context['mediagoblin/submit/start.html']['submit_form'] - assert form.file.errors == [u'Sorry, uploading this file will put you' + assert form.file.errors == ['Sorry, uploading this file will put you' ' over your upload limit.'] # Shouldn't have uploaded assert self.our_user().uploaded == 499 def test_big_file(self): - response, context = self.do_post({'title': u'Normal upload 7'}, + response, context = self.do_post({'title': 'Normal upload 7'}, do_follow=False, **self.upload_data(BIG_PNG)) form = context['mediagoblin/submit/start.html']['submit_form'] - assert form.file.errors == [u'Sorry, the file size is too big.'] + assert form.file.errors == ['Sorry, the file size is too big.'] def check_media(self, request, find_data, count=None): media = MediaEntry.query.filter_by(**find_data) @@ -310,34 +310,34 @@ class TestSubmissionBasics(BaseTestSubmission): def test_tags(self): # Good tag string # -------- - response, request = self.do_post({'title': u'Balanced Goblin 2', + response, request = self.do_post({'title': 'Balanced Goblin 2', 'tags': GOOD_TAG_STRING}, *REQUEST_CONTEXT, do_follow=True, **self.upload_data(GOOD_JPG)) - media = self.check_media(request, {'title': u'Balanced Goblin 2'}, 1) - assert media.tags[0]['name'] == u'yin' - assert media.tags[0]['slug'] == u'yin' + media = self.check_media(request, {'title': 'Balanced Goblin 2'}, 1) + assert media.tags[0]['name'] == 'yin' + assert media.tags[0]['slug'] == 'yin' - assert media.tags[1]['name'] == u'yang' - assert media.tags[1]['slug'] == u'yang' + assert media.tags[1]['name'] == 'yang' + assert media.tags[1]['slug'] == 'yang' # Test tags that are too long # --------------- - response, form = self.do_post({'title': u'Balanced Goblin 2', + response, form = self.do_post({'title': 'Balanced Goblin 2', 'tags': BAD_TAG_STRING}, *FORM_CONTEXT, **self.upload_data(GOOD_JPG)) assert form.tags.errors == [ - u'Tags must be shorter than 50 characters. ' \ + 'Tags must be shorter than 50 characters. ' \ 'Tags that are too long: ' \ 'ffffffffffffffffffffffffffuuuuuuuuuuuuuuuuuuuuuuuuuu'] def test_delete(self): self.user_upload_limits(uploaded=50) - response, request = self.do_post({'title': u'Balanced Goblin'}, + response, request = self.do_post({'title': 'Balanced Goblin'}, *REQUEST_CONTEXT, do_follow=True, **self.upload_data(GOOD_JPG)) - media = self.check_media(request, {'title': u'Balanced Goblin'}, 1) + media = self.check_media(request, {'title': 'Balanced Goblin'}, 1) media_id = media.id # render and post to the edit page. @@ -346,11 +346,11 @@ class TestSubmissionBasics(BaseTestSubmission): user=self.our_user().username, media_id=media_id) self.test_app.get(edit_url) self.test_app.post(edit_url, - {'title': u'Balanced Goblin', - 'slug': u"Balanced=Goblin", - 'tags': u''}) - media = self.check_media(request, {'title': u'Balanced Goblin'}, 1) - assert media.slug == u"balanced-goblin" + {'title': 'Balanced Goblin', + 'slug': "Balanced=Goblin", + 'tags': ''}) + media = self.check_media(request, {'title': 'Balanced Goblin'}, 1) + assert media.slug == "balanced-goblin" # Add a comment, so we can test for its deletion later. self.check_comments(request, media_id, 0) @@ -368,7 +368,7 @@ class TestSubmissionBasics(BaseTestSubmission): user=self.our_user().username, media_id=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': u'Balanced Goblin'}, 1) + media = self.check_media(request, {'title': 'Balanced Goblin'}, 1) media_id = media.id # Confirm deletion @@ -384,7 +384,7 @@ class TestSubmissionBasics(BaseTestSubmission): def test_evil_file(self): # Test non-suppoerted file with non-supported extension # ----------------------------------------------------- - response, form = self.do_post({'title': u'Malicious Upload 1'}, + response, form = self.do_post({'title': 'Malicious Upload 1'}, *FORM_CONTEXT, **self.upload_data(EVIL_FILE)) assert len(form.file.errors) == 1 @@ -395,12 +395,12 @@ class TestSubmissionBasics(BaseTestSubmission): def test_get_media_manager(self): """Test if the get_media_manger function returns sensible things """ - response, request = self.do_post({'title': u'Balanced Goblin'}, + response, request = self.do_post({'title': 'Balanced Goblin'}, *REQUEST_CONTEXT, do_follow=True, **self.upload_data(GOOD_JPG)) - media = self.check_media(request, {'title': u'Balanced Goblin'}, 1) + media = self.check_media(request, {'title': 'Balanced Goblin'}, 1) - assert media.media_type == u'mediagoblin.media_types.image' + assert media.media_type == 'mediagoblin.media_types.image' assert isinstance(media.media_manager, ImageMediaManager) assert media.media_manager.entry == media @@ -412,7 +412,7 @@ class TestSubmissionBasics(BaseTestSubmission): template.clear_test_template_context() response = self.test_app.post( '/submit/', { - 'title': u'UNIQUE_TITLE_PLS_DONT_CREATE_OTHER_MEDIA_WITH_THIS_TITLE' + 'title': 'UNIQUE_TITLE_PLS_DONT_CREATE_OTHER_MEDIA_WITH_THIS_TITLE' }, upload_files=[( 'file', GOOD_JPG)]) @@ -423,7 +423,7 @@ class TestSubmissionBasics(BaseTestSubmission): request = context['request'] media = request.db.MediaEntry.query.filter_by( - title=u'UNIQUE_TITLE_PLS_DONT_CREATE_OTHER_MEDIA_WITH_THIS_TITLE').first() + title='UNIQUE_TITLE_PLS_DONT_CREATE_OTHER_MEDIA_WITH_THIS_TITLE').first() assert media.media_type == 'mediagoblin.media_types.image' @@ -433,31 +433,31 @@ class TestSubmissionBasics(BaseTestSubmission): # they'll be caught as failures during the processing step. response, context = self.do_post({'title': title}, do_follow=True, **self.upload_data(filename)) - self.check_url(response, '/u/{0}/'.format(self.our_user().username)) + self.check_url(response, '/u/{}/'.format(self.our_user().username)) entry = mg_globals.database.MediaEntry.query.filter_by(title=title).first() assert entry.state == 'failed' - assert entry.fail_error == u'mediagoblin.processing:BadMediaFail' + assert entry.fail_error == 'mediagoblin.processing:BadMediaFail' def test_evil_jpg(self): # Test non-supported file with .jpg extension # ------------------------------------------- - self.check_false_image(u'Malicious Upload 2', EVIL_JPG) + self.check_false_image('Malicious Upload 2', EVIL_JPG) def test_evil_png(self): # Test non-supported file with .png extension # ------------------------------------------- - self.check_false_image(u'Malicious Upload 3', EVIL_PNG) + self.check_false_image('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) + self.check_normal_upload("With GPS data", GPS_JPG) + media = self.check_media(None, {"title": "With GPS data"}, 1) assert media.get_location.position["latitude"] == 59.336666666666666 def test_processing(self): public_store_dir = mg_globals.global_config[ 'storage:publicstore']['base_dir'] - data = {'title': u'Big Blue'} + data = {'title': '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) @@ -497,8 +497,8 @@ class TestSubmissionBasics(BaseTestSubmission): # Collection option should be present if the user has collections. It # shouldn't allow other users' collections to be selected. col = fixture_add_collection(user=self.our_user()) - user = fixture_add_user(username=u'different') - fixture_add_collection(user=user, name=u'different') + user = fixture_add_user(username='different') + fixture_add_collection(user=user, name='different') response = self.test_app.get('/submit/') form = response.form assert 'collection' in form.fields @@ -522,7 +522,7 @@ class TestSubmissionBasics(BaseTestSubmission): # collection. That should be the last activity. assert Activity.query.order_by( Activity.id.desc() - ).first().content == '{0} added new picture to {1}'.format( + ).first().content == '{} added new picture to {}'.format( self.our_user().username, col.title) # Test upload succeeds if the user has collection and no collection is @@ -547,7 +547,7 @@ class TestSubmissionVideo(BaseTestSubmission): # TODO: Possibly abstract into a decorator like: # @as_authenticated_user('chris') - fixture_add_user(privileges=[u'active',u'uploader', u'commenter']) + fixture_add_user(privileges=['active','uploader', 'commenter']) self.login() @@ -558,7 +558,7 @@ class TestSubmissionVideo(BaseTestSubmission): self.check_normal_upload('Video', path) media = mg_globals.database.MediaEntry.query.filter_by( - title=u'Video').first() + title='Video').first() video_config = mg_globals.global_config['plugins'][self.media_type] for each_res in video_config['available_resolutions']: @@ -573,7 +573,7 @@ class TestSubmissionVideo(BaseTestSubmission): self.check_normal_upload('testgetallmedia', path) media = mg_globals.database.MediaEntry.query.filter_by( - title=u'testgetallmedia').first() + title='testgetallmedia').first() result = media.get_all_media() video_config = mg_globals.global_config['plugins'][self.media_type] @@ -595,7 +595,7 @@ class TestSubmissionVideo(BaseTestSubmission): assert len(result) == len(video_config['available_resolutions']) for i in range(len(video_config['available_resolutions'])): media_file = MediaFile.query.filter_by(media_entry=media.id, - name=('webm_{0}'.format(str(result[i][0])))).first() + name=('webm_{}'.format(str(result[i][0])))).first() # check media_file label assert result[i][0] == video_config['available_resolutions'][i] # check dimensions of media_file @@ -645,7 +645,7 @@ class TestSubmissionVideo(BaseTestSubmission): mock_comp_task.assert_has_calls(calls) mock_cleanup.assert_called_once_with(args=(entry.id,), queue='default', immutable=True) - assert entry.state == u'processing' + assert entry.state == 'processing' # delete the entry entry.delete() @@ -738,7 +738,7 @@ class TestSubmissionAudio(BaseTestSubmission): # TODO: Possibly abstract into a decorator like: # @as_authenticated_user('chris') - fixture_add_user(privileges=[u'active',u'uploader', u'commenter']) + fixture_add_user(privileges=['active','uploader', 'commenter']) self.login() @@ -756,7 +756,7 @@ class TestSubmissionAudioVideo(BaseTestSubmission): # TODO: Possibly abstract into a decorator like: # @as_authenticated_user('chris') - fixture_add_user(privileges=[u'active',u'uploader', u'commenter']) + fixture_add_user(privileges=['active','uploader', 'commenter']) self.login() @@ -774,15 +774,15 @@ class TestSubmissionPDF(BaseTestSubmission): # TODO: Possibly abstract into a decorator like: # @as_authenticated_user('chris') - fixture_add_user(privileges=[u'active',u'uploader', u'commenter']) + fixture_add_user(privileges=['active','uploader', 'commenter']) self.login() @pytest.mark.skipif("not os.path.exists(GOOD_PDF) or not pdf_check_prerequisites()") def test_normal_pdf(self): - response, context = self.do_post({'title': u'Normal upload 3 (pdf)'}, + response, context = self.do_post({'title': 'Normal upload 3 (pdf)'}, do_follow=True, **self.upload_data(GOOD_PDF)) - self.check_url(response, '/u/{0}/'.format(self.our_user().username)) + self.check_url(response, '/u/{}/'.format(self.our_user().username)) assert 'mediagoblin/user_pages/user.html' in context |