[Telepathy-commits] [telepathy-salut/master] use a _actions list instead of a calling each function in run()

Guillaume Desmottes guillaume.desmottes at collabora.co.uk
Mon Nov 24 09:32:39 PST 2008


---
 tests/twisted/avahi/file_transfer_helper.py        |   51 ++++++++-----------
 tests/twisted/avahi/test-receive-and-send-file.py  |   40 ++++++---------
 .../avahi/test-send-file-to-unknown-contact.py     |    8 ++-
 .../avahi/test-send-file-wait-to-provide.py        |   21 +++-----
 4 files changed, 50 insertions(+), 70 deletions(-)

diff --git a/tests/twisted/avahi/file_transfer_helper.py b/tests/twisted/avahi/file_transfer_helper.py
index 5cb8cb2..54a4208 100644
--- a/tests/twisted/avahi/file_transfer_helper.py
+++ b/tests/twisted/avahi/file_transfer_helper.py
@@ -92,7 +92,7 @@ class FileTransferTest(object):
         self.self_handle = self.conn.GetSelfHandle()
         self.self_handle_name =  self.conn.InspectHandles(HT_CONTACT, [self.self_handle])[0]
 
-    def announce_contact(self, name):
+    def announce_contact(self, name=CONTACT_NAME):
         basic_txt = { "txtvers": "1", "status": "avail" }
 
         self.contact_name = '%s@%s' % (name, get_host_name())
@@ -100,7 +100,7 @@ class FileTransferTest(object):
 
         AvahiAnnouncer(self.contact_name, "_presence._tcp", port, basic_txt)
 
-    def wait_for_contact(self, name):
+    def wait_for_contact(self, name=CONTACT_NAME):
         publish_handle = self.conn.RequestHandles(HT_CONTACT_LIST, ["publish"])[0]
         publish = self.conn.RequestChannel(
                 "org.freedesktop.Telepathy.Channel.Type.ContactList",
@@ -130,9 +130,20 @@ class FileTransferTest(object):
         self.bus = bus
         self.conn = conn
 
-        self.run()
+        for fct in self._actions:
+            # stop if a function returns True
+            if fct():
+                break
 
 class ReceiveFileTest(FileTransferTest):
+    def __init__(self):
+        FileTransferTest.__init__(self)
+
+        self._actions = [self.connect, self.announce_contact, self.wait_for_contact,
+            self.connect_to_salut, self.setup_http_server, self.send_ft_offer_iq,
+            self.check_new_channel, self.create_ft_channel, self.accept_file,
+            self.receive_file, self.close_channel]
+
     def connect_to_salut(self):
         AvahiListener(self.q).listen_for_service("_presence._tcp")
         e = self.q.expect('service-added', name = self.self_handle_name,
@@ -263,20 +274,15 @@ class ReceiveFileTest(FileTransferTest):
         assert state == FT_STATE_COMPLETED
         assert reason == FT_STATE_CHANGE_REASON_NONE
 
-    def run(self):
-        self.connect()
-        self.announce_contact(self.CONTACT_NAME)
-        self.wait_for_contact(self.CONTACT_NAME)
-        self.connect_to_salut()
-        self.setup_http_server()
-        self.send_ft_offer_iq()
-        self.check_new_channel()
-        self.create_ft_channel()
-        self.accept_file()
-        self.receive_file()
-        self.close_channel()
-
 class SendFileTest(FileTransferTest):
+    def __init__(self):
+        FileTransferTest.__init__(self)
+
+        self._actions = [self.connect, self.announce_contact, self.wait_for_contact,
+            self.check_ft_available, self.request_ft_channel, self.create_ft_channel,
+            self.got_send_iq, self.provide_file, self.client_request_file, self.send_file,
+            self.close_channel]
+
     def check_ft_available(self):
         properties = self.conn.GetAll(
                 CONNECTION_INTERFACE_REQUESTS,
@@ -405,16 +411,3 @@ class SendFileTest(FileTransferTest):
         state, reason = e.args
         assert state == FT_STATE_COMPLETED
         assert reason == FT_STATE_CHANGE_REASON_NONE
-
-    def run(self):
-        self.connect()
-        self.announce_contact(self.CONTACT_NAME)
-        self.wait_for_contact(self.CONTACT_NAME)
-        self.check_ft_available()
-        self.request_ft_channel()
-        self.create_ft_channel()
-        self.got_send_iq()
-        self.provide_file()
-        self.client_request_file()
-        self.send_file()
-        self.close_channel()
diff --git a/tests/twisted/avahi/test-receive-and-send-file.py b/tests/twisted/avahi/test-receive-and-send-file.py
index b20c007..4bcdd84 100644
--- a/tests/twisted/avahi/test-receive-and-send-file.py
+++ b/tests/twisted/avahi/test-receive-and-send-file.py
@@ -7,6 +7,22 @@ from file_transfer_helper import ReceiveFileTest, SendFileTest
 from twisted.words.xish import xpath
 
 class ReceiveAndSendFileTest(ReceiveFileTest, SendFileTest):
+    def __init__(self):
+        ReceiveFileTest.__init__(self)
+        SendFileTest.__init__(self)
+
+        self._actions = [self.connect, self.announce_contact,self.wait_for_contact,
+                self.connect_to_salut,
+                # receive file
+                self.setup_http_server, self.send_ft_offer_iq, self.check_new_channel,
+                self.create_ft_channel, self.accept_file, self.receive_file,
+                self.close_channel,
+
+                # now send a file. We'll reuse the same XMPP connection
+               self.request_ft_channel, self.create_ft_channel, self.got_send_iq,
+               self.provide_file, self.client_request_file, self.send_file,
+               self.close_channel]
+
     def got_send_iq(self):
         # reuse the existing XMPP connection
         self.incoming = self.outbound
@@ -15,30 +31,6 @@ class ReceiveAndSendFileTest(ReceiveFileTest, SendFileTest):
 
         self._check_oob_iq(iq_event)
 
-    def run(self):
-        self.connect()
-        self.announce_contact(self.CONTACT_NAME)
-        self.wait_for_contact(self.CONTACT_NAME)
-        self.connect_to_salut()
-
-        # receive file
-        self.setup_http_server()
-        self.send_ft_offer_iq()
-        self.check_new_channel()
-        self.create_ft_channel()
-        self.accept_file()
-        self.receive_file()
-        self.close_channel()
-
-        # now send a file. We'll reuse the same XMPP connection
-        self.request_ft_channel()
-        self.create_ft_channel()
-        self.got_send_iq()
-        self.provide_file()
-        self.client_request_file()
-        self.send_file()
-        self.close_channel()
-
 if __name__ == '__main__':
     test = ReceiveAndSendFileTest()
     exec_test(test.test)
diff --git a/tests/twisted/avahi/test-send-file-to-unknown-contact.py b/tests/twisted/avahi/test-send-file-to-unknown-contact.py
index b3e6df3..2f84727 100644
--- a/tests/twisted/avahi/test-send-file-to-unknown-contact.py
+++ b/tests/twisted/avahi/test-send-file-to-unknown-contact.py
@@ -6,10 +6,12 @@ from file_transfer_helper import SendFileTest, HT_CONTACT
 from avahitest import get_host_name
 
 class SendFileTransferToUnknownContactTest(SendFileTest):
-    def run(self):
-        self.connect()
-        self.check_ft_available()
+    def __init__(self):
+        SendFileTest.__init__(self)
 
+        self._actions = [self.connect, self.check_ft_available, self.my_request_ft_channel]
+
+    def my_request_ft_channel(self):
         self.contact_name = '%s@%s' % (self.CONTACT_NAME, get_host_name())
         self.handle = self.conn.RequestHandles(HT_CONTACT, [self.contact_name])[0]
 
diff --git a/tests/twisted/avahi/test-send-file-wait-to-provide.py b/tests/twisted/avahi/test-send-file-wait-to-provide.py
index 8ffec95..6ddc76c 100644
--- a/tests/twisted/avahi/test-send-file-wait-to-provide.py
+++ b/tests/twisted/avahi/test-send-file-wait-to-provide.py
@@ -4,6 +4,13 @@ from file_transfer_helper import SendFileTest, CHANNEL_TYPE_FILE_TRANSFER, \
     FT_STATE_CHANGE_REASON_NONE
 
 class SendFileTransferWaitToProvideTest(SendFileTest):
+    def __init__(self):
+        SendFileTest.__init__(self)
+
+        self._actions =  [self.connect, self.check_ft_available, self.announce_contact, self.wait_for_contact,
+            self.check_ft_available, self.request_ft_channel, self.create_ft_channel, self.got_send_iq,
+            self.client_request_file, self.provide_file, self.send_file, self.close_channel]
+
     def client_request_file(self):
         # state is still Pending as remote didn't accept the transfer yet
         state = self.ft_props.Get(CHANNEL_TYPE_FILE_TRANSFER, 'State')
@@ -31,20 +38,6 @@ class SendFileTransferWaitToProvideTest(SendFileTest):
         assert state == FT_STATE_OPEN
         assert reason == FT_STATE_CHANGE_REASON_REQUESTED
 
-    def run(self):
-        self.connect()
-        self.check_ft_available()
-        self.announce_contact(self.CONTACT_NAME)
-        self.wait_for_contact(self.CONTACT_NAME)
-        self.check_ft_available()
-        self.request_ft_channel()
-        self.create_ft_channel()
-        self.got_send_iq()
-        self.client_request_file()
-        self.provide_file()
-        self.send_file()
-        self.close_channel()
-
 if __name__ == '__main__':
     test = SendFileTransferWaitToProvideTest()
     exec_test(test.test)
-- 
1.5.6.5




More information about the Telepathy-commits mailing list