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
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()