Prevent non-Unicode SQLAlchemy warnings in most submission tests.
This commit makes test_submission mostly warning-clean.
This commit is contained in:
parent
c7dfd4fba6
commit
5bd0adebd0
@ -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
|
||||
|
||||
|
@ -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:
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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(
|
||||
|
Loading…
x
Reference in New Issue
Block a user