1#!/usr/bin/env python
2
3from json import loads
4
5from circuits.web import JSONController, Sessions
6
7from .helpers import urlopen, build_opener, HTTPCookieProcessor
8from .helpers import CookieJar
9
10
11class Root(JSONController):
12
13    def index(self):
14        return {"success": True, "message": "Hello World!"}
15
16    def test_sessions(self, name=None):
17        if name:
18            self.session["name"] = name
19        else:
20            name = self.session.get("name", "World!")
21
22        return {"success": True, "message": "Hello %s" % name}
23
24
25def test(webapp):
26    f = urlopen(webapp.server.http.base)
27    data = f.read()
28    data = data.decode("utf-8")
29    d = loads(data)
30    assert d["success"]
31    assert d["message"] == "Hello World!"
32
33
34def test_sessions(webapp):
35    Sessions().register(webapp)
36
37    cj = CookieJar()
38    opener = build_opener(HTTPCookieProcessor(cj))
39
40    f = opener.open("%s/test_sessions" % webapp.server.http.base)
41    data = f.read()
42    data = data.decode("utf-8")
43    d = loads(data)
44    assert d["success"]
45    assert d["message"] == "Hello World!"
46
47    f = opener.open("%s/test_sessions/test" % webapp.server.http.base)
48    data = f.read()
49    data = data.decode("utf-8")
50    d = loads(data)
51    assert d["success"]
52    assert d["message"] == "Hello test"
53
54    f = opener.open("%s/test_sessions" % webapp.server.http.base)
55    data = f.read()
56    data = data.decode("utf-8")
57    d = loads(data)
58    assert d["success"]
59    assert d["message"] == "Hello test"
60