예제 #1
0
    def setUp(self):
        self.dbname = "nchat_dev"
        self.db_client = connect(self.dbname)
        self.db_client.drop_database(self.dbname)
        self.db_init()

        self.jid = "friend.localhost"
        self.pwd = "joygin123"
        self.host = "127.0.0.1"
        self.port = "9098"
        self.bot = FriendBot(self.jid, self.pwd, self.host, self.port,
                             self.host, self.dbname)
        self.bot.xmpp.set_socket(TestSocket())

        self.db = self.db_client[self.dbname]
예제 #2
0
class FriendBotTest(unittest.TestCase):

    def db_init(self):
        u"""
        数据初始化
        """
        def create_default_user(mobile):
            pass

        def create_relation(master, guest, status):
            pass

        user_me = create_default_user("18321445606")
        user_w = create_default_user("18321445616")
        user_x = create_default_user("18321445626")
        user_f = create_default_user("18321445636")

        create_relation(user_me, user_w, 'both')
        create_relation(user_w, user_me, 'both')
        create_relation(user_me, user_x, 'asked')
        create_relation(user_x, user_me, 'ask')
        create_relation(user_me, user_f, 'black')
        create_relation(user_f, user_me, 'black')

    def setUp(self):
        self.dbname = "nchat_dev"
        self.db_client = connect(self.dbname)
        self.db_client.drop_database(self.dbname)
        self.db_init()

        self.jid = "friend.localhost"
        self.pwd = "joygin123"
        self.host = "127.0.0.1"
        self.port = "9098"
        self.bot = FriendBot(self.jid, self.pwd, self.host, self.port,
                             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_offline_presence_to_friends(self):
        pres = self.bot.xmpp.make_presence(pfrom="18321445606@localhost",
                                           pto="friend.localhost",
                                           ptype="unavailable")
        self.bot.user_offline(pres)

        dut_p1 = self.bot.xmpp.send_queue.get_nowait()
        self.assertIsNotNone(dut_p1)
        self.assertIn('from="18321445606@localhost"', dut_p1)
        self.assertIn('to="18321445616@localhost"', dut_p1)
        self.assertIn('type="unavailable"', dut_p1)

        with self.assertRaises(Empty):
            self.bot.xmpp.send_queue.get_nowait()

    def test_online_presence_to_friends(self):
        pres = self.bot.xmpp.make_presence(pfrom="18321445606@localhost",
                                           pto="friend.localhost",
                                           ptype="available")
        self.bot.user_online(pres)

        dut_p1 = self.bot.xmpp.send_queue.get_nowait()
        self.assertIsNotNone(dut_p1)
        self.assertIn('from="18321445606@localhost"', dut_p1)
        self.assertIn('to="18321445616@localhost"', dut_p1)

        with self.assertRaises(Empty):
            self.bot.xmpp.send_queue.get_nowait()

    def test_not_mobile_send_nothing(self):
        pres = self.bot.xmpp.make_presence(pfrom="admin@localhost",
                                           pto="friends.localhost",
                                           ptype="available")
        self.bot.user_online(pres)

        with self.assertRaises(Empty):
            self.bot.xmpp.send_queue.get_nowait()

    def test_not_register_mobile_send_nothing(self):
        pres = self.bot.xmpp.make_presence(pfrom="18321445696@localhost",
                                           pto="friends.localhost",
                                           ptype="available")
        self.bot.user_online(pres)

        with self.assertRaises(Empty):
            self.bot.xmpp.send_queue.get_nowait()

    def test_get_roster_send_result(self):
        rost = self.bot.xmpp.make_iq(ifrom="18321445606@localhost",
                                     ito="friends.localhost",
                                     itype="get")
        self.bot.xmpp.make_query_roster(rost)

        self.bot.get_roster(rost)

        dut_q1 = self.bot.xmpp.send_queue.get_nowait()
        self.assertIsNotNone(dut_q1)
        dut_e1 = ET.fromstring(dut_q1)
        self.assertEquals('18321445606@localhost', dut_e1.attrib['to'])
        self.assertEquals('friends.localhost', dut_e1.attrib['from'])
        self.assertEquals('result', dut_e1.attrib['type'])
        self.assertEquals(len(dut_e1[0].getchildren()), 3)