-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtests.py
executable file
·94 lines (73 loc) · 2.45 KB
/
tests.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#!bin/python
# -*- coding: utf-8 -*-
# vim: ts=4 sw=4 sts=4 ff=unix ft=python expandtab
import unittest
import datetime
import os
import tweepy
import peewee
from favwatch import (
TwitterFavWatch,
PostLingr,
PostSlack,
)
from FavwatchLogModel import (
favwatch_log,
FavLog,
)
class TestTwitterFavWatch(unittest.TestCase):
target_screen_name = ["Twitter"]
database = "tmp.sqlite"
fav = None
def setUp(self):
self.c = TwitterFavWatch(self.database)
def tearDown(self):
os.remove(self.database)
def test__get_favorites(self):
fav = self.c.get_favorites(self.target_screen_name)
fav2 = self.c.get_favorites(self.target_screen_name)
self.assertEqual(fav2, [])
for t in fav:
self.assertIsInstance(t.text, str)
self.assertIsInstance(t.created_at, datetime.datetime)
self.assertEqual(t.id, int(t.id_str))
self.assertTrue(self.c.fav_exists(self.target_screen_name[0], fav[0].id_str))
def test_get_api_limit(self):
limit = self.c.get_api_limit()
self.assertIsInstance(limit, dict)
self.assertGreater(limit["reset"], 1)
class TestPostLingr(unittest.TestCase):
room = 'lingr'
bot = 'botname'
text = '本文'
bot_secret = 'xlfRmrQS64WGIY0c18qNO9LLUzX'
calculated_bot_verifier = 'ed4914cc299846a41c84beebb89e3b8c6ce02c5b'
def setUp(self):
self.l = PostLingr()
def test_build_say_payload(self):
payload = self.l.build_say_payload(room=self.room, bot=self.bot, text=self.text, apikey=self.bot_secret)
self.assertEqual(payload["bot_verifier"], self.calculated_bot_verifier)
self.assertEqual(payload["room"], self.room)
self.assertEqual(payload["text"], self.text)
self.assertEqual(payload["bot"], self.bot)
def test_is_enabled(self):
self.l.dry_run = True
self.l.settings["lingr"]["enabled"] = False
r = self.l.say(self.text)
self.assertFalse(r)
def test_say(self):
self.l.dry_run = True
pass
class TestPostSlack(unittest.TestCase):
webhook_url = "https://hooks.slack.com/services"
channel = "#general"
text = '本文'
def setUp(self):
self.s = PostSlack()
def test_is_enabled(self):
self.s.dry_run = True
self.s.settings["slack"]["enabled"] = False
r = self.s.say(self.text)
self.assertFalse(r)
if __name__ == '__main__':
unittest.main()