Пример #1
0
    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]
Пример #2
0
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)