def setUp(self):
     # First, create an instance of the Testbed class.
     self.testbed = testbed.Testbed()
     # Then activate the testbed, which prepares the service stubs for use.
     self.testbed.activate()
     # Next, declare which service stubs you want to use.
     self.testbed.init_datastore_v3_stub()
     self.factory = BlogDataStoreFactory()
     self.storage = self.factory.get_storage()
     self.service = BlogService(self.factory)
 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__), '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 '/unit5/%s" % str_blog_id  )       
         self.redirect('/unit5/%s' % str_blog_id)
 def get(self):
     '''
     Handles displaying a json for all blog entries
     '''
     self.response.headers['Content-Type'] = 'application/json'
     service = BlogService(BlogDataStoreFactory())
     blog_json = service.create_all_json()
     self.response.out.write(blog_json)
 def setUp(self):
     # First, create an instance of the Testbed class.
     self.testbed = testbed.Testbed()
     # Then activate the testbed, which prepares the service stubs for use.
     self.testbed.activate()
     # Next, declare which service stubs you want to use.
     self.testbed.init_datastore_v3_stub()
     self.factory = BlogDataStoreFactory()
     self.storage = self.factory.get_storage()
     self.service = BlogService(self.factory)
 def get(self):
     '''
     Handles initial get request
     '''
     self.response.headers['Content-Type'] = 'text/html'
     service = BlogService(BlogDataStoreFactory())
     blog_entries = service.fetchAll()
     values = {'blog_entries': blog_entries}
     path = os.path.join(os.path.dirname(__file__), 'blog.html')
     self.response.out.write(template.render(path, values))
    def get(self, entry_id):
        '''
        Handles displaying a blog entry
        '''
        self.response.headers['Content-Type'] = 'text/html'
#        entry_id = self.request.get('entry_id')
        service = BlogService(BlogDataStoreFactory())
        data = service.fetch(int(entry_id))
        values = {'subject': data.subject, 'content':data.content}
        path = os.path.join(os.path.dirname(__file__), 'show_blog_entry.html')
        self.response.out.write(template.render(path, values))
class Test(unittest.TestCase):


    def setUp(self):
        # First, create an instance of the Testbed class.
        self.testbed = testbed.Testbed()
        # Then activate the testbed, which prepares the service stubs for use.
        self.testbed.activate()
        # Next, declare which service stubs you want to use.
        self.testbed.init_datastore_v3_stub()
        self.factory = BlogDataStoreFactory()
        self.storage = self.factory.get_storage()
        self.service = BlogService(self.factory)



    def tearDown(self):
        self.testbed.deactivate()


    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))

    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)
        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))
class Test(unittest.TestCase):
    def setUp(self):
        # First, create an instance of the Testbed class.
        self.testbed = testbed.Testbed()
        # Then activate the testbed, which prepares the service stubs for use.
        self.testbed.activate()
        # Next, declare which service stubs you want to use.
        self.testbed.init_datastore_v3_stub()
        self.factory = BlogDataStoreFactory()
        self.storage = self.factory.get_storage()
        self.service = BlogService(self.factory)

    def tearDown(self):
        self.testbed.deactivate()

    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))

    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)
        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))