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()
Esempio n. 2
0
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()