[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