Change codebase to query or create correct User model

The code base had many references to User.username and other
specific to LocalUser attributes as that was the way it use to exist.
This updates those to query on the generic User model but filtering
by attributes on the LocalUser.
This commit is contained in:
Jessica Tallon
2015-07-17 17:51:51 +02:00
parent 283e6d8b9f
commit d88fcb03e2
33 changed files with 156 additions and 125 deletions

View File

@@ -16,7 +16,7 @@
import pytest
from mediagoblin.db.models import User
from mediagoblin.db.models import User, LocalUser
from mediagoblin.tests.tools import fixture_add_user
from mediagoblin.tools import template
@@ -44,7 +44,7 @@ class MGClientTestCase:
fixture_add_user(username, **options)
def user(self, username):
return User.query.filter(User.username == username).first()
return User.query.filter(LocalUser.username==username).first()
def _do_request(self, url, *context_keys, **kwargs):
template.clear_test_template_context()

View File

@@ -23,7 +23,7 @@ import six
import six.moves.urllib.parse as urlparse
from mediagoblin import mg_globals
from mediagoblin.db.models import User
from mediagoblin.db.models import User, LocalUser
from mediagoblin.tests.tools import get_app, fixture_add_user
from mediagoblin.tools import template, mail
from mediagoblin.auth import tools as auth_tools
@@ -98,8 +98,9 @@ def test_register_views(test_app):
assert 'mediagoblin/user_pages/user_nonactive.html' in template.TEMPLATE_TEST_CONTEXT
## Make sure user is in place
new_user = mg_globals.database.User.query.filter_by(
username=u'angrygirl').first()
new_user = mg_globals.database.User.query.filter(
LocalUser.usrname==u'angrygirl'
).first()
assert new_user
## Make sure that the proper privileges are granted on registration
@@ -137,8 +138,9 @@ def test_register_views(test_app):
# assert context['verification_successful'] == True
# TODO: Would be good to test messages here when we can do so...
new_user = mg_globals.database.User.query.filter_by(
username=u'angrygirl').first()
new_user = mg_globals.database.User.query.filter(
LocalUser.username==u'angrygirl'
).first()
assert new_user
## Verify the email activation works
@@ -149,8 +151,9 @@ def test_register_views(test_app):
'mediagoblin/user_pages/user.html']
# assert context['verification_successful'] == True
# TODO: Would be good to test messages here when we can do so...
new_user = mg_globals.database.User.query.filter_by(
username=u'angrygirl').first()
new_user = mg_globals.database.User.query.filter(
LocalUser.username==u'angrygirl'
).first()
assert new_user
# Uniqueness checks

View File

@@ -16,7 +16,7 @@
import six.moves.urllib.parse as urlparse
from mediagoblin.db.models import User
from mediagoblin.db.models import User, LocalUser
from mediagoblin.plugins.basic_auth import tools as auth_tools
from mediagoblin.tests.tools import fixture_add_user
from mediagoblin.tools import template
@@ -88,7 +88,7 @@ def test_change_password(test_app):
assert urlparse.urlsplit(res.location)[2] == '/edit/account/'
# test_user has to be fetched again in order to have the current values
test_user = User.query.filter_by(username=u'chris').first()
test_user = User.query.filter(LocalUser.username==u'chris').first()
assert auth_tools.bcrypt_check_password('123456', test_user.pw_hash)
# test that the password cannot be changed if the given
@@ -100,5 +100,5 @@ def test_change_password(test_app):
'new_password': '098765',
})
test_user = User.query.filter_by(username=u'chris').first()
test_user = User.query.filter(LocalUser.username==u'chris').first()
assert not auth_tools.bcrypt_check_password('098765', test_user.pw_hash)

View File

@@ -19,7 +19,7 @@ import six.moves.urllib.parse as urlparse
import pytest
from mediagoblin import mg_globals
from mediagoblin.db.models import User, MediaEntry
from mediagoblin.db.models import User, LocalUser, MediaEntry
from mediagoblin.tests.tools import fixture_add_user, fixture_media_entry
from mediagoblin import auth
from mediagoblin.tools import template, mail
@@ -44,12 +44,12 @@ class TestUserEdit(object):
self.login(test_app)
# Make sure user exists
assert User.query.filter_by(username=u'chris').first()
assert User.query.filter(LocalUser.username=u'chris').first()
res = test_app.post('/edit/account/delete/', {'confirmed': 'y'})
# Make sure user has been deleted
assert User.query.filter_by(username=u'chris').first() == None
assert User.query.filter(LocalUser.username==u'chris').first() == None
#TODO: make sure all corresponding items comments etc have been
# deleted too. Perhaps in submission test?
@@ -79,7 +79,7 @@ class TestUserEdit(object):
'bio': u'I love toast!',
'url': u'http://dustycloud.org/'})
test_user = User.query.filter_by(username=u'chris').first()
test_user = User.query.filter(LocalUser.username==u'chris').first()
assert test_user.bio == u'I love toast!'
assert test_user.url == u'http://dustycloud.org/'
@@ -159,9 +159,10 @@ class TestUserEdit(object):
assert urlparse.urlsplit(res.location)[2] == '/'
# Email shouldn't be saved
email_in_db = mg_globals.database.User.query.filter_by(
email='new@example.com').first()
email = User.query.filter_by(username='chris').first().email
email_in_db = mg_globals.database.User.query.filter(
LocalUser.email=='new@example.com'
).first()
email = User.query.filter(LocalUser.username=='chris').first().email
assert email_in_db is None
assert email == 'chris@example.com'
@@ -172,7 +173,7 @@ class TestUserEdit(object):
res.follow()
# New email saved?
email = User.query.filter_by(username='chris').first().email
email = User.query.filter(LocalUser.username=='chris').first().email
assert email == 'new@example.com'
# test changing the url inproperly
@@ -181,8 +182,10 @@ class TestMetaDataEdit:
def setup(self, test_app):
# set up new user
self.user_password = u'toast'
self.user = fixture_add_user(password = self.user_password,
privileges=[u'active',u'admin'])
self.user = fixture_add_user(
password = self.user_password,
privileges=[u'active',u'admin']
)
self.test_app = test_app
def login(self, test_app):

View File

@@ -26,6 +26,7 @@ import six.moves.urllib.parse as urlparse
from mediagoblin import mg_globals
from mediagoblin.db.base import Session
from mediagoblin.db.models import LocalUser
from mediagoblin.tests.tools import get_app
from mediagoblin.tools import template
@@ -114,8 +115,9 @@ def test_ldap_plugin(ldap_plugin_app):
ldap_plugin_app.get('/auth/logout/')
# Get user and detach from session
test_user = mg_globals.database.User.query.filter_by(
username=u'chris').first()
test_user = mg_globals.database.User.query.filter(
LocalUser.username==u'chris'
).first()
Session.expunge(test_user)
# Log back in

View File

@@ -20,8 +20,8 @@
from __future__ import print_function
from mediagoblin.db.base import Session
from mediagoblin.db.models import MediaEntry, User, Privilege, Activity, \
Generator
from mediagoblin.db.models import MediaEntry, User, LocalUser, Privilege, \
Activity, Generator
from mediagoblin.tests import MGClientTestCase
from mediagoblin.tests.tools import fixture_add_user, fixture_media_entry, \
@@ -169,9 +169,9 @@ class TestUserHasPrivilege:
fixture_add_user(u'aeva',
privileges=[u'moderator',u'active'])
self.natalie_user = User.query.filter(
User.username==u'natalie').first()
LocalUser.username==u'natalie').first()
self.aeva_user = User.query.filter(
User.username==u'aeva').first()
LocalUser.username==u'aeva').first()
def test_privilege_added_correctly(self, test_app):
self._setup()

View File

@@ -18,7 +18,7 @@ import pytest
from mediagoblin.tests.tools import (fixture_add_user,
fixture_add_comment_report, fixture_add_comment)
from mediagoblin.db.models import User, CommentReport, MediaComment, UserBan
from mediagoblin.db.models import User, LocalUser, CommentReport, MediaComment, UserBan
from mediagoblin.tools import template, mail
from webtest import AppError
@@ -47,9 +47,9 @@ class TestModerationViews:
self.query_for_users()
def query_for_users(self):
self.admin_user = User.query.filter(User.username==u'admin').first()
self.mod_user = User.query.filter(User.username==u'moderator').first()
self.user = User.query.filter(User.username==u'regular').first()
self.admin_user = User.query.filter(LocalUser.username==u'admin').first()
self.mod_user = User.query.filter(LocalUser.username==u'moderator').first()
self.user = User.query.filter(LocalUser.username==u'regular').first()
def do_post(self, data, *context_keys, **kwargs):
url = kwargs.pop('url', '/submit/')

View File

@@ -28,7 +28,7 @@ openid_consumer = pytest.importorskip(
from mediagoblin import mg_globals
from mediagoblin.db.base import Session
from mediagoblin.db.models import User
from mediagoblin.db.models import User, LocalUser
from mediagoblin.plugins.openid.models import OpenIDUserURL
from mediagoblin.tests.tools import get_app, fixture_add_user
from mediagoblin.tools import template
@@ -192,8 +192,9 @@ class TestOpenIDPlugin(object):
openid_plugin_app.get('/auth/logout')
# Get user and detach from session
test_user = mg_globals.database.User.query.filter_by(
username=u'chris').first()
test_user = mg_globals.database.User.query.filter(
LocalUser.username==u'chris'
).first()
Session.expunge(test_user)
# Log back in

View File

@@ -27,7 +27,7 @@ import six.moves.urllib.parse as urlparse
pytest.importorskip("requests")
from mediagoblin import mg_globals
from mediagoblin.db.base import Session
from mediagoblin.db.base import Session, LocalUser
from mediagoblin.db.models import Privilege
from mediagoblin.tests.tools import get_app
from mediagoblin.tools import template
@@ -117,14 +117,16 @@ class TestPersonaPlugin(object):
persona_plugin_app.get('/auth/logout/')
# Get user and detach from session
test_user = mg_globals.database.User.query.filter_by(
username=u'chris').first()
test_user = mg_globals.database.User.query.filter(
LocalUser.username==u'chris'
).first()
active_privilege = Privilege.query.filter(
Privilege.privilege_name==u'active').first()
test_user.all_privileges.append(active_privilege)
test_user.save()
test_user = mg_globals.database.User.query.filter_by(
username=u'chris').first()
test_user = mg_globals.database.User.query.filter(
LocalUser.username==u'chris'
).first()
Session.expunge(test_user)
# Add another user for _test_edit_persona

View File

@@ -21,7 +21,7 @@ from webtest import AppError
from mediagoblin.tests.tools import fixture_add_user, fixture_media_entry
from mediagoblin.db.models import User, UserBan
from mediagoblin.db.models import User, LocalUser, UserBan
from mediagoblin.tools import template
from .resources import GOOD_JPG
@@ -64,9 +64,9 @@ class TestPrivilegeFunctionality:
return response, context_data
def query_for_users(self):
self.admin_user = User.query.filter(User.username==u'alex').first()
self.mod_user = User.query.filter(User.username==u'meow').first()
self.user = User.query.filter(User.username==u'natalie').first()
self.admin_user = User.query.filter(LocalUser.username==u'alex').first()
self.mod_user = User.query.filter(LocalUser.username==u'meow').first()
self.user = User.query.filter(LocalUser.username==u'natalie').first()
def testUserBanned(self):
self.login(u'natalie')

View File

@@ -20,7 +20,7 @@ import six
from mediagoblin.tools import template
from mediagoblin.tests.tools import (fixture_add_user, fixture_media_entry,
fixture_add_comment, fixture_add_comment_report)
from mediagoblin.db.models import (MediaReport, CommentReport, User,
from mediagoblin.db.models import (MediaReport, CommentReport, User, LocalUser
MediaComment)
@@ -56,8 +56,8 @@ class TestReportFiling:
return response, context_data
def query_for_users(self):
return (User.query.filter(User.username==u'allie').first(),
User.query.filter(User.username==u'natalie').first())
return (User.query.filter(LocalUser.username==u'allie').first(),
User.query.filter(LocalUser.username==u'natalie').first())
def testMediaReports(self):
self.login(u'allie')

View File

@@ -35,7 +35,7 @@ Gst.init(None)
from mediagoblin.tests.tools import fixture_add_user
from .media_tools import create_av
from mediagoblin import mg_globals
from mediagoblin.db.models import MediaEntry, User
from mediagoblin.db.models import MediaEntry, User, LocalUser
from mediagoblin.db.base import Session
from mediagoblin.tools import template
from mediagoblin.media_types.image import ImageMediaManager
@@ -72,7 +72,7 @@ class TestSubmission:
#### totally stupid.
#### Also if we found a way to make this run it should be a
#### property.
return User.query.filter(User.username==u'chris').first()
return User.query.filter(LocalUser.username==u'chris').first()
def login(self):
self.test_app.post(

View File

@@ -25,7 +25,7 @@ from paste.deploy import loadapp
from webtest import TestApp
from mediagoblin import mg_globals
from mediagoblin.db.models import User, MediaEntry, Collection, MediaComment, \
from mediagoblin.db.models import User, LocalUser, MediaEntry, Collection, MediaComment, \
CommentSubscription, CommentNotification, Privilege, CommentReport, Client, \
RequestToken, AccessToken, Activity, Generator
from mediagoblin.tools import testing
@@ -176,9 +176,9 @@ def assert_db_meets_expected(db, expected):
def fixture_add_user(username=u'chris', password=u'toast',
privileges=[], wants_comment_notification=True):
# Reuse existing user or create a new one
test_user = User.query.filter_by(username=username).first()
test_user = User.query.filter(LocalUser.username==username).first()
if test_user is None:
test_user = User()
test_user = LocalUser()
test_user.username = username
test_user.email = username + u'@example.com'
if password is not None:
@@ -191,7 +191,7 @@ def fixture_add_user(username=u'chris', password=u'toast',
test_user.save()
# Reload
test_user = User.query.filter_by(username=username).first()
test_user = User.query.filter(LocalUser.username==username).first()
# ... and detach from session:
Session.expunge(test_user)