[telepathy-salut/master] add test-set-presence.py

Guillaume Desmottes guillaume.desmottes at collabora.co.uk
Mon Apr 13 08:17:52 PDT 2009


---
 tests/twisted/Makefile.am                |    1 +
 tests/twisted/avahi/test-set-presence.py |   56 ++++++++++++++++++++++++++++++
 2 files changed, 57 insertions(+), 0 deletions(-)
 create mode 100644 tests/twisted/avahi/test-set-presence.py

diff --git a/tests/twisted/Makefile.am b/tests/twisted/Makefile.am
index 8dde8f7..9a4083a 100644
--- a/tests/twisted/Makefile.am
+++ b/tests/twisted/Makefile.am
@@ -42,6 +42,7 @@ TWISTED_AVAHI_TESTS = \
 	avahi/test-request-muc.py \
 	avahi/test-request-muc-tubes.py \
         avahi/test-roomlist.py \
+	avahi/test-set-presence.py \
 	avahi/test-offer-private-stream-tube.py \
 	avahi/test-two-muc-stream-tubes.py \
 	avahi/test-two-private-stream-tubes.py \
diff --git a/tests/twisted/avahi/test-set-presence.py b/tests/twisted/avahi/test-set-presence.py
new file mode 100644
index 0000000..4a9dd7b
--- /dev/null
+++ b/tests/twisted/avahi/test-set-presence.py
@@ -0,0 +1,56 @@
+
+"""
+Test requesting of muc text channels using the old and new request API.
+"""
+
+import dbus
+import avahi
+
+from saluttest import exec_test
+from avahitest import AvahiListener, txt_get_key
+import constants as cs
+
+def test(q, bus, conn):
+    conn.Connect()
+    q.expect('dbus-signal', signal='StatusChanged', args=[cs.CONN_STATUS_CONNECTED, cs.CSR_NONE_SPECIFIED])
+
+    self_handle = conn.GetSelfHandle()
+    self_handle_name = conn.InspectHandles(cs.HT_CONTACT, [self_handle])[0]
+
+    AvahiListener(q).listen_for_service("_presence._tcp")
+    e = q.expect('service-added', name = self_handle_name, protocol = avahi.PROTO_INET)
+    service = e.service
+
+    service.resolve()
+    e = q.expect('service-resolved', service=service)
+
+    statuses = conn.Get(cs.CONN_IFACE_SIMPLE_PRESENCE, 'Statuses', dbus_interface=dbus.PROPERTIES_IFACE)
+    assert 'available' in statuses
+    assert 'dnd' in statuses
+    assert 'away' in statuses
+
+    def wait_for_presence_announce():
+        e = q.expect('service-resolved', service=service)
+        return txt_get_key(e.txt, 'status'), txt_get_key(e.txt, 'msg')
+
+    simple_presence = dbus.Interface(conn, cs.CONN_IFACE_SIMPLE_PRESENCE)
+    # set your status to away
+    simple_presence.SetPresence('away', 'At the pub')
+
+    status, msg = wait_for_presence_announce()
+    assert status == 'away', status
+    assert msg == 'At the pub', msg
+
+    # set your status to available without msg
+    simple_presence.SetPresence('available', '')
+
+    status, msg = wait_for_presence_announce()
+    assert status == 'avail', status
+    assert msg is None, msg
+
+    conn.Disconnect()
+    q.expect('dbus-signal', signal='StatusChanged', args=[cs.CONN_STATUS_DISCONNECTED, cs.CSR_REQUESTED])
+
+if __name__ == '__main__':
+    exec_test(test)
+
-- 
1.5.6.5




More information about the telepathy-commits mailing list