def get(self, guestbook_name='stremor'): # SELECT * FROM is a given when used in Model context greetings = Greeting.gql("WHERE ANCESTOR IS :1 " "ORDER BY date DESC LIMIT 10", guestbook_key(guestbook_name)) user = users.get_current_user() user_nick = '' if user: url = users.create_logout_url(self.request.uri) url_linktext = 'Logout' user_nick = user.nickname() else: url = users.create_login_url(self.request.uri) url_linktext = 'Login' template_values = { 'guestbook_name': guestbook_name, 'greetings': greetings, 'user_nick': user_nick, 'url_linktext': url_linktext, 'url': url } template = jinja_environment.get_template('index.html') self.response.headers['Content-Type'] = 'text/html' self.response.out.write(template.render(template_values))
def test_post_greeting(self): response = self.testapp.post('/sign', {'guestbook_name': 'test', 'content': 'hi'}) eq_(response.status, '302 Moved Temporarily') greetings = Greeting.gql("WHERE ANCESTOR IS :1 " "ORDER BY date DESC LIMIT 10", guestbook_key('test')) ok_(greetings.count() == 1, 'There should be 1 Greeting object')
def test_loggedin_post_greeting(self): os.environ['USER_EMAIL'] = '*****@*****.**' os.environ['USER_ID'] = '123' os.environ['AUTH_DOMAIN'] = 'testbed' self.testapp.post('/sign', {'guestbook_name': 'test', 'content': 'hi'}) greetings = Greeting.gql("WHERE ANCESTOR IS :1 " "ORDER BY date DESC LIMIT 10", guestbook_key('test')) greeting = greetings.fetch(1)[0] # latest eq_(greeting.content, 'hi', 'greeting content should be \'hi\'') eq_(greeting.author, '*****@*****.**', 'author content should be \'[email protected]\'')
def get(self): guestbook = self.request.get('guestbook') greetings = Greeting.gql("WHERE ANCESTOR IS :1 " "ORDER BY date DESC LIMIT 10", guestbook_key(guestbook)) # this ought to be a lot smarter d = [] for greeting in greetings.fetch(10): d.append({ 'content': greeting.content, 'author': greeting.author, 'datetime': datetime.strftime(greeting.date, DATE_FMT) }) self.response.headers['Content-Type'] = 'application/json' self.response.out.write(json.dumps(d))