예제 #1
0
    def test_send_versioned_request_if_not_supported_by_server(self):
        self.cc.stream_features[...] = roster_xso.RosterVersioningFeature()

        response = roster_xso.Query()

        self.cc.send.return_value = response

        run_coroutine(self.cc.before_stream_established())

        call, = self.cc.send.mock_calls
        _, call_args, call_kwargs = call

        iq_request, = call_args
        self.assertEqual("foobar", iq_request.payload.ver)
예제 #2
0
    def test_process_none_response_to_versioned_request(self):
        self.cc.stream_features[...] = roster_xso.RosterVersioningFeature()

        self.cc.send.return_value = None

        cb = unittest.mock.Mock()
        cb.return_value = True

        self.s.on_initial_roster_received.connect(cb)

        run_coroutine(self.cc.before_stream_established())

        call, = self.cc.send.mock_calls
        _, call_args, call_kwargs = call

        iq_request, = call_args
        self.assertEqual("foobar", iq_request.payload.ver)

        self.assertIn(self.user1, self.s.items)
        self.assertIn(self.user2, self.s.items)

        self.assertSequenceEqual([
            unittest.mock.call(),
        ], cb.mock_calls)