From 3989f01136aff7fc02ce93131227f38d26e7d8ad Mon Sep 17 00:00:00 2001 From: Guillaume Desmottes Date: Thu, 10 Oct 2013 14:21:10 -0400 Subject: Use Messages API instead of Text Also, stop testing old Text API. --- tests/twisted/muc/send-error.py | 35 ++-------------------- tests/twisted/muc/test-muc.py | 41 +++----------------------- tests/twisted/servicetest.py | 7 ++++- tests/twisted/text/destroy.py | 27 ++++++----------- tests/twisted/text/initiate.py | 12 +++----- tests/twisted/text/respawn.py | 41 +++++++++----------------- tests/twisted/text/send-error.py | 41 +++----------------------- tests/twisted/text/send-to-correct-resource.py | 6 ++-- tests/twisted/text/test-chat-state.py | 4 +-- tests/twisted/text/test-text-delayed.py | 11 ++----- tests/twisted/text/test-text.py | 27 ++--------------- 11 files changed, 53 insertions(+), 199 deletions(-) diff --git a/tests/twisted/muc/send-error.py b/tests/twisted/muc/send-error.py index 219fa4d7f..4f59fbd18 100644 --- a/tests/twisted/muc/send-error.py +++ b/tests/twisted/muc/send-error.py @@ -2,7 +2,6 @@ Test incoming error messages in MUC channels. """ -import warnings import dbus from gabbletest import exec_test @@ -69,9 +68,8 @@ def send_message_and_expect_error(q, stream, sent_token = text_chan.Messages.SendMessage(greeting, dbus.UInt32(0)) - stream_message, _, _ = q.expect_many( + stream_message, _ = q.expect_many( EventPattern('stream-message'), - EventPattern('dbus-signal', signal='Sent'), EventPattern('dbus-signal', signal='MessageSent'), ) @@ -92,36 +90,7 @@ def send_message_and_expect_error(q, stream, stream.send(elem) - # check that we got a failed delivery report and a SendError - send_error, received, message_received = q.expect_many( - EventPattern('dbus-signal', signal='SendError'), - EventPattern('dbus-signal', signal='Received'), - EventPattern('dbus-signal', signal='MessageReceived'), - ) - - err, timestamp, type, text = send_error.args - assertEquals(send_error_value, err) - # there's no way to tell when the original message was sent from the error stanza - assertEquals(0, timestamp) - # Gabble can't determine the type of the original message; see muc/test-muc.py - # assert type == 0, send_error.args - assertEquals(content, text) - - # The Text.Received signal should be a "you're not tall enough" stub - id, timestamp, sender, type, flags, text = received.args - - assertEquals(0, sender) - assertEquals(type, cs.MT_DELIVERY_REPORT) - - if flags == 0: - warnings.warn("ignoring tp-glib bug #61254") - else: - assertEquals(cs.MessageFlag.NON_TEXT_CONTENT, flags) - - if error_message is None: - assertEquals('', text) - else: - assertEquals(error_message, text) + message_received = q.expect('dbus-signal', signal='MessageReceived') # Check that the Messages.MessageReceived signal was a failed delivery report assertLength(1, message_received.args) diff --git a/tests/twisted/muc/test-muc.py b/tests/twisted/muc/test-muc.py index 3a040ef2f..c0b12c5b5 100644 --- a/tests/twisted/muc/test-muc.py +++ b/tests/twisted/muc/test-muc.py @@ -55,20 +55,7 @@ def test(q, bus, conn, stream): body = message.addElement('body', content='hello') stream.send(message) - received, message_received = q.expect_many( - EventPattern('dbus-signal', signal='Received'), - EventPattern('dbus-signal', signal='MessageReceived'), - ) - - # Check Channel.Type.Text.Received: - # sender: bob - assert received.args[2] == bob_handle - # message type: normal - assert received.args[3] == 0 - # flags: none - assert received.args[4] == 0 - # body - assert received.args[5] == 'hello' + message_received = q.expect('dbus-signal', signal='MessageReceived') # Check Channel.Interface.Messages.MessageReceived: message = message_received.args[0] @@ -116,9 +103,8 @@ def test(q, bus, conn, stream): assert sent_token - stream_message, sent, message_sent = q.expect_many( + stream_message, message_sent = q.expect_many( EventPattern('stream-message'), - EventPattern('dbus-signal', signal='Sent'), EventPattern('dbus-signal', signal='MessageSent'), ) @@ -137,9 +123,6 @@ def test(q, bus, conn, stream): assertEquals(cs.MSG_SENDING_FLAGS_REPORT_DELIVERY, flags) assertEquals(sent_token, token) - assert sent.args[1] == 1, sent.args # Action - assert sent.args[2] == u'peers through a gap in the curtains', sent.args - assert message_sent.args[2] == sent_token elem = stream_message.stanza @@ -160,10 +143,7 @@ def test(q, bus, conn, stream): stream.send(elem) # Check that we got the corresponding delivery report - report, old_received = q.expect_many( - EventPattern('dbus-signal', signal='MessageReceived'), - EventPattern('dbus-signal', signal='Received'), - ) + report = q.expect('dbus-signal', signal='MessageReceived') assert len(report.args) == 1, report.args parts = report.args[0] @@ -190,27 +170,17 @@ def test(q, bus, conn, stream): assert key in echo[i], (i, key, echo) assert echo[i][key] == greeting[i][key], (i, key, echo, greeting) - # The Text.Received signal should be a "you're not tall enough" stub - id, timestamp, sender, type, flags, text = old_received.args - assert sender == 0, old_received.args - assert type == 4, old_received.args # Message_Type_Delivery_Report - assert flags == 2, old_received.args # Non_Text_Content - assert text == '', old_received.args - - # Send a normal message using the Channel.Type.Text API chan.send_msg_sync('goodbye') - event, sent, message_sent = q.expect_many( + event, message_sent = q.expect_many( EventPattern('stream-message'), - EventPattern('dbus-signal', signal='Sent'), EventPattern('dbus-signal', signal='MessageSent'), ) sent_message, flags, _ = message_sent.args assert len(sent_message) == 2, sent_message header = sent_message[0] - assert 'message-type' not in header, header # Normal body = sent_message[1] assert body['content-type'] == 'text/plain', body assert body['content'] == u'goodbye', body @@ -220,9 +190,6 @@ def test(q, bus, conn, stream): # Gabble's within its rights to pretend that the caller asked. assert flags in [0, cs.MSG_SENDING_FLAGS_REPORT_DELIVERY], flags - assert sent.args[1] == 0, sent.args # Normal - assert sent.args[2] == u'goodbye', sent.args - sent_token = message_sent.args[2] elem = event.stanza diff --git a/tests/twisted/servicetest.py b/tests/twisted/servicetest.py index 8b33c05e4..885bfe205 100644 --- a/tests/twisted/servicetest.py +++ b/tests/twisted/servicetest.py @@ -645,7 +645,12 @@ def wrap_connection(conn): class ChannelWrapper(ProxyWrapper): def send_msg_sync(self, txt): - self.Text.Send(0, txt) + message = [ + { 'message-type': cs.MT_NORMAL, }, + { 'content-type': 'text/plain', + 'content': txt + }] + self.Messages.SendMessage(message, 0) def wrap_channel(chan, type_, extra=None): interfaces = { diff --git a/tests/twisted/text/destroy.py b/tests/twisted/text/destroy.py index 99c65c9b9..0504d1d32 100644 --- a/tests/twisted/text/destroy.py +++ b/tests/twisted/text/destroy.py @@ -8,7 +8,7 @@ import dbus from twisted.words.xish import domish from gabbletest import exec_test -from servicetest import call_async, EventPattern, wrap_channel +from servicetest import call_async, EventPattern, wrap_channel, assertEquals import constants as cs def test(q, bus, conn, stream): @@ -71,23 +71,14 @@ def test(q, bus, conn, stream): m.addElement('body', content='hello') stream.send(m) - event = q.expect('dbus-signal', signal='Received') - - hello_message_id = event.args[0] - hello_message_time = event.args[1] - assert event.args[2] == foo_handle - # message type: normal - assert event.args[3] == 0 - # flags: none - assert event.args[4] == 0 - # body - assert event.args[5] == 'hello' - - messages = text_chan.ListPendingMessages(False, - dbus_interface=cs.CHANNEL_TYPE_TEXT) - assert messages == \ - [(hello_message_id, hello_message_time, foo_handle, - 0, 0, 'hello')], messages + event = q.expect('dbus-signal', signal='MessageReceived') + + msg = event.args[0] + assertEquals(foo_handle, msg[0]['message-sender']) + assertEquals('hello', msg[1]['content']) + + messages = text_chan.Properties.Get(cs.CHANNEL_IFACE_MESSAGES, 'PendingMessages') + assertEquals([msg], messages) # destroy the channel without acking the message; it does not come back diff --git a/tests/twisted/text/initiate.py b/tests/twisted/text/initiate.py index ef946e28d..778dd6a58 100644 --- a/tests/twisted/text/initiate.py +++ b/tests/twisted/text/initiate.py @@ -74,14 +74,10 @@ def test(q, bus, conn, stream): m.addElement('body', content='hello') stream.send(m) - event = q.expect('dbus-signal', signal='Received') - - # message type: normal - assert event.args[3] == 0 - # flags: none - assert event.args[4] == 0 - # body - assert event.args[5] == 'hello' + event = q.expect('dbus-signal', signal='MessageReceived') + + msg = event.args[0] + assertEquals('hello', msg[1]['content']) if __name__ == '__main__': exec_test(test) diff --git a/tests/twisted/text/respawn.py b/tests/twisted/text/respawn.py index e9e2239de..bb1b75495 100644 --- a/tests/twisted/text/respawn.py +++ b/tests/twisted/text/respawn.py @@ -70,23 +70,14 @@ def test(q, bus, conn, stream): m.addElement('body', content='hello') stream.send(m) - event = q.expect('dbus-signal', signal='Received') - - hello_message_id = event.args[0] - hello_message_time = event.args[1] - assert event.args[2] == foo_handle - # message type: normal - assert event.args[3] == 0 - # flags: none - assert event.args[4] == 0 - # body - assert event.args[5] == 'hello' - - messages = text_chan.ListPendingMessages(False, - dbus_interface=cs.CHANNEL_TYPE_TEXT) - assert messages == \ - [(hello_message_id, hello_message_time, foo_handle, - 0, 0, 'hello')], messages + event = q.expect('dbus-signal', signal='MessageReceived') + + msg = event.args[0] + assertEquals(foo_handle, msg[0]['message-sender']) + assertEquals('hello', msg[1]['content']) + + messages = text_chan.Properties.Get(cs.CHANNEL_IFACE_MESSAGES, 'PendingMessages') + assertEquals([msg], messages) # close the channel without acking the message; it comes back @@ -124,20 +115,16 @@ def test(q, bus, conn, stream): # the message is still there - messages = text_chan.ListPendingMessages(False, - dbus_interface=cs.CHANNEL_TYPE_TEXT) - assertEquals( - [(hello_message_id, hello_message_time, foo_handle, 0, 8, 'hello')], - messages) + messages = text_chan.Properties.Get(cs.CHANNEL_IFACE_MESSAGES, 'PendingMessages') + msg[0]['rescued'] = True + assertEquals([msg], messages) # acknowledge it - text_chan.AcknowledgePendingMessages([hello_message_id], - dbus_interface=cs.CHANNEL_TYPE_TEXT) + text_chan.Text.AcknowledgePendingMessages([msg[0]['pending-message-id']]) - messages = text_chan.ListPendingMessages(False, - dbus_interface=cs.CHANNEL_TYPE_TEXT) - assert messages == [] + messages = text_chan.Properties.Get(cs.CHANNEL_IFACE_MESSAGES, 'PendingMessages') + assertEquals([], messages) # close the channel again diff --git a/tests/twisted/text/send-error.py b/tests/twisted/text/send-error.py index 9e9f07b65..40d417f39 100644 --- a/tests/twisted/text/send-error.py +++ b/tests/twisted/text/send-error.py @@ -1,12 +1,11 @@ """ -Test that an incoming for a contact gives both a SendError -and a delivery report on a 1-1 text channel to that contact. +Test that an incoming for a contact gives +a delivery report on a 1-1 text channel to that contact. """ from twisted.words.xish import domish from gabbletest import exec_test -from servicetest import EventPattern import constants as cs import ns @@ -44,26 +43,10 @@ def test_temporary_error(q, bus, conn, stream): stream.send(m) - send_error, received, message_received = q.expect_many( - EventPattern('dbus-signal', signal='SendError'), - EventPattern('dbus-signal', signal='Received'), - EventPattern('dbus-signal', signal='MessageReceived'), - ) + message_received = q.expect('dbus-signal', signal='MessageReceived') expected_send_error = 4 # Too_Long - assert send_error.args[0] == expected_send_error, send_error.args - # FIXME: It doesn't look like it's possible to know what the original - # message type is, given that the type attribute of is 'error' - # for error reports. - #assert send_error.args[2] == 0, send_error.args - assert send_error.args[3] == message_body, send_error.args - - assert received.args[2] == foo_handle, (received.args, foo_handle) - assert received.args[3] == 4, received.args # Channel_Text_Message_Type_Delivery_Report - assert received.args[4] == 2, received.args # Channel_Text_Message_Flag_Non_Text_Content - assert received.args[5] == '', received.args - delivery_report = message_received.args[0] assert len(delivery_report) == 1, delivery_report header = delivery_report[0] @@ -120,26 +103,10 @@ def test_permanent_error(q, bus, conn, stream): stream.send(m) - send_error, received, message_received = q.expect_many( - EventPattern('dbus-signal', signal='SendError'), - EventPattern('dbus-signal', signal='Received'), - EventPattern('dbus-signal', signal='MessageReceived'), - ) + message_received = q.expect('dbus-signal', signal='MessageReceived') expected_send_error = 2 # Invalid_Contact - assert send_error.args[0] == expected_send_error, send_error.args - # FIXME: It doesn't look like it's possible to know what the original - # message type is, given that the type attribute of is 'error' - # for error reports. - #assert send_error.args[2] == 0, send_error.args - assert send_error.args[3] == message_body, send_error.args - - assert received.args[2] == ninja_handle, (received.args, ninja_handle) - assert received.args[3] == 4, received.args # Channel_Text_Message_Type_Delivery_Report - assert received.args[4] == 2, received.args # Channel_Text_Message_Flag_Non_Text_Content - assert received.args[5] == '', received.args - delivery_report = message_received.args[0] assert len(delivery_report) == 1, delivery_report header = delivery_report[0] diff --git a/tests/twisted/text/send-to-correct-resource.py b/tests/twisted/text/send-to-correct-resource.py index 67b470f46..8af7868a8 100644 --- a/tests/twisted/text/send-to-correct-resource.py +++ b/tests/twisted/text/send-to-correct-resource.py @@ -34,7 +34,7 @@ def test(q, bus, conn, stream): m.addElement('body', content="i'm on a beach at Gran Canaria!") stream.send(m) - q.expect('dbus-signal', signal='Received') + q.expect('dbus-signal', signal='MessageReceived') # Now that we got a reply from a particular resource, Gabble should reply # there. @@ -48,7 +48,7 @@ def test(q, bus, conn, stream): m.addElement('body', content="I brought my laptop to the Empathy hackfest") stream.send(m) - q.expect('dbus-signal', signal='Received') + q.expect('dbus-signal', signal='MessageReceived') # Gabble should have updated the resource it's sending to. chan.send_msg_sync("don't get sand in the keyboard") @@ -65,7 +65,7 @@ def test(q, bus, conn, stream): err.addElement((ns.STANZA, 'item-not-found')) stream.send(m) - q.expect('dbus-signal', signal='SendError') + q.expect('dbus-signal', signal='MessageReceived') # So as a result, Gabble should send the next message to the bare JID. chan.send_msg_sync("... i guess my warning was too late") diff --git a/tests/twisted/text/test-chat-state.py b/tests/twisted/text/test-chat-state.py index 85ba95e38..4b0bf8f36 100644 --- a/tests/twisted/text/test-chat-state.py +++ b/tests/twisted/text/test-chat-state.py @@ -317,7 +317,7 @@ def test(q, bus, conn, stream): # support notifications. other_jid = jid + '/Library' stream.send(make_message(other_jid, body='grr, library computers')) - q.expect('dbus-signal', signal='Received') + q.expect('dbus-signal', signal='MessageReceived') # Okay, we should stop sending typing notifications. e = EventPattern('stream-message', to=other_jid) @@ -356,7 +356,7 @@ def test(q, bus, conn, stream): # They reply without a chat state. stream.send(make_message(full_jid, body="posted.")) - q.expect('dbus-signal', signal='Received') + q.expect('dbus-signal', signal='MessageReceived') # Okay, we shouldn't send any more. e = EventPattern('stream-message', to=other_jid) diff --git a/tests/twisted/text/test-text-delayed.py b/tests/twisted/text/test-text-delayed.py index de1060ff6..605b2c148 100644 --- a/tests/twisted/text/test-text-delayed.py +++ b/tests/twisted/text/test-text-delayed.py @@ -8,7 +8,7 @@ import datetime from twisted.words.xish import domish from gabbletest import exec_test -from servicetest import EventPattern, assertEquals +from servicetest import assertEquals import constants as cs def test(q, bus, conn, stream): @@ -30,14 +30,7 @@ def test(q, bus, conn, stream): jid = conn.inspect_contact_sync(props[cs.TARGET_HANDLE]) assertEquals('foo@bar.com', jid) - received, message_received = q.expect_many( - EventPattern('dbus-signal', signal='Received'), - EventPattern('dbus-signal', signal='MessageReceived'), - ) - - assert (str(datetime.datetime.utcfromtimestamp(received.args[1])) - == '2007-05-17 16:15:01') - assert received.args[5] == 'hello' + message_received = q.expect('dbus-signal', signal='MessageReceived') message = message_received.args[0] header = message[0] diff --git a/tests/twisted/text/test-text.py b/tests/twisted/text/test-text.py index c0b734cf0..a6c42029f 100644 --- a/tests/twisted/text/test-text.py +++ b/tests/twisted/text/test-text.py @@ -44,19 +44,7 @@ def test(q, bus, conn, stream): assertEquals(props[cs.INITIATOR_HANDLE], channel_props['InitiatorHandle']) assertEquals(jid, channel_props['InitiatorID']) - received, message_received = q.expect_many( - EventPattern('dbus-signal', signal='Received'), - EventPattern('dbus-signal', signal='MessageReceived'), - ) - - # Check that C.T.Text.Received looks right - # message type: normal - assert received.args[3] == 0 - # flags: none - assert received.args[4] == 0 - # body - assert received.args[5] == 'hello' - + message_received = q.expect('dbus-signal', signal='MessageReceived') # Check that C.I.Messages.MessageReceived looks right. message = message_received.args[0] @@ -100,9 +88,8 @@ def test(q, bus, conn, stream): sent_token = text_chan.Messages.SendMessage(greeting, dbus.UInt32(0)) - stream_message, sent, message_sent = q.expect_many( + stream_message, message_sent = q.expect_many( EventPattern('stream-message'), - EventPattern('dbus-signal', signal='Sent'), EventPattern('dbus-signal', signal='MessageSent'), ) @@ -126,16 +113,11 @@ def test(q, bus, conn, stream): assert message_sent.args[2] == sent_token - assert sent.args[1] == 2, sent.args # Notice - assert sent.args[2] == u'what up', sent.args - - # Send a message using Channel.Type.Text API text_chan.Text.Send(0, 'goodbye') - stream_message, sent, message_sent = q.expect_many( + stream_message, message_sent = q.expect_many( EventPattern('stream-message'), - EventPattern('dbus-signal', signal='Sent'), EventPattern('dbus-signal', signal='MessageSent'), ) @@ -156,9 +138,6 @@ def test(q, bus, conn, stream): assert body['content-type'] == 'text/plain', body assert body['content'] == u'goodbye', body - assert sent.args[1] == 0, sent.args # message type normal - assert sent.args[2] == u'goodbye', sent.args - # And now let's try a message with a malformed type='' attribute. malformed = elem( 'message', from_='foo@bar.com/fubber', type="'")( -- cgit v1.2.3