def post(self):
     '''
     Handles blog entry creation
     '''
     self.response.headers['Content-Type'] = 'text/html'
     isValid = True
     values = {}
     subject = self.request.get('subject')
     if not subject:
         values['subject_error'] = 'Blog subject is required'
         isValid = False
     else:
         logging.info("Creating blog entry with subject: %s" % str(subject))
     content = self.request.get('content')
     if not content:
         values['content_error'] = 'Blog content is required'
         isValid = False
     else:
         logging.info("Creating blog entry with content: %s" % str(content))
     path = None
     if not isValid:
         values['subject'] = subject
         values['content'] = content
         path = os.path.join(os.path.dirname(__file__), '../templates/create_blog_entry.html')
         self.response.out.write(template.render(path, values))
     else:
         blog = BlogData(subject=subject, content=content) 
         service = BlogService(BlogDataStoreFactory())
         service.save(blog)
         blog_id = blog.key().id() 
         str_blog_id = str(blog_id)
         logging.info("Successfully posted blog entry. Redirectinr to '/unit6/%s" % str_blog_id  )  
         self.redirect('/unit6/%s' % str_blog_id)
示例#2
0
    def test_create_json(self):
        subject = 'Test Subject'
        content = 'Test Content'
        blog = BlogData(subject=subject,content=content)
        blog.put()
        blog_id = blog.key().id()
#        blog_data = self.service.fetch(blog_id)
        json_string = self.service.create_json(blog_id)
        self.assertTrue(('"subject": "%s"' % subject) in json_string, "Actual json string: " + str(json_string))
        self.assertTrue(('"content": "%s"' % content) in json_string, "Actual json string: " + str(json_string))
示例#3
0
 def test_fetchAll_cacheTest(self):
     b1 = BlogData(subject='blog1', content='This is blog1')
     self.storage.save(b1)
     b2 = BlogData(subject='blog2', content='This is blog2')
     self.storage.save(b2)
     expected = 2
     actual = list(self.storage.fetchAll())
     time.sleep(5)
     lq = self.storage.getLastQueried(FETCH_ALL_CACHE_KEY +
                                      LAST_QUERY_CACHE_KEY_SUFFIX)
     print str("last queried: " + str(lq))
示例#4
0
 def test_fetchAll(self):
     b1 = BlogData(subject='blog1', content='This is blog1')
     self.storage.save(b1)
     b2 = BlogData(subject='blog2', content='This is blog2')
     self.storage.save(b2)
     expected = 2
     actual = list(self.storage.fetchAll())
     actual_count = len(actual)
     self.assertEquals(
         expected, actual_count, "Blog count of " + str(expected) +
         ' size was not found. Actual count: ' + str(actual_count))
     print repr(actual)
示例#5
0
    def test_create_json_with_double_quotes(self):
        subject = 'Test"s Subject'
        content = 'Test"s Content'
        blog = BlogData(subject=subject,content=content)
        blog.put()
        blog_id = blog.key().id()
#        blog_data = self.service.fetch(blog_id)
        json_string = self.service.create_json(blog_id)
        quote = subject.find('"')
        json_subject = subject[0:quote] + '\\' + subject[quote:]
        quote = content.find('"')
        json_content = content[0:quote] + '\\' + content[quote:]
        self.assertTrue(('"subject": "%s"' % json_subject) in json_string, "Actual json string: " + str(json_string))
        self.assertTrue(('"content": "%s"' % json_content) in json_string, "Actual json string: " + str(json_string))
示例#6
0
 def test_fetch(self):
     b = BlogData(subject='blog1', content='This is blog1')
     expected = b.subject
     self.storage.save(b)
     b1 = self.storage.fetch(1)
     self.assertEquals(expected, b1.subject,
                       "Blog with id " + str(expected) + ' was not found.')
     pass
示例#7
0
 def fetch(self, entry_id):
     cache_key = str(entry_id) + DATA_CACHE_KEY_SUFFIX
     last_queried_key = str(entry_id) + LAST_QUERY_CACHE_KEY_SUFFIX
     blog_entry = memcache.get(cache_key)
     if not blog_entry:
         blog_entry = BlogData.get_by_id(entry_id)
         memcache.set(cache_key, blog_entry)
         self.setLastQueried(last_queried_key)
     return blog_entry
 def fetch(self, entry_id):
     cache_key = str(entry_id) + DATA_CACHE_KEY_SUFFIX
     last_queried_key = str(entry_id) + LAST_QUERY_CACHE_KEY_SUFFIX 
     blog_entry = memcache.get(cache_key)
     if not blog_entry:
         blog_entry = BlogData.get_by_id(entry_id)
         memcache.set(cache_key, blog_entry)
         self.setLastQueried(last_queried_key)
     return blog_entry
示例#9
0
 def test_save(self):
     b3 = BlogData(subject='blog1', content='This is blog1')
     self.storage.save(b3)
     b3a = self.storage.fetch(1)
     self.assertEquals(
         b3.subject, b3a.subject, "Blog " + str(b3) +
         ' was not saved. This was saved instead: ' + str(b3a))
     self.assertEquals(
         b3.content, b3a.content, "Blog " + str(b3) +
         ' was not saved. This was saved instead: ' + str(b3a))
     pass
 def post(self):
     '''
     Handles blog entry creation
     '''
     self.response.headers['Content-Type'] = 'text/html'
     isValid = True
     values = {}
     subject = self.request.get('subject')
     if not subject:
         values['subject_error'] = 'Blog subject is required'
         isValid = False
     else:
         logging.info("Creating blog entry with subject: %s" % str(subject))
     content = self.request.get('content')
     if not content:
         values['content_error'] = 'Blog content is required'
         isValid = False
     else:
         logging.info("Creating blog entry with content: %s" % str(content))
     path = None
     if not isValid:
         values['subject'] = subject
         values['content'] = content
         path = os.path.join(os.path.dirname(__file__),
                             '../templates/create_blog_entry.html')
         self.response.out.write(template.render(path, values))
     else:
         blog = BlogData(subject=subject, content=content)
         service = BlogService(BlogDataStoreFactory())
         service.save(blog)
         blog_id = blog.key().id()
         str_blog_id = str(blog_id)
         logging.info(
             "Successfully posted blog entry. Redirectinr to '/unit6/%s" %
             str_blog_id)
         self.redirect('/unit6/%s' % str_blog_id)
 def testPut(self):
     data = BlogData(subject='Foo',content='Foo blog')
     data.put()
     pass
示例#12
0
 def testPut(self):
     data = BlogData(subject='Foo', content='Foo blog')
     data.put()
     pass