[telepathy-gabble/master] factor out IBB specific test code to SendFileTestIBB

Guillaume Desmottes guillaume.desmottes at collabora.co.uk
Fri Apr 3 09:25:47 PDT 2009


---
 .../twisted/file-transfer/file_transfer_helper.py  |   45 +++++++++++++-------
 .../test-send-file-provide-immediately.py          |    8 ++--
 .../test-send-file-wait-to-provide.py              |   10 ++--
 3 files changed, 38 insertions(+), 25 deletions(-)

diff --git a/tests/twisted/file-transfer/file_transfer_helper.py b/tests/twisted/file-transfer/file_transfer_helper.py
index 28b078a..cbac26d 100644
--- a/tests/twisted/file-transfer/file_transfer_helper.py
+++ b/tests/twisted/file-transfer/file_transfer_helper.py
@@ -409,32 +409,43 @@ class SendFileTest(FileTransferTest):
                 SOCKET_ACCESS_CONTROL_LOCALHOST, "")
 
     def client_accept_file(self):
-        # accept using IBB
-        result = create_si_reply(self.stream, self.iq, 'test at localhost/Resource', ns.IBB)
+        # accept SI offer
+        result = create_si_reply(self.stream, self.iq, 'test at localhost/Resource',
+            self.bytestream)
         self.stream.send(result)
 
-        # Wait IBB open iq
-        event = self.q.expect('stream-iq', iq_type='set', to=self.contact_full_jid)
-        sid = parse_ibb_open(event.stanza)
-        assert sid == self.stream_id
-
-        # open IBB bytestream
-        acknowledge_iq(self.stream, event.stanza)
+        self.wait_bytestream_open()
 
-    def _get_http_response(self):
-        response = self.http.getresponse()
-        assert (response.status, response.reason) == (200, 'OK')
-        data = response.read(self.file.size)
-        # Did we received the right file?
+    def wait_bytestream_open(self):
+        raise NotImplemented
 
     def send_file(self):
         s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
         s.connect(self.address)
         s.send(self.file.data)
 
-        self._receive_file_ibb()
+        self.receive_file()
+
+    def receive_file(self):
+        raise NotImplemented
+
+class SendFileTestIBB(SendFileTest):
+    def __init__(self):
+        SendFileTest.__init__(self)
+
+        self.bytestream = ns.IBB
+
+    def wait_bytestream_open(self):
+        # Wait IBB open iq
+        event = self.q.expect('stream-iq', iq_type='set', to=self.contact_full_jid)
+        sid = parse_ibb_open(event.stanza)
+        assert sid == self.stream_id
 
-    def _receive_file_ibb(self):
+        # open IBB bytestream
+        acknowledge_iq(self.stream, event.stanza)
+
+    def receive_file(self):
+        # FIXME: try to share more code with parent class
         data = ''
         self.count = 0
 
@@ -466,3 +477,5 @@ class SendFileTest(FileTransferTest):
 
         # sender finish to send the file and so close the bytestream
         acknowledge_iq(self.stream, close_event.stanza)
+
+
diff --git a/tests/twisted/file-transfer/test-send-file-provide-immediately.py b/tests/twisted/file-transfer/test-send-file-provide-immediately.py
index b6545a4..2fb0315 100644
--- a/tests/twisted/file-transfer/test-send-file-provide-immediately.py
+++ b/tests/twisted/file-transfer/test-send-file-provide-immediately.py
@@ -1,17 +1,17 @@
 from gabbletest import exec_test
-from file_transfer_helper import SendFileTest, CHANNEL_TYPE_FILE_TRANSFER, FT_STATE_PENDING, \
+from file_transfer_helper import SendFileTestIBB, CHANNEL_TYPE_FILE_TRANSFER, FT_STATE_PENDING, \
     FT_STATE_CHANGE_REASON_NONE, FT_STATE_OPEN
 
-class SendFileTransferProvideImmediately(SendFileTest):
+class SendFileTransferProvideImmediately(SendFileTestIBB):
     def provide_file(self):
-        SendFileTest.provide_file(self)
+        SendFileTestIBB.provide_file(self)
 
         # state is still Pending as remote didn't accept the transfer yet
         state = self.ft_props.Get(CHANNEL_TYPE_FILE_TRANSFER, 'State')
         assert state == FT_STATE_PENDING
 
     def client_accept_file(self):
-        SendFileTest.client_accept_file(self)
+        SendFileTestIBB.client_accept_file(self)
 
         e = self.q.expect('dbus-signal', signal='InitialOffsetDefined')
         offset = e.args[0]
diff --git a/tests/twisted/file-transfer/test-send-file-wait-to-provide.py b/tests/twisted/file-transfer/test-send-file-wait-to-provide.py
index 51c898b..5446767 100644
--- a/tests/twisted/file-transfer/test-send-file-wait-to-provide.py
+++ b/tests/twisted/file-transfer/test-send-file-wait-to-provide.py
@@ -1,11 +1,11 @@
 from gabbletest import exec_test
-from file_transfer_helper import SendFileTest, CHANNEL_TYPE_FILE_TRANSFER, \
+from file_transfer_helper import SendFileTestIBB, CHANNEL_TYPE_FILE_TRANSFER, \
     FT_STATE_PENDING, FT_STATE_ACCEPTED, FT_STATE_OPEN, FT_STATE_CHANGE_REASON_REQUESTED, \
     FT_STATE_CHANGE_REASON_NONE
 
-class SendFileTransferWaitToProvideTest(SendFileTest):
+class SendFileTransferWaitToProvideTest(SendFileTestIBB):
     def __init__(self):
-        SendFileTest.__init__(self)
+        SendFileTestIBB.__init__(self)
 
         self._actions =  [self.connect, self.check_ft_available, self.announce_contact,
             self.check_ft_available, self.request_ft_channel, self.create_ft_channel, self.got_send_iq,
@@ -16,7 +16,7 @@ class SendFileTransferWaitToProvideTest(SendFileTest):
         state = self.ft_props.Get(CHANNEL_TYPE_FILE_TRANSFER, 'State')
         assert state == FT_STATE_PENDING
 
-        SendFileTest.client_accept_file(self)
+        SendFileTestIBB.client_accept_file(self)
 
         # Remote accepted the transfer
         e = self.q.expect('dbus-signal', signal='FileTransferStateChanged')
@@ -25,7 +25,7 @@ class SendFileTransferWaitToProvideTest(SendFileTest):
         assert reason == FT_STATE_CHANGE_REASON_NONE
 
     def provide_file(self):
-        SendFileTest.provide_file(self)
+        SendFileTestIBB.provide_file(self)
 
         e = self.q.expect('dbus-signal', signal='InitialOffsetDefined')
         offset = e.args[0]
-- 
1.5.6.5




More information about the telepathy-commits mailing list