def setUp(self): self.app = Flask(__name__) self.app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite://' db.init_app(self.app) self.ctx = self.app.test_request_context() self.ctx.push() # These settings are not required for merge user tests self.app.config['LASTUSER_SERVER'] = 'http://lastuser.testing' self.app.config['LASTUSER_CLIENT_ID'] = 'client_id' self.app.config['LASTUSER_CLIENT_SECRET'] = 'client_secret' self.lastuser = Lastuser(self.app) self.lastuser.init_usermanager(UserManager(db, User, Team)) db.create_all() # The users_team table doesn't exist until UserManager is inited self.create_test_data()
from flask.ext.assets import Bundle from flask.ext.rq import RQ from flask.ext.mail import Mail from flask.ext.redis import Redis from flask.ext.lastuser import Lastuser from flask.ext.lastuser.sqlalchemy import UserManager from baseframe import baseframe, assets, Version import coaster.app from ._version import __version__ # First, make an app and config it app = Flask(__name__, instance_relative_config=True, static_folder=None) app.static_folder = 'static' mail = Mail() lastuser = Lastuser() redis_store = Redis() # Second, setup assets version = Version(__version__) assets['hasjob.js'][version] = 'js/app.js' assets['hasjob.css'][version] = 'css/app.css' # Third, after config, import the models and views from . import models, views # NOQA from .models import db # NOQA # Configure the app def init_for(env):
class TestMergeUserData(unittest.TestCase): def setUp(self): self.app = Flask(__name__) self.app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite://' db.init_app(self.app) self.ctx = self.app.test_request_context() self.ctx.push() # These settings are not required for merge user tests self.app.config['LASTUSER_SERVER'] = 'http://lastuser.testing' self.app.config['LASTUSER_CLIENT_ID'] = 'client_id' self.app.config['LASTUSER_CLIENT_SECRET'] = 'client_secret' self.lastuser = Lastuser(self.app) self.lastuser.init_usermanager(UserManager(db, User, Team)) db.create_all() # The users_team table doesn't exist until UserManager is inited self.create_test_data() def tearDown(self): db.session.rollback() db.drop_all() self.ctx.pop() def create_test_data(self): user1 = User(userid=u"1234567890123456789012", username=u"user1", fullname=u"User 1", email=u'*****@*****.**', userinfo={ u'timezone': u'Asia/Kolkata', u'organizations': { u'member': [ { u'userid': u'qazwsxedcrfvtgbyhnujmi', u'name': u'org1', u'title': u'Organization 1', }, ], u'owner': [ { u'userid': u'qazwsxedcrfvtgbyhnujmi', u'name': u'org1', u'title': u'Organization 1', }, ] } }) user2 = User(userid=u"0987654321098765432109", username=u"user2", fullname=u"User 2", email=u'*****@*****.**', userinfo={ u'timezone': u'Asia/Kolkata', u'organizations': { u'member': [ { u'userid': u'qwertyuiopasdfghjklzxc', u'name': u'org2', u'title': u'Organization 2', }, { u'userid': u'mnbvcxzlkjhgfdsapoiuyt', u'name': u'org3', u'title': u'Organization 3', }, ], u'owner': [ { u'userid': u'qwertyuiopasdfghjklzxc', u'name': u'org2', u'title': u'Organization 2', }, { 'userid': 'mnbvcxzlkjhgfdsapoiuyt', 'name': 'org3', 'title': 'Organization 3', }, ] } }) user3 = User(userid=u"1234567890987654321234", username=u"user3", fullname=u"User 3", email=u'*****@*****.**', userinfo={ u'timezone': 'Asia/Kolkata', u'organizations': { u'member': [ { u'userid': u'mnbvcxzlkjhgfdsapoiuyt', u'name': u'org3', u'title': u'Organization 3', }, { u'userid': u'qazwsxedcrfvtgbyhnujmi', u'name': u'org1', u'title': u'Organization 1', }, ], u'owner': [ { u'userid': u'mnbvcxzlkjhgfdsapoiuyt', u'name': u'org3', u'title': u'Organization 3', }, { u'userid': u'qazwsxedcrfvtgbyhnujmi', u'name': u'org1', u'title': u'Organization 1', }, ] } }) team1 = Team(userid=u"1324354657687980089786", orgid=u"qazwsxedcrfvtgbyhnujmi", title=u"Team 1", users=[user1, user2]) team2 = Team(userid=u"0897867564534231243546", orgid=u"qwertyuiopasdfghjklzxc", title=u"Team 2", users=[user2, user3]) team3 = Team(userid=u"1324354657687980132435", orgid=u"mnbvcxzlkjhgfdsapoiuyt", title=u"Team 3", users=[user3, user1]) db.session.add_all([user1, user2, user3, team1, team2, team3]) db.session.flush() # Create six profiles (3 users + 3 orgs) Profile.update_from_user(user1, db.session) Profile.update_from_user(user2, db.session) Profile.update_from_user(user3, db.session) db.session.commit()