Пример #1
0
class test_user_service(unittest.TestCase):
    def setUp(self):
        self.dbClient = MongoClient()
        self.db = self.dbClient.test_foodbeazt_database
        self.db.user_collection.drop()
        self.service = UserService(self.db)

    def get_model(self, email):
        item = {"name": "test", "username": email, "email": email, "auth_type": "google",
                "registered_ip": "10.0.0.1"}
        return item

    def test_create_user(self):
        no = str(random.randint(1, 10000))
        item = self.get_model("test" + no + "@test.com")
        id = self.service.create(item)
        assert id is not None
        return id

    def test_duplicate_user(self):
        item = self.get_model("*****@*****.**")
        self.service.create(item)
        try:
            self.service.create(item)
            assert False
        except DuplicateUserException as e:
            assert True

    def test_get_user_by_email(self):
        item = self.get_model("*****@*****.**")
        self.service.create(item)
        item = self.service.get_by_email("*****@*****.**")
        assert item is not None
        assert item["email"] == "*****@*****.**"

    def test_get_all_users(self):
        self.test_create_user()
        items = self.service.search()
        assert items is not None
        assert len(items) > 0

    def test_delete_user(self):
        id = self.test_create_user()
        self.service.delete(str(id))

    def test_update_user(self):
        id = self.test_create_user()
        item = self.test_get_by_id(str(id))
        item['name'] = "updated test name"
        item = self.service.update(item)
        assert item is not None
        assert item['name'] == 'updated test name'
        assert 'updated_at' in item

    def test_get_by_id(self, id=None):
        if not id:
            id = self.test_create_user()
        item = self.service.get_by_id(id)
        assert item is not None
        return item
Пример #2
0
def request_loader(request):
    if request and request.path.startswith('/static/'):
        return None
    user_mixin = None
    userService = UserService(mongo.db)
    authHeader = request.headers.get('Authorization', None)
    if authHeader and len(authHeader) > 0:
        if authHeader.startswith('Bearer '):
            user_mixin = login_via_google_token(authHeader.replace('Bearer ', ''))
    if user_mixin is None and session and session.get('identity.id', None) is not None:
        logger.info("[%s] Using session stored user. Id: %s" % (request.path, session['identity.id']))
        userid = str(session['identity.id'])
        user_mixin = getUserMixin(userService.get_by_id(userid))
    if user_mixin:
        login_user(user_mixin)
        identity_changed.send(current_app._get_current_object(), identity=Identity(str(user_mixin.id)))
        logger.info("[%s] User login success: %s %s" % (request.path, user_mixin.id, user_mixin.name))
        return user_mixin
    # logger.info("Anonymous login initiated############### %s" % (request.path))
    return login_anonymous()