Beispiel #1
0
    def test_all(self):
        router = Router()

        router.all('/', endware_1)
        router.all('/', endware_2)

        self.assertIsNotNone(router._endware_path_match('/', 'GET'))
        self.assertIsNotNone(router._endware_path_match('/', 'PUT'))
        self.assertIsNotNone(router._endware_path_match('/', 'POST'))
        self.assertIsNotNone(router._endware_path_match('/', 'DELETE'))

        self.assertIsNone(router._endware_path_match('/abc', 'GET'))

        self.assertEqual(
            router._endware_path_match('/', 'GET')[2],
            endware_1)  # endware_1 matches method in tuple in endware
Beispiel #2
0
    def test_use(self):
        app = App()

        app.use(middleware_1, path='/')

        router = Router()

        router.use('/', middleware_2)

        app.use(router, path='/abc')

        self.assertIsNotNone(app._route_path('/', 'GET')[0])

        self.assertEqual(len(app._route_path('/', 'GET')[0]),
                         2)  # two elements in the middleware
        self.assertIsNone(app._route_path('/',
                                          'GET')[1])  # no items in the endware

        self.assertTrue(middleware_1 in app._route_path(
            '/', 'GET')[0][0])  # middleware_1 in the first tuple in middleware

        self.assertTrue(middleware_2 in app._route_path(
            '/',
            'GET')[0][1])  # middleware_2 in the second tuple in middleware
Beispiel #3
0
    def listening():
        print("App is listening at localhost on port 8080")

    def log_incoming_request(req, res, next):
        print('[%s] %s' % (req.method, req.originalUrl) ) # print the request type and path
        next() # make sure the endware is reached

    def serve_homepage(req, res):
        homepage = open(os.path.join(os.path.dirname(__file__), 'home.html'), 'r').read() # read the file as a string
        homepage = homepage.replace('{{names}}', names_to_html()) # replace {{names}} with a list

        res.status(200).set('Content-Type', 'text/html').send( homepage ) # send it back as html

    def post_name(req, res):
        names.append(req.body['name']) # add the name to the list
        serve_homepage(req, res) # serve the homepage the same

    app = App()
    router = Router()

    # mount the endware
    router.get('/', serve_homepage)
    router.post('/', post_name)

    # mount the middleware
    app.use(router)
    app.use(log_incoming_request)

    # start the server
    app.listen(port=8080, callback=listening)
Beispiel #4
0
    def test_put(self):
        router = Router()

        router.put('/', endware_1)
        router.put('/abc', endware_2)
        router.put('/abc/:val', endware_1)

        self.assertIsNotNone(router._endware_path_match('/', 'PUT'))
        self.assertIsNone(router._endware_path_match('/', 'POST'))
        self.assertIsNone(router._endware_path_match('/', 'GET'))
        self.assertIsNone(router._endware_path_match('/', 'DELETE'))

        self.assertIsNotNone(router._endware_path_match('/abc', 'PUT'))
        self.assertIsNotNone(router._endware_path_match('/abc/123', 'PUT'))

        self.assertEqual(router._endware_path_match('/', 'PUT')[2], endware_1)
        self.assertEqual(
            router._endware_path_match('/abc', 'PUT')[2], endware_2)
        self.assertEqual(
            router._endware_path_match('/abc/123', 'PUT')[2], endware_1)
        self.assertEqual(
            router._endware_path_match('/abc/123', 'PUT')[0].params['val'],
            '123')
        self.assertEqual(
            router._endware_path_match('/abc/123?val=123',
                                       'PUT')[0].query['val'], '123')
Beispiel #5
0
    def test_init(self):
        router = Router()

        self.assertIsNotNone(router)
Beispiel #6
0
    def test_use(self):
        router = Router()

        router.use('/abc', middleware_1)
        router.use('/abc/123', middleware_2)

        self.assertIsNotNone(router._middleware_path_match('/abc'))
        self.assertIsNotNone(router._middleware_path_match('/abc/123'))
        self.assertIsNotNone(router._middleware_path_match('/abc/123/def'))

        self.assertEqual(len(router._middleware_path_match('/abc')), 1)
        self.assertEqual(len(router._middleware_path_match('/abc/123')), 2)
        self.assertEqual(len(router._middleware_path_match('/abc/123/def')), 2)

        self.assertEqual(
            router._middleware_path_match('/abc')[0][1], middleware_1)
        self.assertEqual(
            router._middleware_path_match('/abc/123')[0][1], middleware_1)
        self.assertEqual(
            router._middleware_path_match('/abc/123')[1][1], middleware_2)

        self.assertEqual(
            router._middleware_path_match('/abc?val=123')[0][0].query['val'],
            '123')