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()
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)
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)
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)
def test_GetAll(self): author = author_model.Author(self.username) author.put() result = author_model.Author.GetAll() expected = [author] self.assertEquals(result, expected)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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))
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
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))
def test_AddComment_NewComment(self): author = author_model.Author(self.username) author.AddComment(self.comment) self.assertTrue(self.comment.id in author.comments)
def test_GetRemovedComments_NoComments(self): author = author_model.Author(self.username) result = author.GetRemovedComments() expected = [] self.assertEquals(result, expected)
def test_AddBlogpost_NewPost(self): author = author_model.Author(self.username) author.AddBlogpost(self.blogpost) self.assertTrue(self.blogpost.id in author.blogposts)
def test_GetBlogposts_NoBlogposts(self): author = author_model.Author(self.username) result = author.GetBlogposts() expected = [] self.assertEquals(result, expected)
def test_Put(self): author = author_model.Author(self.username) author.put() self.assertTrue( author.username in author_model.Author.instances['Author'])