def test_session(self): self.session_id = uuid.uuid4() def genId(req): return self.session_id.hex router = Router() sessionManager = BaseSessionManager(genId) router.pipe()(sessionManager) @router.get() def index(req, res): if 'alice' in sessionManager.session: res.set_data(sessionManager.session['alice']) else: sessionManager.session['alice'] = 'bob' res.set_data('Index') return res c = Client(router.build(), Response) res = c.get('/') self.assertEqual(res.data, b'Index') res = c.get('/') self.assertEqual(res.data, b'bob') c = Client(router.build(), Response) self.session_id = uuid.uuid4() res = c.get('/') self.assertEqual(res.data, b'Index')
def test_static_file(self): router = Router() router.pipe('/data')(StaticMiddleware(dir=os.getcwd())) @router.get() def index(req, res): res.set_data('Index') return res c = Client(router.build(), Response) res = c.get('/data/text.txt') self.assertEqual(res.data, b'Test data')
def test_compression(self): router = Router() router.pipe()(CompressionMiddleware()) @router.get() def index(req, res): res.set_data('Index') return res c = Client(router.build(), Response) res = c.get('/', headers={'Accept-Encoding': 'gzip'}) self.assertEqual(res.headers.get('Content-Encoding'), 'gzip')
def get_user(user_id): user = User() user.id = user_id user.username = '******' user.password = '******' return user @router.pipe() def handle(next, req, res): try: return next(req, res) except FileNotFoundError: res.status_code = 404 return res router.pipe()(sessionManager) @router.get('/signin') def signin(req:Request, res: Response): if sessionManager.user is None: user = User() user.id = 1 user.username = '******' user.password = '******' sessionManager.signin_user(user) res.status_code = 302 res.headers.add('Location', '/') return res