예제 #1
0
class TestTwitterDb(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
        cls._dbpath = (os.path.dirname(os.path.abspath(__file__)) +
                       "/test.sqlite")
        if os.path.exists(cls._dbpath):
            os.remove(cls._dbpath)

    @classmethod
    def tearDownClass(cls):
        if os.path.exists(cls._dbpath):
            os.remove(cls._dbpath)

    def setUp(self):
        self._db = TwitterDb(self._dbpath)
        self._db.create_db()

    def tearDown(self):
        self._db.close()
        self._db = None
        os.remove(self._dbpath)

    def test_createdb(self):
        # createdb直後の状態をテストする
        self.assertTrue(os.path.exists(self._dbpath), "Databaseファイルが存在しない")
        self.assertIsNone(self._db.GetCondition("test"),
                          "作成直後のDBのsearch_conditionにデータが存在する")

    def test_updateCondition(self):
        #search_conditionの更新を確認する
        self._db.SetCondition(None, "test", 0, 2, 3, 4)
        cond = self._db.GetCondition("test")
        self.assertEqual(cond['id'], 1)
        self.assertEqual(cond['term'], 'test')
        self.assertEqual(cond['found_since'], 0)
        self.assertEqual(cond['max_id'], 2)
        self.assertEqual(cond['min_id'], 3)
        self.assertEqual(cond['since_id'], 4)

        self._db.SetCondition(1, "test", 1, 3, 4, 5)
        cond = self._db.GetCondition("test")
        self.assertEqual(cond['id'], 1)
        self.assertEqual(cond['term'], 'test')
        self.assertEqual(cond['found_since'], 1)
        self.assertEqual(cond['max_id'], 3)
        self.assertEqual(cond['min_id'], 4)
        self.assertEqual(cond['since_id'], 5)

    def test_updateTweet(self):
        # Tweetの追加の確認
        self._db.AppendTweet(1, 1111, "TEST1", 2222, 3333)
        self._db.AppendTweet(1, 1112, "TEST2", 2223, 3334)
        self._db.AppendTweet(1, 1113, "TEST3", 2224, 3335)
        self._db.AppendTweet(1, 1114, "TEST4", 2225, 3336)

        self._db.AppendTweet(2, 9999, "TEST", 333, 777)
        # 同じツイートが違う検索条件でひっかかる
        self._db.AppendTweet(2, 1111, "TEST1", 2222, 3333)

        self._db.Commit()
        ret1 = self._db.GetTweets(1)
        ret2 = self._db.GetTweets(2)

        self.assertEqual(len(ret1), 4)
        self.assertEqual(len(ret2), 2)