Example #1
0
	def test_createMentionListMyself(self):

		# 返信制御クラスの作成
		rt = ReplyTweet()

		# メンション取得をモック
		self.mocker.StubOutWithMock(rt, "getMentions")

		# 再現を初期化
		self.mocker.ResetAll()

		rt.getMentions().AndReturn([ \
			(300, u'test3', u'message3'), \
			(200, u'ToruBot', u'message2'), \
			(100, u'test1', u'message1') \
			])

		# 再現を開始
		self.mocker.ReplayAll()

		lst = rt.createMentionList()

		assert_equal((300, u'test3', u'message3'), lst[0])
		assert_equal((100, u'test1', u'message1'), lst[1])

		# 再現を検証
		self.mocker.VerifyAll()
Example #2
0
	def test_createMentionListRT(self):

		# 返信制御クラスの作成
		rt = ReplyTweet()

		# メンション取得をモック
		self.mocker.StubOutWithMock(rt, "getMentions")

		# 再現を初期化
		self.mocker.ResetAll()

		rt.getMentions().AndReturn([ \
			(300, u'test3', u'message3'), \
			(200, u'test2', u'message2 RT RTMessage!'), \
			(201, u'test4', u'よかった。RT @ToruBot: @riskrisk 大丈夫だ問題ない。 (そろそろ@torubotの件でひっぱたかれる予感があるが大丈夫か?)'), \
			(100, u'test1', u'message1') \
			])

		# 再現を開始
		self.mocker.ReplayAll()

		lst = rt.createMentionList()

		assert_equal((300, u'test3', u'message3'), lst[0])
		assert_equal((200, u'test2', u'message2'), lst[1])
		assert_equal((201, u'test4', u'よかった。'), lst[2])
		assert_equal((100, u'test1', u'message1'), lst[3])

		# 再現を検証
		self.mocker.VerifyAll()
Example #3
0
	def test_createMentionListCheckId(self):

		# 返信制御クラスの作成
		rt = ReplyTweet()

		# チェック済みIDに200を設定
		ds = DataStore.DataStore()
		ds.setMentionId(200)

		# メンション取得をモック
		self.mocker.StubOutWithMock(rt, "getMentions")

		# 再現を初期化
		self.mocker.ResetAll()

		rt.getMentions().AndReturn([ \
			(300, u'test3', u'message3'), \
			(200, u'test2', u'message2'), \
			(100, u'test1', u'message1') \
			])

		# 再現を開始
		self.mocker.ReplayAll()

		lst = rt.createMentionList()

		assert_equal((300, u'test3', u'message3'), lst[0])

		# 再現を検証
		self.mocker.VerifyAll()
Example #4
0
	def test_MakeTweet(self):
		# 元のメッセージを作成
		msg = u'Tweet Message'
		org_msg = u'Original Message'

		# 返信制御クラスを作成
		rt = ReplyTweet()

		# メッセージを作成
		tweet_msg = rt.resTweetTrim(msg, org_msg)

		# 予想通りのメッセージが作成されること
		assert_equal(u''.join([msg, u' (', org_msg, u')']), tweet_msg)
Example #5
0
	def test_OmikujiAddEmpty(self):

		ds = DataStore.DataStore()

		# 返信制御クラスを作成
		rt = ReplyTweet()

		mlist =[\
			(100, u'user1', u'くじ追加「」'), \
			(200, u'user2', u'くじ追加'), \
			]
		rt.omikujiAdd(mlist)

		lst = ds.getStatuses(DataStore.Type.omikuji)

		assert_equal(0, len(lst))
Example #6
0
	def test_Uhyou(self):

		# 返信制御クラスを作成
		rt = ReplyTweet()

		# updateをモック
		self.mocker.StubOutWithMock(rt, "update")

		# 再現を初期化
		self.mocker.ResetAll()

		# 動作を記録
		rt.update(mox.Regex(u'@user1 .* \(1ウッヒョウ!\)'), 100)
		rt.update(mox.Regex(u'@user2 .* \(2ウッヒョウ!\)'), 200)
		rt.update(mox.Regex(u'@user3 .* \(3ウッヒョウ!\)'), 300)

		# 再現を開始
		self.mocker.ReplayAll()

		mlist =[\
			(100, u'user1', u'1ウッヒョウ!'), \
			(200, u'user2', u'2ウッヒョウ!'), \
			(300, u'user3', u'3ウッヒョウ!') \
			]
		rt.uhyouTweet(mlist)

		# 再現を検証
		self.mocker.VerifyAll()
Example #7
0
	def test_Omikuji(self):

		ds = DataStore.DataStore()

		ds.addStatus(DataStore.Type.omikuji, u'大吉')
		ds.addStatus(DataStore.Type.omikuji, u'中吉')
		ds.addStatus(DataStore.Type.omikuji, u'小吉')

		# 返信制御クラスを作成
		rt = ReplyTweet()

		# updateをモック
		self.mocker.StubOutWithMock(rt, "update")

		# 再現を初期化
		self.mocker.ResetAll()

		# 動作を記録
		rt.update(mox.Regex(u'@user1 .* \(1おみくじちょうだい!\)'), 100)
		rt.update(mox.Regex(u'@user2 .* \(2おみくじちょうだい!\)'), 200)
		rt.update(mox.Regex(u'@user3 .* \(3おみくじちょうだい!\)'), 300)

		# 再現を開始
		self.mocker.ReplayAll()

		mlist =[\
			(100, u'user1', u'1おみくじちょうだい!'), \
			(200, u'user2', u'2おみくじちょうだい!'), \
			(300, u'user3', u'3おみくじちょうだい!') \
			]
		rt.omikujiTweet(mlist)

		# 再現を検証
		self.mocker.VerifyAll()
Example #8
0
	def test_enoch(self):

		# 返信制御クラスを作成
		rt = ReplyTweet()

		# updateをモック
		self.mocker.StubOutWithMock(rt, "update")

		# 再現を初期化
		self.mocker.ResetAll()

		# 動作を記録
		rt.update(mox.Regex(u'@user1 .* \(1そんな装備で大丈夫か?\)'), 100)
		rt.update(mox.Regex(u'@user2 .* \(2そんな装備で大丈夫か?\)'), 200)
		rt.update(mox.Regex(u'@user3 .* \(3そんな装備でイーノック?\)'), 300)

		# 再現を開始
		self.mocker.ReplayAll()

		mlist =[\
			(100, u'user1', u'1そんな装備で大丈夫か?'), \
			(200, u'user2', u'2そんな装備で大丈夫か?'), \
			(300, u'user3', u'3そんな装備でイーノック?') \
			]
		rt.enochTweet(mlist)

		# 再現を検証
		self.mocker.VerifyAll()
Example #9
0
	def test_Peroepero(self):

		# 返信制御クラスを作成
		rt = ReplyTweet()

		# updateをモック
		self.mocker.StubOutWithMock(rt, "update")

		# 再現を初期化
		self.mocker.ResetAll()

		# 動作を記録
		rt.update(mox.Regex(u'@user1 .* \(1ペロペロ!\)'), 100)
		rt.update(mox.Regex(u'@user2 .* \(2ペロペロ!\)'), 200)
		rt.update(mox.Regex(u'@user3 .* \(3ペロペロ!\)'), 300)

		# 再現を開始
		self.mocker.ReplayAll()

		mlist =[\
			(100, u'user1', u'1ペロペロ!'), \
			(200, u'user2', u'2ペロペロ!'), \
			(300, u'user3', u'3ペロペロ!') \
			]
		rt.peroperoTweet(mlist)

		# 再現を検証
		self.mocker.VerifyAll()
Example #10
0
	def test_Handler(self):

		# 周期ツイート制御のインスタンスを生成
		rt = ReplyTweet()

		# 各ハンドラをモックする
		self.mocker.StubOutWithMock(rt, "mentionReplyHandler")

		# 記録をリセット
		self.mocker.ResetAll()

		# 呼び出しの記録
		rt.mentionReplyHandler()

		# 再現動作の開始
		self.mocker.ReplayAll()

		# ツイート
		rt.handler()

		# 実動作の検証
		self.mocker.VerifyAll()
Example #11
0
	def test_OmikujiAdd(self):

		ds = DataStore.DataStore()

		# 返信制御クラスを作成
		rt = ReplyTweet()

		# updateをモック
		self.mocker.StubOutWithMock(rt, "update")

		mlist =[\
			(100, u'user1', u'くじ追加「大吉」'), \
			(200, u'user2', u'くじ追加「中吉」'), \
			(300, u'user3', u'くじ追加「小吉」') \
			]
		rt.omikujiAdd(mlist)

		lst = ds.getStatuses(DataStore.Type.omikuji)

		assert_equal(u'大吉', lst[0][1])
		assert_equal(u'中吉', lst[1][1])
		assert_equal(u'小吉', lst[2][1])
Example #12
0
	def test_TweetTrim(self):

		# 元になる文字列を作成(とりあえず100文字)
		s = u'0123456789'
		slst= []
		for i in range(0, 10):
			slst.append(s)

		# 返信元文字列を作成(とりあえず100文字)
		org_s = u'0123456789'
		org_slst= []
		for i in range(0, 10):
			org_slst.append(org_s)

		# 返信制御クラスを作成
		rt = ReplyTweet()

		# トリムを実行(計200文字なので、139文字にトリムされる))
		msg = rt.resTweetTrim(u''.join(slst), u''.join(org_slst))

		m = re.match(u'.*\(.*\)', msg)

		assert_true(m)
		assert_equal(139, len(msg))
Example #13
0
def retweet_few_users(api, trendtopic):
    for keyword in trendtopic:
        time.sleep(30)
        search = keyword
        numberOfTweets = 2
        for tweet in tweepy.Cursor(api.search, search).items(numberOfTweets):
            t3 = threading.Thread(target=ReplyTweet.replyUser(
                api, search, numberOfTweets),
                                  daemon=True)
            t3.start()
            t3.join()
            try:
                tweet.retweet()
                print('Retweeted the tweet')
            except tweepy.TweepError as e:
                print(e.reason)
            except StopIteration:
                break
Example #14
0
	def test_MentionReplyHandler(self):

		# 返信制御クラスの作成
		rt = ReplyTweet()

		mlist =[\
			(100, u'user1', u'1ハンドラ'), \
			(200, u'user2', u'2ハンドラ'), \
			(300, u'user3', u'3ハンドラ') \
			]

		# 各エントリをモック
		self.mocker.StubOutWithMock(rt, "createMentionList")
		self.mocker.StubOutWithMock(rt, "iyahoTweet")
		self.mocker.StubOutWithMock(rt, "uhyouTweet")
		self.mocker.StubOutWithMock(rt, "peroperoTweet")
		self.mocker.StubOutWithMock(rt, "douiTweet")
		self.mocker.StubOutWithMock(rt, "enochTweet")
		self.mocker.StubOutWithMock(rt, "omikujiTweet")
		self.mocker.StubOutWithMock(rt, "omikujiAdd")

		# 再現を初期化
		self.mocker.ResetAll()

		# 動作を記録
		rt.createMentionList().AndReturn(mlist)
		rt.iyahoTweet(mlist)
		rt.uhyouTweet(mlist)
		rt.peroperoTweet(mlist)
		rt.douiTweet(mlist)
		rt.enochTweet(mlist)
		rt.omikujiTweet(mlist)
		rt.omikujiAdd(mlist)

		# 再現を開始
		self.mocker.ReplayAll()

		rt.mentionReplyHandler()

		# 再現を検証
		self.mocker.VerifyAll()