import unittest
from tipfy import RequestHandler, Rule, Tipfy
from google.appengine.api import apiproxy_stub_map, datastore_file_stub
from google.appengine.ext import db
import urls
class Comment(db.Model):
body = db.StringProperty()
class TestHandler(unittest.TestCase):
def setUp(self):
"""
We use this to clear the datastore. Thanks to Gaetestbed for
his example here:
https://github.com/jgeewax/gaetestbed/blob/master/gaetestbed/datastore.py
"""
datastore_stub = apiproxy_stub_map.apiproxy._APIProxyStubMap__stub_map['datastore_v3']
datastore_stub.Clear()
self.app = Tipfy(rules=urls.get_rules(None))
self.client = self.app.get_test_client()
def test_hello_world_handler(self):
response = self.client.get('/', follow_redirects=True)
self.assertEquals(response.data, "Hello BLAH")
def test_pretty_hello_world_handler(self):
response = self.client.get('/pretty')
self.assertTrue("Hello, World!" in response.data)
def test_save_comment(self):
class DatastorePostHandler(RequestHandler):
def post(self):
body = self.request.form.get("body")
comment = Comment()
comment.body = body
comment.save()
return "OK"
rules = [
Rule('/ds', endpoint='ds', handler=DatastorePostHandler),
]
app = Tipfy(rules=rules)
client = app.get_test_client()
response = client.post('/ds')
self.assertEquals(response.data, "OK")
comments = Comment.all().fetch(100)
self.assertEquals(1, len(comments))