File: bottle_test.py

package info (click to toggle)
sphinxcontrib-httpdomain 1.8.1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 352 kB
  • sloc: python: 1,430; makefile: 243
file content (80 lines) | stat: -rw-r--r-- 1,933 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
import unittest

from sphinxcontrib.autohttp.bottle import get_routes

from bottle import Bottle, Route


def create_app():
    app = Bottle()

    @app.route("/bottle")
    def bottle_bottle():
        return 12

    @app.post("/bottle/post/")
    def bottle_bottle_post():
        return 23

    return app


def create_app_mount():
    app = create_app()
    another_app = Bottle()

    @another_app.route("/mount/")
    def another_mount():
        pass

    app.mount("/mount/", another_app)
    return app


def create_app_filter():
    app = Bottle()

    @app.route("/hello/<name>")
    def bottle_hello_name(name):
        return name

    return app


class BottleTest(unittest.TestCase):

    def test_get_routes(self):
        routes = list(get_routes(create_app()))
        # order is not deterministic:
        routes = sorted(routes, key=lambda x: x[1])

        self.assertEqual(len(routes), 2)

        self.assertEqual(len(routes[0]), 3)
        self.assertEqual(routes[0][0], "GET")
        self.assertEqual(routes[0][1], "/bottle")
        self.assertEqual(routes[0][2].callback(), 12)
        self.assertEqual(type(routes[0][2]), Route)

        self.assertEqual(len(routes[1]), 3)
        self.assertEqual(routes[1][0], "POST")
        self.assertEqual(routes[1][1], "/bottle/post/")
        self.assertEqual(routes[1][2].callback(), 23)
        self.assertEqual(type(routes[1][2]), Route)

    def test_get_routes_mount(self):
        routes = list(get_routes(create_app_mount()))
        routes = sorted(routes, key=lambda x: x[1])

        self.assertEqual(len(routes), 3)

        # not sure about this:
        self.assertEqual(routes[2][1], "/mount/(:re:.*)")

    def test_get_routes_filter(self):
        routes = list(get_routes(create_app_filter()))
        routes = sorted(routes, key=lambda x: x[1])

        self.assertEqual(len(routes), 1)

        self.assertEqual(routes[0][1], "/hello/(name)")