[Telepathy-commits] [telepathy-gabble/master] add optionnal len arg to get_data
Guillaume Desmottes
guillaume.desmottes at collabora.co.uk
Mon Mar 9 10:07:36 PDT 2009
---
tests/twisted/bytestream.py | 40 ++++++++++++++++++++++++----------------
1 files changed, 24 insertions(+), 16 deletions(-)
diff --git a/tests/twisted/bytestream.py b/tests/twisted/bytestream.py
index ade4b6c..e1aa9eb 100644
--- a/tests/twisted/bytestream.py
+++ b/tests/twisted/bytestream.py
@@ -64,7 +64,7 @@ class Bytestream(object):
def wait_bytestream_open(self):
raise NotImplemented
- def get_data(self):
+ def get_data(self, size=0):
raise NotImplemented
def wait_bytestream_closed(self):
@@ -282,7 +282,8 @@ class BytestreamS5B(Bytestream):
self._send_socks5_reply(id, jid)
- def get_data(self):
+ def get_data(self, size=0):
+ # TODO: check size
e = self.q.expect('s5b-data-received', transport=self.transport)
return e.data
@@ -403,22 +404,29 @@ class BytestreamIBB(Bytestream):
# open IBB bytestream
acknowledge_iq(self.stream, event.stanza)
- def get_data(self):
+ def get_data(self, size=0):
# wait for IBB stanza. Gabble always uses IQ
- ibb_event = self.q.expect('stream-iq', query_ns=ns.IBB)
- data_nodes = xpath.queryForNodes('/iq/data[@xmlns="%s"]' % ns.IBB,
- ibb_event.stanza)
- assert data_nodes is not None
- assert len(data_nodes) == 1
- ibb_data = data_nodes[0]
- binary = base64.b64decode(str(ibb_data))
+ binary = ''
+ received = False
+ while not received:
+ ibb_event = self.q.expect('stream-iq', query_ns=ns.IBB)
- assert ibb_data['sid'] == self.stream_id
+ data_nodes = xpath.queryForNodes('/iq/data[@xmlns="%s"]' % ns.IBB,
+ ibb_event.stanza)
+ assert data_nodes is not None
+ assert len(data_nodes) == 1
+ ibb_data = data_nodes[0]
+ binary += base64.b64decode(str(ibb_data))
- # ack the IQ
- result = make_result_iq(self.stream, ibb_event.stanza)
- result.send()
+ assert ibb_data['sid'] == self.stream_id
+
+ # ack the IQ
+ result = make_result_iq(self.stream, ibb_event.stanza)
+ result.send()
+
+ if len(binary) >= size or size == 0:
+ received = True
return binary
@@ -519,8 +527,8 @@ class BytestreamSIFallback(Bytestream):
def send_data(self, data):
self.used.send_data(data)
- def get_data(self):
- return self.used.get_data()
+ def get_data(self, size=0):
+ return self.used.get_data(size)
def create_si_reply(self, iq):
result = make_result_iq(self.stream, iq)
--
1.5.6.5
More information about the telepathy-commits
mailing list