コード例 #1
0
ファイル: test_nanoweb.py プロジェクト: ericmoritz/nanoweb
    def test_good_json(self):
        expected = {"title": "test"}
        body = json.dumps(expected)

        request = Request.blank("/",
                                method="PUT",
                                content_type="application/json",
                                body=body)

        result = nanoweb.decode_body(request)
        
        self.assertEqual(result, expected)
コード例 #2
0
ファイル: tvservice.py プロジェクト: ericmoritz/tvservice
def show(request):
    nanoweb.allowed(request, ["GET", "PUT", "DELETE"])
    content_type = nanoweb.agent_accepts(request, ["text/plain",
                                                   "application/json"])
    # Set up the encoders
    encoders = {"text/plain": lambda d: d['title']}
    encoders.update(nanoweb.encoders)

    # Set up the decoders
    decoders = {"text/plain": lambda s: {"title": s}}
    decoders.update(nanoweb.decoders)

    url = request.environ['routes.url']
    slug = request.urlvars['slug']

    if request.method == "PUT":
        data = nanoweb.decode_body(request, decoders=decoders)

        with shows_db() as shows:
            shows[slug] = data['title']

        body = nanoweb.encode_body(content_type, data,
                                   encoders=encoders)
        return Response(body, content_type=content_type)

    elif request.method == "DELETE":
        try:
            with shows_db() as shows:
                del shows[slug]
            return HTTPNoContent()
        except KeyError:
            return HTTPNotFound()

    elif request.method == "GET":
        try:
            with shows_db() as shows:
                name = shows[slug]
        except KeyError:
            return HTTPNotFound()

        data = {"title": name, "slug": slug}
        body = nanoweb.encode_body(content_type, data,
                                   encoders=encoders)
        return Response(name, content_type="text/plain")
コード例 #3
0
ファイル: test_nanoweb.py プロジェクト: ericmoritz/nanoweb
    def test_valid_schema(self):
        json_schema = {"type": "object",
                       "properties": {
                "title": {"type": "string"},
                "pub_date": {"type": "string", 
                             "format": "date-time"}
                }}

        expected = {"title": "Test",
                    "pub_date": "2011-07-13T00:00:00Z"}
        body = json.dumps(expected)

        request = Request.blank("/",
                                method="PUT",
                                content_type="application/json",
                                body=body)

        result = nanoweb.decode_body(request,
                                  json_schema=json_schema)

        self.assertEqual(result, expected)