예제 #1
0
    def setUp(self):
        author_model.Author.instances = {}
        base_model.BaseModel.instances = {}
        blogpost_model.Blogpost.instances = {}
        comment_model.Comment.instances = {}
        label_model.Label.instances = {}

        colin = author_model.Author('colin')
        colin.put()

        zack = author_model.Author('zack')
        zack.put()

        blogpost1 = blogpost_model.Blogpost(zack, 'Hi!', 'Lorem ipsum...')
        blogpost1.put()

        blogpost2 = blogpost_model.Blogpost(zack, 'Caps lock',
                                            'Not the caps lock!')
        blogpost2.put()

        blogpost3 = blogpost_model.Blogpost(colin, 'Hi!', 'Hello world.')
        blogpost3.put()

        label1 = label_model.Label('intro')
        label1.put()
        label1.AddToBlogpost(blogpost1)
        label1.AddToBlogpost(blogpost3)

        label2 = label_model.Label('funny')
        label2.put()
        label2.AddToBlogpost(blogpost2)

        label3 = label_model.Label('good stuff')
        label3.put()
        label3.AddToBlogpost(blogpost1)
        label3.AddToBlogpost(blogpost2)
        label3.AddToBlogpost(blogpost3)

        comment1 = comment_model.Comment(colin, blogpost1, '...et dolar.')
        comment1.put()

        comment2 = comment_model.Comment(colin, blogpost2,
                                         'Anything but the caps lock!')
        comment2.put()

        comment3 = comment_model.Comment(zack, blogpost3, 'Welcome!')
        comment3.put()

        self.username = '******'
        self.headline = 'Hello world!'
        self.body = 'Yo!'
        self.label_text = 'good'

        self.authors = [colin, zack]
        self.blogposts = [blogpost1, blogpost2, blogpost3]
        self.comments = [comment1, comment2, comment3]
        self.labels = [label1, label2, label3]

        self.blogger_engine = engine.BloggerEngine()
예제 #2
0
    def test_GetByStorageKey(self):
        author = author_model.Author(self.username)
        author.put()

        result = author_model.Author.GetByStorageKey(self.username)
        expected = author
        self.assertEquals(result, expected)
예제 #3
0
    def test_AddBlogpost_ExistingPost(self):
        author = author_model.Author(self.username)
        author.AddBlogpost(self.blogpost)
        author.AddBlogpost(self.blogpost)

        self.assertTrue(self.blogpost.id in author.blogposts)
        self.assertEqual(len(author.blogposts), 1)
예제 #4
0
    def test_AddComment_ExistingComment(self):
        author = author_model.Author(self.username)
        author.AddComment(self.comment)
        author.AddComment(self.comment)

        self.assertEquals(len(author.comments), 1)
        self.assertTrue(self.comment.id in author.comments)
예제 #5
0
    def test_GetAll(self):
        author = author_model.Author(self.username)
        author.put()

        result = author_model.Author.GetAll()
        expected = [author]
        self.assertEquals(result, expected)
예제 #6
0
    def test_GetBlogpostsByUsername_UsernameFoundNoPosts(self):
        author_without_posts = author_model.Author('jon')
        author_without_posts.put()

        result = self.blogger_engine.GetBlogpostsByUsername('jon')
        expected = []
        self.assertEquals(result, expected)
예제 #7
0
    def test_RemoveComment_CommentNotPresent(self):
        author = author_model.Author(self.username)

        self.assertTrue(self.comment.id not in author.comments)

        author.RemoveComment(self.comment)

        self.assertTrue(self.comment.id not in author.comments)
예제 #8
0
    def test_AddComment_MultipleComments(self):
        author = author_model.Author(self.username)

        for comment in self.GenerateComments():
            author.AddComment(comment)
            self.assertTrue(comment.id in author.comments)

        self.assertEqual(len(author.comments), 5)
예제 #9
0
    def test_AddBlogpost_MultiplePosts(self):
        author = author_model.Author(self.username)

        for blogpost in self.GenerateBlogposts():
            author.AddBlogpost(blogpost)
            self.assertTrue(blogpost.id in author.blogposts)

        self.assertEquals(len(author.blogposts), 5)
예제 #10
0
    def test_Constructor(self):
        author = author_model.Author(self.username)

        self.assertEquals(author.username, self.username)
        self.assertIsInstance(author.comments, OrderedDict)
        self.assertIsInstance(author.blogposts, OrderedDict)
        self.assertIsNotNone(author.created_timestamp)
        self.assertIsNotNone(author.id)
예제 #11
0
    def test_GetBlogposts_WithBlogposts(self):
        author = author_model.Author(self.username)

        blogposts = list(self.GenerateBlogposts())
        for blogpost in blogposts:
            author.AddBlogpost(blogpost)

        result = author.GetBlogposts()
        self.assertEquals(result, blogposts)
예제 #12
0
    def test_GetComments_WithComments(self):
        author = author_model.Author(self.username)

        comments = list(self.GenerateComments())
        for comment in comments:
            author.AddComment(comment)

        result = author.GetComments()
        self.assertEquals(result, comments)
예제 #13
0
    def test_RemoveBlogpost_PostDoesNotExist(self):
        author = author_model.Author(self.username)

        self.assertTrue(self.blogpost.id not in author.blogposts)

        author.RemoveBlogpost(self.blogpost)

        self.assertTrue(self.blogpost.id not in author.blogposts)
        self.assertTrue(self.blogpost.id not in author.removed_blogposts)
예제 #14
0
    def test_GetRemovedComments_WithComments(self):
        author = author_model.Author(self.username)

        removed_removed_comments = list(self.GenerateComments())
        for removed_comment in removed_removed_comments:
            author.removed_comments[removed_comment.id] = removed_comment

        result = author.GetRemovedComments()
        self.assertEquals(result, removed_removed_comments)
예제 #15
0
    def test_ToJson_WithoutCommentsAndBlogposts(self):
        author = author_model.Author(self.username)

        result = author.ToJson()

        self.assertEquals(result['comments'], [])
        self.assertEquals(result['blogposts'], [])
        self.assertEquals(result['removed_blogposts'], [])
        self.assertEquals(result['removed_comments'], [])
        self.assertIsNotNone(result['created_timestamp'])
        self.assertIsNotNone(result['id'])
        self.assertEquals(result['username'], self.username)
        self.assertEquals(result['created_timestamp'],
                          str(author.created_timestamp))
예제 #16
0
    def GetOrInsertAuthor(self, username):
        """Gets or inserts an Author object by username.

        Args:
          username: string; The username to look up.

        Returns:
          A populated Author instance.

        """
        author = author_model.Author.GetByStorageKey(username)
        if author:
            return author

        author = author_model.Author(username)
        author.put()
        return author
예제 #17
0
    def test_ToJson_WithCommentsAndBlogposts(self):
        author = author_model.Author(self.username)

        blogposts = list(self.GenerateBlogposts())
        for blogpost in blogposts:
            author.AddBlogpost(blogpost)

        comments = list(self.GenerateComments())
        for comment in comments:
            author.AddComment(comment)

        removed_blogposts = list(self.GenerateBlogposts())
        for removed_blogpost in removed_blogposts:
            author.removed_blogposts[removed_blogpost.id] = removed_blogpost

        removed_comments = list(self.GenerateComments())
        for removed_comment in removed_comments:
            author.removed_comments[removed_comment.id] = removed_comment

        result = author.ToJson()

        for blogpost in blogposts:
            self.assertTrue(blogpost.id in result['blogposts'])

        for removed_blogpost in removed_blogposts:
            self.assertTrue(removed_blogpost.id in result['removed_blogposts'])

        for comment in comments:
            self.assertTrue(comment.id in result['comments'])

        for removed_comment in removed_comments:
            self.assertTrue(removed_comment.id in result['removed_comments'])

        self.assertIsNotNone(result['created_timestamp'])
        self.assertIsNotNone(result['id'])
        self.assertEquals(result['username'], self.username)
        self.assertEquals(result['created_timestamp'],
                          str(author.created_timestamp))
예제 #18
0
    def test_AddComment_NewComment(self):
        author = author_model.Author(self.username)
        author.AddComment(self.comment)

        self.assertTrue(self.comment.id in author.comments)
예제 #19
0
    def test_GetRemovedComments_NoComments(self):
        author = author_model.Author(self.username)
        result = author.GetRemovedComments()
        expected = []

        self.assertEquals(result, expected)
예제 #20
0
    def test_AddBlogpost_NewPost(self):
        author = author_model.Author(self.username)
        author.AddBlogpost(self.blogpost)

        self.assertTrue(self.blogpost.id in author.blogposts)
예제 #21
0
    def test_GetBlogposts_NoBlogposts(self):
        author = author_model.Author(self.username)
        result = author.GetBlogposts()
        expected = []

        self.assertEquals(result, expected)
예제 #22
0
    def test_Put(self):
        author = author_model.Author(self.username)
        author.put()

        self.assertTrue(
            author.username in author_model.Author.instances['Author'])