unit test dao

pull/6/head
Yax 3 years ago
parent 743c88f98b
commit bcc7a8d6b7

@ -35,7 +35,7 @@ def find_published_comments_by_url(url):
def count_published_comments(url): def count_published_comments(url):
return Comment.select(Comment).where( return Comment.select(Comment).where(
(Comment.url == url) & (Comment.published.is_null(False))).count() if url else Comment.select(Comment).where( (Comment.url == url) & (Comment.published.is_null(False))).count() if url else Comment.select(Comment).where(
Comment.publishd.is_null(False)).count() Comment.published.is_null(False)).count()
def create_comment(url, author_name, author_site, author_gravatar, message): def create_comment(url, author_name, author_site, author_gravatar, message):
@ -51,3 +51,4 @@ def create_comment(url, author_name, author_site, author_gravatar, message):
published=None, published=None,
) )
comment.save() comment.save()
return comment

@ -0,0 +1,55 @@
import unittest
from stacosys.db import dao
from stacosys.db import database
class DbTestCase(unittest.TestCase):
def setUp(self):
db = database.Database()
db.setup(":memory:")
def test_dao_published(self):
# test count published
self.assertEqual(0, dao.count_published_comments(""))
c1 = dao.create_comment("/post1", "Yax", "", "", "Comment 1")
self.assertEqual(0, dao.count_published_comments(""))
dao.publish_comment(c1)
self.assertEqual(1, dao.count_published_comments(""))
c2 = dao.create_comment("/post2", "Yax", "", "", "Comment 2")
dao.publish_comment(c2)
self.assertEqual(2, dao.count_published_comments(""))
c3 = dao.create_comment("/post2", "Yax", "", "", "Comment 3")
dao.publish_comment(c3)
self.assertEqual(1, dao.count_published_comments("/post1"))
self.assertEqual(2, dao.count_published_comments("/post2"))
# test find published
self.assertEqual(0, len(dao.find_published_comments_by_url("/")))
self.assertEqual(1, len(dao.find_published_comments_by_url("/post1")))
self.assertEqual(2, len(dao.find_published_comments_by_url("/post2")))
dao.delete_comment(c1)
self.assertEqual(0, len(dao.find_published_comments_by_url("/post1")))
def test_dao_notified(self):
# test count notified
self.assertEqual(0, len(dao.find_not_notified_comments()))
c1 = dao.create_comment("/post1", "Yax", "", "", "Comment 1")
self.assertEqual(1, len(dao.find_not_notified_comments()))
c2 = dao.create_comment("/post2", "Yax", "", "", "Comment 2")
self.assertEqual(2, len(dao.find_not_notified_comments()))
dao.notify_comment(c1)
dao.notify_comment(c2)
self.assertEqual(0, len(dao.find_not_notified_comments()))
c3 = dao.create_comment("/post2", "Yax", "", "", "Comment 3")
self.assertEqual(1, len(dao.find_not_notified_comments()))
dao.notify_comment(c3)
self.assertEqual(0, len(dao.find_not_notified_comments()))
if __name__ == '__main__':
unittest.main()
Loading…
Cancel
Save