Merge remote branch 'remotes/aaronw/bug444_fix_utils_py_redux'
Conflicts: mediagoblin/util.py
This commit is contained in:
@@ -22,7 +22,7 @@ from nose.tools import assert_equal
|
||||
from mediagoblin.auth import lib as auth_lib
|
||||
from mediagoblin.tests.tools import setup_fresh_app
|
||||
from mediagoblin import mg_globals
|
||||
from mediagoblin import util
|
||||
from mediagoblin.tools import template, mail
|
||||
|
||||
|
||||
########################
|
||||
@@ -76,16 +76,16 @@ def test_register_views(test_app):
|
||||
|
||||
test_app.get('/auth/register/')
|
||||
# Make sure it rendered with the appropriate template
|
||||
assert util.TEMPLATE_TEST_CONTEXT.has_key(
|
||||
assert template.TEMPLATE_TEST_CONTEXT.has_key(
|
||||
'mediagoblin/auth/register.html')
|
||||
|
||||
# Try to register without providing anything, should error
|
||||
# --------------------------------------------------------
|
||||
|
||||
util.clear_test_template_context()
|
||||
template.clear_test_template_context()
|
||||
test_app.post(
|
||||
'/auth/register/', {})
|
||||
context = util.TEMPLATE_TEST_CONTEXT['mediagoblin/auth/register.html']
|
||||
context = template.TEMPLATE_TEST_CONTEXT['mediagoblin/auth/register.html']
|
||||
form = context['register_form']
|
||||
assert form.username.errors == [u'This field is required.']
|
||||
assert form.password.errors == [u'This field is required.']
|
||||
@@ -96,14 +96,14 @@ def test_register_views(test_app):
|
||||
# --------------------------------------------------------
|
||||
|
||||
## too short
|
||||
util.clear_test_template_context()
|
||||
template.clear_test_template_context()
|
||||
test_app.post(
|
||||
'/auth/register/', {
|
||||
'username': 'l',
|
||||
'password': 'o',
|
||||
'confirm_password': 'o',
|
||||
'email': 'l'})
|
||||
context = util.TEMPLATE_TEST_CONTEXT['mediagoblin/auth/register.html']
|
||||
context = template.TEMPLATE_TEST_CONTEXT['mediagoblin/auth/register.html']
|
||||
form = context['register_form']
|
||||
|
||||
assert form.username.errors == [
|
||||
@@ -112,12 +112,12 @@ def test_register_views(test_app):
|
||||
u'Field must be between 6 and 30 characters long.']
|
||||
|
||||
## bad form
|
||||
util.clear_test_template_context()
|
||||
template.clear_test_template_context()
|
||||
test_app.post(
|
||||
'/auth/register/', {
|
||||
'username': '@_@',
|
||||
'email': 'lollerskates'})
|
||||
context = util.TEMPLATE_TEST_CONTEXT['mediagoblin/auth/register.html']
|
||||
context = template.TEMPLATE_TEST_CONTEXT['mediagoblin/auth/register.html']
|
||||
form = context['register_form']
|
||||
|
||||
assert form.username.errors == [
|
||||
@@ -126,12 +126,12 @@ def test_register_views(test_app):
|
||||
u'Invalid email address.']
|
||||
|
||||
## mismatching passwords
|
||||
util.clear_test_template_context()
|
||||
template.clear_test_template_context()
|
||||
test_app.post(
|
||||
'/auth/register/', {
|
||||
'password': 'herpderp',
|
||||
'confirm_password': 'derpherp'})
|
||||
context = util.TEMPLATE_TEST_CONTEXT['mediagoblin/auth/register.html']
|
||||
context = template.TEMPLATE_TEST_CONTEXT['mediagoblin/auth/register.html']
|
||||
form = context['register_form']
|
||||
|
||||
assert form.password.errors == [
|
||||
@@ -142,7 +142,7 @@ def test_register_views(test_app):
|
||||
|
||||
# Successful register
|
||||
# -------------------
|
||||
util.clear_test_template_context()
|
||||
template.clear_test_template_context()
|
||||
response = test_app.post(
|
||||
'/auth/register/', {
|
||||
'username': 'happygirl',
|
||||
@@ -155,7 +155,7 @@ def test_register_views(test_app):
|
||||
assert_equal(
|
||||
urlparse.urlsplit(response.location)[2],
|
||||
'/u/happygirl/')
|
||||
assert util.TEMPLATE_TEST_CONTEXT.has_key(
|
||||
assert template.TEMPLATE_TEST_CONTEXT.has_key(
|
||||
'mediagoblin/user_pages/user.html')
|
||||
|
||||
## Make sure user is in place
|
||||
@@ -166,15 +166,15 @@ def test_register_views(test_app):
|
||||
assert new_user['email_verified'] == False
|
||||
|
||||
## Make sure user is logged in
|
||||
request = util.TEMPLATE_TEST_CONTEXT[
|
||||
request = template.TEMPLATE_TEST_CONTEXT[
|
||||
'mediagoblin/user_pages/user.html']['request']
|
||||
assert request.session['user_id'] == unicode(new_user['_id'])
|
||||
|
||||
## Make sure we get email confirmation, and try verifying
|
||||
assert len(util.EMAIL_TEST_INBOX) == 1
|
||||
message = util.EMAIL_TEST_INBOX.pop()
|
||||
assert len(mail.EMAIL_TEST_INBOX) == 1
|
||||
message = mail.EMAIL_TEST_INBOX.pop()
|
||||
assert message['To'] == 'happygrrl@example.org'
|
||||
email_context = util.TEMPLATE_TEST_CONTEXT[
|
||||
email_context = template.TEMPLATE_TEST_CONTEXT[
|
||||
'mediagoblin/auth/verification_email.txt']
|
||||
assert email_context['verification_url'] in message.get_payload(decode=True)
|
||||
|
||||
@@ -190,12 +190,12 @@ def test_register_views(test_app):
|
||||
new_user['verification_key']]
|
||||
|
||||
## Try verifying with bs verification key, shouldn't work
|
||||
util.clear_test_template_context()
|
||||
template.clear_test_template_context()
|
||||
response = test_app.get(
|
||||
"/auth/verify_email/?userid=%s&token=total_bs" % unicode(
|
||||
new_user['_id']))
|
||||
response.follow()
|
||||
context = util.TEMPLATE_TEST_CONTEXT[
|
||||
context = template.TEMPLATE_TEST_CONTEXT[
|
||||
'mediagoblin/user_pages/user.html']
|
||||
# assert context['verification_successful'] == True
|
||||
# TODO: Would be good to test messages here when we can do so...
|
||||
@@ -206,10 +206,10 @@ def test_register_views(test_app):
|
||||
assert new_user['email_verified'] == False
|
||||
|
||||
## Verify the email activation works
|
||||
util.clear_test_template_context()
|
||||
template.clear_test_template_context()
|
||||
response = test_app.get("%s?%s" % (path, get_params))
|
||||
response.follow()
|
||||
context = util.TEMPLATE_TEST_CONTEXT[
|
||||
context = template.TEMPLATE_TEST_CONTEXT[
|
||||
'mediagoblin/user_pages/user.html']
|
||||
# assert context['verification_successful'] == True
|
||||
# TODO: Would be good to test messages here when we can do so...
|
||||
@@ -222,7 +222,7 @@ def test_register_views(test_app):
|
||||
# Uniqueness checks
|
||||
# -----------------
|
||||
## We shouldn't be able to register with that user twice
|
||||
util.clear_test_template_context()
|
||||
template.clear_test_template_context()
|
||||
response = test_app.post(
|
||||
'/auth/register/', {
|
||||
'username': 'happygirl',
|
||||
@@ -230,7 +230,7 @@ def test_register_views(test_app):
|
||||
'confirm_password': 'iamsohappy2',
|
||||
'email': 'happygrrl2@example.org'})
|
||||
|
||||
context = util.TEMPLATE_TEST_CONTEXT[
|
||||
context = template.TEMPLATE_TEST_CONTEXT[
|
||||
'mediagoblin/auth/register.html']
|
||||
form = context['register_form']
|
||||
assert form.username.errors == [
|
||||
@@ -240,7 +240,7 @@ def test_register_views(test_app):
|
||||
|
||||
### Oops, forgot the password
|
||||
# -------------------
|
||||
util.clear_test_template_context()
|
||||
template.clear_test_template_context()
|
||||
response = test_app.post(
|
||||
'/auth/forgot_password/',
|
||||
{'username': 'happygirl'})
|
||||
@@ -250,14 +250,14 @@ def test_register_views(test_app):
|
||||
assert_equal(
|
||||
urlparse.urlsplit(response.location)[2],
|
||||
'/auth/forgot_password/email_sent/')
|
||||
assert util.TEMPLATE_TEST_CONTEXT.has_key(
|
||||
assert template.TEMPLATE_TEST_CONTEXT.has_key(
|
||||
'mediagoblin/auth/fp_email_sent.html')
|
||||
|
||||
## Make sure link to change password is sent by email
|
||||
assert len(util.EMAIL_TEST_INBOX) == 1
|
||||
message = util.EMAIL_TEST_INBOX.pop()
|
||||
assert len(mail.EMAIL_TEST_INBOX) == 1
|
||||
message = mail.EMAIL_TEST_INBOX.pop()
|
||||
assert message['To'] == 'happygrrl@example.org'
|
||||
email_context = util.TEMPLATE_TEST_CONTEXT[
|
||||
email_context = template.TEMPLATE_TEST_CONTEXT[
|
||||
'mediagoblin/auth/fp_verification_email.txt']
|
||||
#TODO - change the name of verification_url to something forgot-password-ish
|
||||
assert email_context['verification_url'] in message.get_payload(decode=True)
|
||||
@@ -277,14 +277,14 @@ def test_register_views(test_app):
|
||||
assert (new_user['fp_token_expire'] - datetime.datetime.now()).days == 9
|
||||
|
||||
## Try using a bs password-changing verification key, shouldn't work
|
||||
util.clear_test_template_context()
|
||||
template.clear_test_template_context()
|
||||
response = test_app.get(
|
||||
"/auth/forgot_password/verify/?userid=%s&token=total_bs" % unicode(
|
||||
new_user['_id']), status=400)
|
||||
assert response.status == '400 Bad Request'
|
||||
|
||||
## Try using an expired token to change password, shouldn't work
|
||||
util.clear_test_template_context()
|
||||
template.clear_test_template_context()
|
||||
real_token_expiration = new_user['fp_token_expire']
|
||||
new_user['fp_token_expire'] = datetime.datetime.now()
|
||||
new_user.save()
|
||||
@@ -294,12 +294,12 @@ def test_register_views(test_app):
|
||||
new_user.save()
|
||||
|
||||
## Verify step 1 of password-change works -- can see form to change password
|
||||
util.clear_test_template_context()
|
||||
template.clear_test_template_context()
|
||||
response = test_app.get("%s?%s" % (path, get_params))
|
||||
assert util.TEMPLATE_TEST_CONTEXT.has_key('mediagoblin/auth/change_fp.html')
|
||||
assert template.TEMPLATE_TEST_CONTEXT.has_key('mediagoblin/auth/change_fp.html')
|
||||
|
||||
## Verify step 2.1 of password-change works -- report success to user
|
||||
util.clear_test_template_context()
|
||||
template.clear_test_template_context()
|
||||
response = test_app.post(
|
||||
'/auth/forgot_password/verify/', {
|
||||
'userid': parsed_get_params['userid'],
|
||||
@@ -307,11 +307,11 @@ def test_register_views(test_app):
|
||||
'confirm_password': 'iamveryveryhappy',
|
||||
'token': parsed_get_params['token']})
|
||||
response.follow()
|
||||
assert util.TEMPLATE_TEST_CONTEXT.has_key(
|
||||
assert template.TEMPLATE_TEST_CONTEXT.has_key(
|
||||
'mediagoblin/auth/fp_changed_success.html')
|
||||
|
||||
## Verify step 2.2 of password-change works -- login w/ new password success
|
||||
util.clear_test_template_context()
|
||||
template.clear_test_template_context()
|
||||
response = test_app.post(
|
||||
'/auth/login/', {
|
||||
'username': u'happygirl',
|
||||
@@ -322,7 +322,7 @@ def test_register_views(test_app):
|
||||
assert_equal(
|
||||
urlparse.urlsplit(response.location)[2],
|
||||
'/')
|
||||
assert util.TEMPLATE_TEST_CONTEXT.has_key(
|
||||
assert template.TEMPLATE_TEST_CONTEXT.has_key(
|
||||
'mediagoblin/root.html')
|
||||
|
||||
|
||||
@@ -341,61 +341,61 @@ def test_authentication_views(test_app):
|
||||
# Get login
|
||||
# ---------
|
||||
test_app.get('/auth/login/')
|
||||
assert util.TEMPLATE_TEST_CONTEXT.has_key(
|
||||
assert template.TEMPLATE_TEST_CONTEXT.has_key(
|
||||
'mediagoblin/auth/login.html')
|
||||
|
||||
# Failed login - blank form
|
||||
# -------------------------
|
||||
util.clear_test_template_context()
|
||||
template.clear_test_template_context()
|
||||
response = test_app.post('/auth/login/')
|
||||
context = util.TEMPLATE_TEST_CONTEXT['mediagoblin/auth/login.html']
|
||||
context = template.TEMPLATE_TEST_CONTEXT['mediagoblin/auth/login.html']
|
||||
form = context['login_form']
|
||||
assert form.username.errors == [u'This field is required.']
|
||||
assert form.password.errors == [u'This field is required.']
|
||||
|
||||
# Failed login - blank user
|
||||
# -------------------------
|
||||
util.clear_test_template_context()
|
||||
template.clear_test_template_context()
|
||||
response = test_app.post(
|
||||
'/auth/login/', {
|
||||
'password': u'toast'})
|
||||
context = util.TEMPLATE_TEST_CONTEXT['mediagoblin/auth/login.html']
|
||||
context = template.TEMPLATE_TEST_CONTEXT['mediagoblin/auth/login.html']
|
||||
form = context['login_form']
|
||||
assert form.username.errors == [u'This field is required.']
|
||||
|
||||
# Failed login - blank password
|
||||
# -----------------------------
|
||||
util.clear_test_template_context()
|
||||
template.clear_test_template_context()
|
||||
response = test_app.post(
|
||||
'/auth/login/', {
|
||||
'username': u'chris'})
|
||||
context = util.TEMPLATE_TEST_CONTEXT['mediagoblin/auth/login.html']
|
||||
context = template.TEMPLATE_TEST_CONTEXT['mediagoblin/auth/login.html']
|
||||
form = context['login_form']
|
||||
assert form.password.errors == [u'This field is required.']
|
||||
|
||||
# Failed login - bad user
|
||||
# -----------------------
|
||||
util.clear_test_template_context()
|
||||
template.clear_test_template_context()
|
||||
response = test_app.post(
|
||||
'/auth/login/', {
|
||||
'username': u'steve',
|
||||
'password': 'toast'})
|
||||
context = util.TEMPLATE_TEST_CONTEXT['mediagoblin/auth/login.html']
|
||||
context = template.TEMPLATE_TEST_CONTEXT['mediagoblin/auth/login.html']
|
||||
assert context['login_failed']
|
||||
|
||||
# Failed login - bad password
|
||||
# ---------------------------
|
||||
util.clear_test_template_context()
|
||||
template.clear_test_template_context()
|
||||
response = test_app.post(
|
||||
'/auth/login/', {
|
||||
'username': u'chris',
|
||||
'password': 'jam'})
|
||||
context = util.TEMPLATE_TEST_CONTEXT['mediagoblin/auth/login.html']
|
||||
context = template.TEMPLATE_TEST_CONTEXT['mediagoblin/auth/login.html']
|
||||
assert context['login_failed']
|
||||
|
||||
# Successful login
|
||||
# ----------------
|
||||
util.clear_test_template_context()
|
||||
template.clear_test_template_context()
|
||||
response = test_app.post(
|
||||
'/auth/login/', {
|
||||
'username': u'chris',
|
||||
@@ -406,17 +406,17 @@ def test_authentication_views(test_app):
|
||||
assert_equal(
|
||||
urlparse.urlsplit(response.location)[2],
|
||||
'/')
|
||||
assert util.TEMPLATE_TEST_CONTEXT.has_key(
|
||||
assert template.TEMPLATE_TEST_CONTEXT.has_key(
|
||||
'mediagoblin/root.html')
|
||||
|
||||
# Make sure user is in the session
|
||||
context = util.TEMPLATE_TEST_CONTEXT['mediagoblin/root.html']
|
||||
context = template.TEMPLATE_TEST_CONTEXT['mediagoblin/root.html']
|
||||
session = context['request'].session
|
||||
assert session['user_id'] == unicode(test_user['_id'])
|
||||
|
||||
# Successful logout
|
||||
# -----------------
|
||||
util.clear_test_template_context()
|
||||
template.clear_test_template_context()
|
||||
response = test_app.get('/auth/logout/')
|
||||
|
||||
# Should be redirected to index page
|
||||
@@ -424,17 +424,17 @@ def test_authentication_views(test_app):
|
||||
assert_equal(
|
||||
urlparse.urlsplit(response.location)[2],
|
||||
'/')
|
||||
assert util.TEMPLATE_TEST_CONTEXT.has_key(
|
||||
assert template.TEMPLATE_TEST_CONTEXT.has_key(
|
||||
'mediagoblin/root.html')
|
||||
|
||||
# Make sure the user is not in the session
|
||||
context = util.TEMPLATE_TEST_CONTEXT['mediagoblin/root.html']
|
||||
context = template.TEMPLATE_TEST_CONTEXT['mediagoblin/root.html']
|
||||
session = context['request'].session
|
||||
assert session.has_key('user_id') == False
|
||||
|
||||
# User is redirected to custom URL if POST['next'] is set
|
||||
# -------------------------------------------------------
|
||||
util.clear_test_template_context()
|
||||
template.clear_test_template_context()
|
||||
response = test_app.post(
|
||||
'/auth/login/', {
|
||||
'username': u'chris',
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
from mediagoblin.messages import fetch_messages, add_message
|
||||
from mediagoblin.tests.tools import setup_fresh_app
|
||||
from mediagoblin import util
|
||||
from mediagoblin.tools import template
|
||||
|
||||
|
||||
@setup_fresh_app
|
||||
@@ -28,7 +28,7 @@ def test_messages(test_app):
|
||||
"""
|
||||
# Aquire a request object
|
||||
test_app.get('/')
|
||||
context = util.TEMPLATE_TEST_CONTEXT['mediagoblin/root.html']
|
||||
context = template.TEMPLATE_TEST_CONTEXT['mediagoblin/root.html']
|
||||
request = context['request']
|
||||
|
||||
# The message queue should be empty
|
||||
|
||||
@@ -22,7 +22,7 @@ from nose.tools import assert_equal, assert_true, assert_false
|
||||
from mediagoblin.auth import lib as auth_lib
|
||||
from mediagoblin.tests.tools import setup_fresh_app, get_test_app
|
||||
from mediagoblin import mg_globals
|
||||
from mediagoblin import util
|
||||
from mediagoblin.tools import template, common
|
||||
|
||||
GOOD_JPG = pkg_resources.resource_filename(
|
||||
'mediagoblin.tests', 'test_submission/good.jpg')
|
||||
@@ -63,20 +63,20 @@ class TestSubmission:
|
||||
def test_missing_fields(self):
|
||||
# Test blank form
|
||||
# ---------------
|
||||
util.clear_test_template_context()
|
||||
template.clear_test_template_context()
|
||||
response = self.test_app.post(
|
||||
'/submit/', {})
|
||||
context = util.TEMPLATE_TEST_CONTEXT['mediagoblin/submit/start.html']
|
||||
context = template.TEMPLATE_TEST_CONTEXT['mediagoblin/submit/start.html']
|
||||
form = context['submit_form']
|
||||
assert form.file.errors == [u'You must provide a file.']
|
||||
|
||||
# Test blank file
|
||||
# ---------------
|
||||
util.clear_test_template_context()
|
||||
template.clear_test_template_context()
|
||||
response = self.test_app.post(
|
||||
'/submit/', {
|
||||
'title': 'test title'})
|
||||
context = util.TEMPLATE_TEST_CONTEXT['mediagoblin/submit/start.html']
|
||||
context = template.TEMPLATE_TEST_CONTEXT['mediagoblin/submit/start.html']
|
||||
form = context['submit_form']
|
||||
assert form.file.errors == [u'You must provide a file.']
|
||||
|
||||
@@ -84,7 +84,7 @@ class TestSubmission:
|
||||
def test_normal_uploads(self):
|
||||
# Test JPG
|
||||
# --------
|
||||
util.clear_test_template_context()
|
||||
template.clear_test_template_context()
|
||||
response = self.test_app.post(
|
||||
'/submit/', {
|
||||
'title': 'Normal upload 1'
|
||||
@@ -96,12 +96,12 @@ class TestSubmission:
|
||||
assert_equal(
|
||||
urlparse.urlsplit(response.location)[2],
|
||||
'/u/chris/')
|
||||
assert util.TEMPLATE_TEST_CONTEXT.has_key(
|
||||
assert template.TEMPLATE_TEST_CONTEXT.has_key(
|
||||
'mediagoblin/user_pages/user.html')
|
||||
|
||||
# Test PNG
|
||||
# --------
|
||||
util.clear_test_template_context()
|
||||
template.clear_test_template_context()
|
||||
response = self.test_app.post(
|
||||
'/submit/', {
|
||||
'title': 'Normal upload 2'
|
||||
@@ -112,13 +112,13 @@ class TestSubmission:
|
||||
assert_equal(
|
||||
urlparse.urlsplit(response.location)[2],
|
||||
'/u/chris/')
|
||||
assert util.TEMPLATE_TEST_CONTEXT.has_key(
|
||||
assert template.TEMPLATE_TEST_CONTEXT.has_key(
|
||||
'mediagoblin/user_pages/user.html')
|
||||
|
||||
def test_tags(self):
|
||||
# Good tag string
|
||||
# --------
|
||||
util.clear_test_template_context()
|
||||
template.clear_test_template_context()
|
||||
response = self.test_app.post(
|
||||
'/submit/', {
|
||||
'title': 'Balanced Goblin',
|
||||
@@ -128,7 +128,7 @@ class TestSubmission:
|
||||
|
||||
# New media entry with correct tags should be created
|
||||
response.follow()
|
||||
context = util.TEMPLATE_TEST_CONTEXT['mediagoblin/user_pages/user.html']
|
||||
context = template.TEMPLATE_TEST_CONTEXT['mediagoblin/user_pages/user.html']
|
||||
request = context['request']
|
||||
media = request.db.MediaEntry.find({'title': 'Balanced Goblin'})[0]
|
||||
assert_equal(media['tags'],
|
||||
@@ -137,7 +137,7 @@ class TestSubmission:
|
||||
|
||||
# Test tags that are too long
|
||||
# ---------------
|
||||
util.clear_test_template_context()
|
||||
template.clear_test_template_context()
|
||||
response = self.test_app.post(
|
||||
'/submit/', {
|
||||
'title': 'Balanced Goblin',
|
||||
@@ -146,14 +146,14 @@ class TestSubmission:
|
||||
'file', GOOD_JPG)])
|
||||
|
||||
# Too long error should be raised
|
||||
context = util.TEMPLATE_TEST_CONTEXT['mediagoblin/submit/start.html']
|
||||
context = template.TEMPLATE_TEST_CONTEXT['mediagoblin/submit/start.html']
|
||||
form = context['submit_form']
|
||||
assert form.tags.errors == [
|
||||
u'Tags must be shorter than 50 characters. Tags that are too long'\
|
||||
': ffffffffffffffffffffffffffuuuuuuuuuuuuuuuuuuuuuuuuuu']
|
||||
|
||||
def test_delete(self):
|
||||
util.clear_test_template_context()
|
||||
template.clear_test_template_context()
|
||||
response = self.test_app.post(
|
||||
'/submit/', {
|
||||
'title': 'Balanced Goblin',
|
||||
@@ -163,7 +163,7 @@ class TestSubmission:
|
||||
# Post image
|
||||
response.follow()
|
||||
|
||||
request = util.TEMPLATE_TEST_CONTEXT[
|
||||
request = template.TEMPLATE_TEST_CONTEXT[
|
||||
'mediagoblin/user_pages/user.html']['request']
|
||||
|
||||
media = request.db.MediaEntry.find({'title': 'Balanced Goblin'})[0]
|
||||
@@ -183,7 +183,7 @@ class TestSubmission:
|
||||
|
||||
response.follow()
|
||||
|
||||
request = util.TEMPLATE_TEST_CONTEXT[
|
||||
request = template.TEMPLATE_TEST_CONTEXT[
|
||||
'mediagoblin/user_pages/user.html']['request']
|
||||
|
||||
media = request.db.MediaEntry.find({'title': 'Balanced Goblin'})[0]
|
||||
@@ -202,7 +202,7 @@ class TestSubmission:
|
||||
|
||||
response.follow()
|
||||
|
||||
request = util.TEMPLATE_TEST_CONTEXT[
|
||||
request = template.TEMPLATE_TEST_CONTEXT[
|
||||
'mediagoblin/user_pages/user.html']['request']
|
||||
|
||||
# Does media entry still exist?
|
||||
@@ -213,14 +213,14 @@ class TestSubmission:
|
||||
def test_malicious_uploads(self):
|
||||
# Test non-suppoerted file with non-supported extension
|
||||
# -----------------------------------------------------
|
||||
util.clear_test_template_context()
|
||||
template.clear_test_template_context()
|
||||
response = self.test_app.post(
|
||||
'/submit/', {
|
||||
'title': 'Malicious Upload 1'
|
||||
}, upload_files=[(
|
||||
'file', EVIL_FILE)])
|
||||
|
||||
context = util.TEMPLATE_TEST_CONTEXT['mediagoblin/submit/start.html']
|
||||
context = template.TEMPLATE_TEST_CONTEXT['mediagoblin/submit/start.html']
|
||||
form = context['submit_form']
|
||||
assert form.file.errors == ['The file doesn\'t seem to be an image!']
|
||||
|
||||
@@ -230,7 +230,7 @@ class TestSubmission:
|
||||
|
||||
# Test non-supported file with .jpg extension
|
||||
# -------------------------------------------
|
||||
util.clear_test_template_context()
|
||||
template.clear_test_template_context()
|
||||
response = self.test_app.post(
|
||||
'/submit/', {
|
||||
'title': 'Malicious Upload 2'
|
||||
@@ -250,7 +250,7 @@ class TestSubmission:
|
||||
|
||||
# Test non-supported file with .png extension
|
||||
# -------------------------------------------
|
||||
util.clear_test_template_context()
|
||||
template.clear_test_template_context()
|
||||
response = self.test_app.post(
|
||||
'/submit/', {
|
||||
'title': 'Malicious Upload 3'
|
||||
|
||||
@@ -15,9 +15,8 @@
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
from mediagoblin.tests.tools import setup_fresh_app
|
||||
from mediagoblin import util
|
||||
from mediagoblin import mg_globals
|
||||
|
||||
from mediagoblin.tools import text
|
||||
|
||||
@setup_fresh_app
|
||||
def test_list_of_dicts_conversion(test_app):
|
||||
@@ -28,23 +27,23 @@ def test_list_of_dicts_conversion(test_app):
|
||||
function performs the reverse operation when populating a form to edit tags.
|
||||
"""
|
||||
# Leading, trailing, and internal whitespace should be removed and slugified
|
||||
assert util.convert_to_tag_list_of_dicts('sleep , 6 AM, chainsaw! ') == [
|
||||
assert text.convert_to_tag_list_of_dicts('sleep , 6 AM, chainsaw! ') == [
|
||||
{'name': u'sleep', 'slug': u'sleep'},
|
||||
{'name': u'6 AM', 'slug': u'6-am'},
|
||||
{'name': u'chainsaw!', 'slug': u'chainsaw'}]
|
||||
|
||||
# If the user enters two identical tags, record only one of them
|
||||
assert util.convert_to_tag_list_of_dicts('echo,echo') == [{'name': u'echo',
|
||||
assert text.convert_to_tag_list_of_dicts('echo,echo') == [{'name': u'echo',
|
||||
'slug': u'echo'}]
|
||||
|
||||
# Make sure converting the list of dicts to a string works
|
||||
assert util.media_tags_as_string([{'name': u'yin', 'slug': u'yin'},
|
||||
assert text.media_tags_as_string([{'name': u'yin', 'slug': u'yin'},
|
||||
{'name': u'yang', 'slug': u'yang'}]) == \
|
||||
u'yin,yang'
|
||||
|
||||
# If the tag delimiter is a space then we expect different results
|
||||
mg_globals.app_config['tags_delimiter'] = u' '
|
||||
assert util.convert_to_tag_list_of_dicts('unicorn ceramic nazi') == [
|
||||
assert text.convert_to_tag_list_of_dicts('unicorn ceramic nazi') == [
|
||||
{'name': u'unicorn', 'slug': u'unicorn'},
|
||||
{'name': u'ceramic', 'slug': u'ceramic'},
|
||||
{'name': u'nazi', 'slug': u'nazi'}]
|
||||
|
||||
@@ -16,10 +16,9 @@
|
||||
|
||||
import email
|
||||
|
||||
from mediagoblin import util
|
||||
from mediagoblin.tools import common, url, translate, mail, text, testing
|
||||
|
||||
|
||||
util._activate_testing()
|
||||
testing._activate_testing()
|
||||
|
||||
|
||||
def _import_component_testing_method(silly_string):
|
||||
@@ -28,7 +27,7 @@ def _import_component_testing_method(silly_string):
|
||||
|
||||
|
||||
def test_import_component():
|
||||
imported_func = util.import_component(
|
||||
imported_func = common.import_component(
|
||||
'mediagoblin.tests.test_util:_import_component_testing_method')
|
||||
result = imported_func('hooobaladoobala')
|
||||
expected = u"'hooobaladoobala' is the silliest string I've ever seen"
|
||||
@@ -36,10 +35,10 @@ def test_import_component():
|
||||
|
||||
|
||||
def test_send_email():
|
||||
util._clear_test_inboxes()
|
||||
mail._clear_test_inboxes()
|
||||
|
||||
# send the email
|
||||
util.send_email(
|
||||
mail.send_email(
|
||||
"sender@mediagoblin.example.org",
|
||||
["amanda@example.org", "akila@example.org"],
|
||||
"Testing is so much fun!",
|
||||
@@ -48,8 +47,8 @@ def test_send_email():
|
||||
I hope you like unit tests JUST AS MUCH AS I DO!""")
|
||||
|
||||
# check the main inbox
|
||||
assert len(util.EMAIL_TEST_INBOX) == 1
|
||||
message = util.EMAIL_TEST_INBOX.pop()
|
||||
assert len(mail.EMAIL_TEST_INBOX) == 1
|
||||
message = mail.EMAIL_TEST_INBOX.pop()
|
||||
assert message['From'] == "sender@mediagoblin.example.org"
|
||||
assert message['To'] == "amanda@example.org, akila@example.org"
|
||||
assert message['Subject'] == "Testing is so much fun!"
|
||||
@@ -58,8 +57,8 @@ I hope you like unit tests JUST AS MUCH AS I DO!""")
|
||||
I hope you like unit tests JUST AS MUCH AS I DO!"""
|
||||
|
||||
# Check everything that the FakeMhost.sendmail() method got is correct
|
||||
assert len(util.EMAIL_TEST_MBOX_INBOX) == 1
|
||||
mbox_dict = util.EMAIL_TEST_MBOX_INBOX.pop()
|
||||
assert len(mail.EMAIL_TEST_MBOX_INBOX) == 1
|
||||
mbox_dict = mail.EMAIL_TEST_MBOX_INBOX.pop()
|
||||
assert mbox_dict['from'] == "sender@mediagoblin.example.org"
|
||||
assert mbox_dict['to'] == ["amanda@example.org", "akila@example.org"]
|
||||
mbox_message = email.message_from_string(mbox_dict['message'])
|
||||
@@ -71,43 +70,43 @@ I hope you like unit tests JUST AS MUCH AS I DO!"""
|
||||
I hope you like unit tests JUST AS MUCH AS I DO!"""
|
||||
|
||||
def test_slugify():
|
||||
assert util.slugify('a walk in the park') == 'a-walk-in-the-park'
|
||||
assert util.slugify('A Walk in the Park') == 'a-walk-in-the-park'
|
||||
assert util.slugify('a walk in the park') == 'a-walk-in-the-park'
|
||||
assert util.slugify('a walk in-the-park') == 'a-walk-in-the-park'
|
||||
assert util.slugify('a w@lk in the park?') == 'a-w-lk-in-the-park'
|
||||
assert util.slugify(u'a walk in the par\u0107') == 'a-walk-in-the-parc'
|
||||
assert util.slugify(u'\u00E0\u0042\u00E7\u010F\u00EB\u0066') == 'abcdef'
|
||||
assert url.slugify('a walk in the park') == 'a-walk-in-the-park'
|
||||
assert url.slugify('A Walk in the Park') == 'a-walk-in-the-park'
|
||||
assert url.slugify('a walk in the park') == 'a-walk-in-the-park'
|
||||
assert url.slugify('a walk in-the-park') == 'a-walk-in-the-park'
|
||||
assert url.slugify('a w@lk in the park?') == 'a-w-lk-in-the-park'
|
||||
assert url.slugify(u'a walk in the par\u0107') == 'a-walk-in-the-parc'
|
||||
assert url.slugify(u'\u00E0\u0042\u00E7\u010F\u00EB\u0066') == 'abcdef'
|
||||
|
||||
def test_locale_to_lower_upper():
|
||||
"""
|
||||
Test cc.i18n.util.locale_to_lower_upper()
|
||||
"""
|
||||
assert util.locale_to_lower_upper('en') == 'en'
|
||||
assert util.locale_to_lower_upper('en_US') == 'en_US'
|
||||
assert util.locale_to_lower_upper('en-us') == 'en_US'
|
||||
assert translate.locale_to_lower_upper('en') == 'en'
|
||||
assert translate.locale_to_lower_upper('en_US') == 'en_US'
|
||||
assert translate.locale_to_lower_upper('en-us') == 'en_US'
|
||||
|
||||
# crazy renditions. Useful?
|
||||
assert util.locale_to_lower_upper('en-US') == 'en_US'
|
||||
assert util.locale_to_lower_upper('en_us') == 'en_US'
|
||||
assert translate.locale_to_lower_upper('en-US') == 'en_US'
|
||||
assert translate.locale_to_lower_upper('en_us') == 'en_US'
|
||||
|
||||
|
||||
def test_locale_to_lower_lower():
|
||||
"""
|
||||
Test cc.i18n.util.locale_to_lower_lower()
|
||||
"""
|
||||
assert util.locale_to_lower_lower('en') == 'en'
|
||||
assert util.locale_to_lower_lower('en_US') == 'en-us'
|
||||
assert util.locale_to_lower_lower('en-us') == 'en-us'
|
||||
assert translate.locale_to_lower_lower('en') == 'en'
|
||||
assert translate.locale_to_lower_lower('en_US') == 'en-us'
|
||||
assert translate.locale_to_lower_lower('en-us') == 'en-us'
|
||||
|
||||
# crazy renditions. Useful?
|
||||
assert util.locale_to_lower_lower('en-US') == 'en-us'
|
||||
assert util.locale_to_lower_lower('en_us') == 'en-us'
|
||||
assert translate.locale_to_lower_lower('en-US') == 'en-us'
|
||||
assert translate.locale_to_lower_lower('en_us') == 'en-us'
|
||||
|
||||
|
||||
def test_html_cleaner():
|
||||
# Remove images
|
||||
result = util.clean_html(
|
||||
result = text.clean_html(
|
||||
'<p>Hi everybody! '
|
||||
'<img src="http://example.org/huge-purple-barney.png" /></p>\n'
|
||||
'<p>:)</p>')
|
||||
@@ -118,7 +117,7 @@ def test_html_cleaner():
|
||||
'</div>')
|
||||
|
||||
# Remove evil javascript
|
||||
result = util.clean_html(
|
||||
result = text.clean_html(
|
||||
'<p><a href="javascript:nasty_surprise">innocent link!</a></p>')
|
||||
assert result == (
|
||||
'<p><a href="">innocent link!</a></p>')
|
||||
|
||||
@@ -21,7 +21,7 @@ import os, shutil
|
||||
from paste.deploy import loadapp
|
||||
from webtest import TestApp
|
||||
|
||||
from mediagoblin import util
|
||||
from mediagoblin.tools import testing
|
||||
from mediagoblin.init.config import read_mediagoblin_config
|
||||
from mediagoblin.decorators import _make_safe
|
||||
from mediagoblin.db.open import setup_connection_and_db_from_config
|
||||
@@ -59,7 +59,7 @@ def get_test_app(dump_old_app=True):
|
||||
suicide_if_bad_celery_environ()
|
||||
|
||||
# Make sure we've turned on testing
|
||||
util._activate_testing()
|
||||
testing._activate_testing()
|
||||
|
||||
# Leave this imported as it sets up celery.
|
||||
from mediagoblin.init.celery import from_tests
|
||||
@@ -117,7 +117,7 @@ def setup_fresh_app(func):
|
||||
"""
|
||||
def wrapper(*args, **kwargs):
|
||||
test_app = get_test_app()
|
||||
util.clear_test_buckets()
|
||||
testing.clear_test_buckets()
|
||||
return func(test_app, *args, **kwargs)
|
||||
|
||||
return _make_safe(wrapper, func)
|
||||
|
||||
Reference in New Issue
Block a user