[telepathy-gabble/master] factor out IBB specific test code to ReceiveFileTestIBB
Guillaume Desmottes
guillaume.desmottes at collabora.co.uk
Fri Apr 3 09:25:48 PDT 2009
---
.../twisted/file-transfer/file_transfer_helper.py | 54 ++++++++++++++------
tests/twisted/file-transfer/test-receive-file.py | 4 +-
2 files changed, 41 insertions(+), 17 deletions(-)
diff --git a/tests/twisted/file-transfer/file_transfer_helper.py b/tests/twisted/file-transfer/file_transfer_helper.py
index a14dda7..28b078a 100644
--- a/tests/twisted/file-transfer/file_transfer_helper.py
+++ b/tests/twisted/file-transfer/file_transfer_helper.py
@@ -165,7 +165,7 @@ class ReceiveFileTest(FileTransferTest):
def send_ft_offer_iq(self):
iq, si = create_si_offer(self.stream, self.contact_name, 'test at localhost/Resource', 'alpha',
- ns.FILE_TRANSFER, [ns.IBB])
+ ns.FILE_TRANSFER, [self.bytestream])
file_node = si.addElement((ns.FILE_TRANSFER,'file'))
file_node['name'] = self.file.name
@@ -227,16 +227,9 @@ class ReceiveFileTest(FileTransferTest):
# Got SI reply
bytestream = parse_si_reply(iq_event.stanza)
- assert bytestream == ns.IBB
+ assert bytestream == self.bytestream
- # open IBB bytestream
- send_ibb_open(self.stream, self.contact_name, 'test at localhost/Resource',
- 'alpha', 4096)
-
- _, offset_event, state_event = self.q.expect_many(
- EventPattern('stream-iq', iq_type='result'),
- EventPattern('dbus-signal', signal='InitialOffsetDefined'),
- EventPattern('dbus-signal', signal='FileTransferStateChanged'))
+ offset_event, state_event = self.open_bytestream()
offset = offset_event.args[0]
# We don't support resume
@@ -247,9 +240,15 @@ class ReceiveFileTest(FileTransferTest):
assert reason == FT_STATE_CHANGE_REASON_NONE
# send the beginning of the file (client didn't connect to socket yet)
- send_ibb_msg_data(self.stream, self.contact_name, 'test at localhost/Resource',
- 'alpha', 0, self.file.data[:2])
- sync_stream(self.q, self.stream)
+ self.send_data(self.file.data[:2])
+
+ def open_bytestream(self):
+ # Open the bytestream and return the InitialOffsetDefined and
+ # FileTransferStateChanged events
+ raise NotImplemented
+
+ def send_data(self, data):
+ raise NotImplemented
def receive_file(self):
# Connect to Salut's socket
@@ -257,8 +256,7 @@ class ReceiveFileTest(FileTransferTest):
s.connect(self.address)
# send the rest of the file using IBB
- send_ibb_msg_data(self.stream, self.contact_name, 'test at localhost/Resource',
- 'alpha', 0, self.file.data[2:])
+ self.send_data(self.file.data[2:])
self._read_file_from_socket(s)
@@ -285,6 +283,32 @@ class ReceiveFileTest(FileTransferTest):
assert state == FT_STATE_COMPLETED
assert reason == FT_STATE_CHANGE_REASON_NONE
+class ReceiveFileTestIBB(ReceiveFileTest):
+ def __init__(self):
+ ReceiveFileTest.__init__(self)
+
+ self.bytestream = ns.IBB
+ self.seq = 0
+
+ def open_bytestream(self):
+ # open IBB bytestream
+ send_ibb_open(self.stream, self.contact_name, 'test at localhost/Resource',
+ 'alpha', 4096)
+
+ _, offset_event, state_event = self.q.expect_many(
+ EventPattern('stream-iq', iq_type='result'),
+ EventPattern('dbus-signal', signal='InitialOffsetDefined'),
+ EventPattern('dbus-signal', signal='FileTransferStateChanged'))
+
+ return offset_event, state_event
+
+ def send_data(self, data):
+ send_ibb_msg_data(self.stream, self.contact_name, 'test at localhost/Resource',
+ 'alpha', 0, data)
+ sync_stream(self.q, self.stream)
+
+ self.seq += 1
+
class SendFileTest(FileTransferTest):
def __init__(self):
FileTransferTest.__init__(self)
diff --git a/tests/twisted/file-transfer/test-receive-file.py b/tests/twisted/file-transfer/test-receive-file.py
index 73caf5e..dc74704 100644
--- a/tests/twisted/file-transfer/test-receive-file.py
+++ b/tests/twisted/file-transfer/test-receive-file.py
@@ -1,6 +1,6 @@
from gabbletest import exec_test
-from file_transfer_helper import ReceiveFileTest
+from file_transfer_helper import ReceiveFileTestIBB
if __name__ == '__main__':
- test = ReceiveFileTest()
+ test = ReceiveFileTestIBB()
exec_test(test.test)
--
1.5.6.5
More information about the telepathy-commits
mailing list