Ejemplo n.º 1
0
    def test_facebook_signup_success(self, mock_get_user_by_email,
                                     mock_val_fb_token, mock_user_model):
        data = {
            'first_name': 'ebby',
            'last_name': 'anjorin',
            'email': '*****@*****.**',
            'access_token': 'some_token'
        }
        mock_get_user_by_email.return_value = None
        mock_val_fb_token.return_value = True
        created_user = model.User(first_name=data['first_name'],
                                  last_name=data['last_name'],
                                  email=data['email'])
        mock_user_model.create_user.return_value = (True, created_user)

        handler = UserHandler()
        resp = handler._facebook_signup(data)

        self.assertEqual(resp, (True, created_user))
        mock_val_fb_token.assert_called_once_with(data['access_token'])
        #mock_get_user_by_email.assert_called_once_with(data['email'])
        mock_user_model.create_user.assert_called_once_with(
            data['email'], ['email'],
            email=data['email'],
            first_name=data['first_name'],
            last_name=data['last_name'],
            verified=True)
Ejemplo n.º 2
0
 def authenticate_user(self, db, username: str, password: str):
     user = UserHandler.get_user(db, username)
     if not user:
         return False
     if not self.verify_password(password, user.hashed_password):
         return False
     return user
Ejemplo n.º 3
0
    def test_facebook_signup_invalid_data(self, mock_get_user_by_email,
                                          mock_val_fb_token, mock_user_model):
        data = {
            'first_name': 'ebby',
            'last_name': 'anjorin',
            'email': '*****@*****.**',
            'access_token': 'some_token'
        }
        mock_get_user_by_email.return_value = None
        mock_val_fb_token.return_value = False

        handler = UserHandler()
        resp = handler._facebook_signup(data)

        self.assertEqual(resp, (False, 'Failed to verify access token'))
        mock_val_fb_token.assert_called_once_with(data['access_token'])
        #mock_get_user_by_email.assert_called_once_with(data['email'])
        self.assertFalse(mock_user_model.create_user.called)
Ejemplo n.º 4
0
 def delete(self, user_id) -> ApiResponse:
     UserHandler(user_id).delete()
     return ApiResponse().ok()
Ejemplo n.º 5
0
 def put(self, user_id) -> ApiResponse:
     kwargs = self.parsed_args
     user = UserHandler(user_id).update(**kwargs)
     return ApiResponse().ok(user)
Ejemplo n.º 6
0
 def get(self, user_id) -> ApiResponse:
     user = UserHandler(user_id).get_user()
     return ApiResponse().ok(user)
Ejemplo n.º 7
0
 def post(self) -> ApiResponse:
     # 新增一个用户
     kwargs = self.parsed_args
     user = UserHandler.create(**kwargs)
     return ApiResponse().ok(user)
Ejemplo n.º 8
0
 def get(self) -> ApiResponse:
     # 获取所有的用户
     users = UserHandler.get_users()
     return ApiResponse().ok(users)
Ejemplo n.º 9
0
@app.route('/')
def index():
    return 'Memer API'


while True:
    try:
        repository = connect_to_database()
        print("App is connected")
        break
    except Exception as e:
        print(e)
        time.sleep(5)

user_service = UserService(repository)
user_handler = UserHandler(app, user_service, repository)
user_handler.register_routes()

meme_service = MemeService(repository)
meme_handler = MemeHandler(app, meme_service, repository)
meme_handler.register_routes()

# Remove expired token periodically
print('setting up scheduler', file=sys.stderr)
scheduler = BackgroundScheduler()
scheduler.add_job(func=lambda: repository.delete_old_token(),
                  trigger='interval',
                  seconds=5)
scheduler.start()
atexit.register(lambda: scheduler.shutdown())