[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