def setUp(self): self.dbname = 'nchat_dev' self.db_client = connect(self.dbname) self.db_client.drop_database(self.dbname) self.jid = "test@localhost" self.pwd = "test" self.host = "localhost" self.bot = LoginBot(self.jid, self.pwd, self.host, self.dbname) self.bot.xmpp.set_socket(TestSocket()) self.db = self.db_client[self.dbname]
class LoginBotTest(unittest.TestCase): def setUp(self): self.dbname = 'nchat_dev' self.db_client = connect(self.dbname) self.db_client.drop_database(self.dbname) self.jid = "test@localhost" self.pwd = "test" self.host = "localhost" self.bot = LoginBot(self.jid, self.pwd, self.host, self.dbname) self.bot.xmpp.set_socket(TestSocket()) self.db = self.db_client[self.dbname] def tearDown(self): self.db_client.drop_database(self.dbname) del self.bot def test_login_renew_sessionid(self): self.assertEquals(self.old_session.status, 0) fjid = "18321445606@localhost" body = "mobile_token2" self.bot.login(fjid, body) # mesasge asserts msg = self.bot.xmpp.send_queue.get_nowait() self.assertIsNotNone(msg) self.assertTrue(isinstance(msg, basestring)) def test_logout_close_session(self): self.assertEquals(self.old_session.status, 0) fjid = "18321445606@localhost" self.bot.logout(fjid) # mesasge asserts msg = self.bot.xmpp.send_queue.get_nowait() self.assertIsNotNone(msg) self.assertTrue(isinstance(msg, basestring)) tjid = 'to="18321445606@localhost"' fjid = 'from="test@localhost"' self.assertNotEquals(msg.find(tjid), -1) self.assertNotEquals(msg.find(fjid), -1) def test_get_token_like_login(self): self.assertEquals(self.old_session.status, 0) fjid = "18321445606@localhost" body = "mobile_token2" self.bot.get_token(fjid, body) self.old_session.reload() self.assertEquals(self.old_session.status, 1) # mesasge asserts msg = self.bot.xmpp.send_queue.get_nowait() self.assertIsNotNone(msg) self.assertTrue(isinstance(msg, basestring)) def test_message_nonchat_message_not_send(self): fjid = "18321445606@localhost" msg1 = self.bot.xmpp.Message(sto=self.jid, sfrom=fjid, stype='normal') msg2 = self.bot.xmpp.Message(sto=self.jid, sfrom=fjid, stype='grouchat') self.bot.message(msg1) with self.assertRaises(Empty): self.bot.xmpp.send_queue.get_nowait() self.bot.message(msg2) with self.assertRaises(Empty): self.bot.xmpp.send_queue.get_nowait() def test_message_nomobile_jid_not_send(self): fjid = "non-mobile@localhost" msg = self.bot.xmpp.Message(sto=self.jid, sfrom=fjid, stype='chat') self.bot.message(msg) with self.assertRaises(Empty): self.bot.xmpp.send_queue.get_nowait() def test_message_nonsubject_not_send(self): fjid = "18321445606@localhost" msg = self.bot.xmpp.Message(sto=self.jid, sfrom=fjid, stype='chat') msg['body'] = 'mobile-token' self.bot.message(msg) with self.assertRaises(Empty): self.bot.xmpp.send_queue.get_nowait() def test_message_error_subject_not_send(self): fjid = "18321445606@localhost" msg = self.bot.xmpp.Message(sto=self.jid, sfrom=fjid, stype='chat') msg['subject'] = 'not-login-or-logout' msg['body'] = 'mobile-token' self.bot.message(msg) with self.assertRaises(Empty): self.bot.xmpp.send_queue.get_nowait() def test_message_login_subject_login(self): fjid = "18321445606@localhost" msg = self.bot.xmpp.Message(sto=self.jid, sfrom=fjid, stype='chat') msg['subject'] = 'login' msg['body'] = 'mobile-token' with mock.patch.object(self.bot, 'login') as new_login: new_login.return_value = None self.bot.message(msg) self.assertEquals(new_login.call_count, 1) def test_message_logout_subject_logout(self): fjid = "18321445606@localhost" msg = self.bot.xmpp.Message(sto=self.jid, sfrom=fjid, stype='chat') msg['subject'] = 'logout' msg['body'] = 'mobile-token' with mock.patch.object(self.bot, 'logout') as new_logout: new_logout.return_value = None self.bot.message(msg) self.assertEquals(new_logout.call_count, 1) self.bot.message(msg) try: msg = self.bot.xmpp.send_queue.get_nowait() self.assertIsNotNone(msg) except Exception as e: print e.message self.fail('msg not send error') def test_message_get_token_subject_get_token(self): fjid = "18321445606@localhost" msg = self.bot.xmpp.Message(sto=self.jid, sfrom=fjid, stype='chat') msg['subject'] = 'get_token' msg['body'] = 'mobile-token' with mock.patch.object(self.bot, 'get_token') as new_get_token: new_get_token.return_value = None self.bot.message(msg) self.assertEquals(new_get_token.call_count, 1)