summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorTrever Fischer <tdfischer@fedoraproject.org>2012-02-23 16:32:09 -0500
committerTrever Fischer <tdfischer@fedoraproject.org>2012-03-07 17:16:56 -0500
commit281b73e00360cc88d301b7cd6e0bb9d80a975c92 (patch)
treeed7727561fc2ad61f9f415135290875cd439c1d8 /tests
parentb1bea350bb1a86122e50af3a0ce2570940ad89d1 (diff)
downloadtelepathy-salut-281b73e00360cc88d301b7cd6e0bb9d80a975c92.tar.gz
Merge ipv4/6 testing into the file transfer tester so any test can be ran without unix sockets
Diffstat (limited to 'tests')
-rw-r--r--tests/twisted/avahi/file-transfer/file_transfer_helper.py46
-rw-r--r--tests/twisted/avahi/file-transfer/receive-file-and-disconnect.py2
-rw-r--r--tests/twisted/avahi/file-transfer/receive-file-and-sender-disconnect-while-transfering.py2
-rw-r--r--tests/twisted/avahi/file-transfer/receive-file-and-xmpp-disconnect.py2
-rw-r--r--tests/twisted/avahi/file-transfer/receive-file-cancelled-immediately.py2
-rw-r--r--tests/twisted/avahi/file-transfer/receive-file-ipv4.py77
-rw-r--r--tests/twisted/avahi/file-transfer/receive-file-ipv6.py64
-rw-r--r--tests/twisted/avahi/file-transfer/receive-file-not-found.py2
-rw-r--r--tests/twisted/avahi/file-transfer/send-file-ipv4.py25
-rw-r--r--tests/twisted/avahi/file-transfer/send-file-ipv6.py25
10 files changed, 47 insertions, 200 deletions
diff --git a/tests/twisted/avahi/file-transfer/file_transfer_helper.py b/tests/twisted/avahi/file-transfer/file_transfer_helper.py
index dcfe7202..fee320e4 100644
--- a/tests/twisted/avahi/file-transfer/file_transfer_helper.py
+++ b/tests/twisted/avahi/file-transfer/file_transfer_helper.py
@@ -8,6 +8,7 @@ import httplib
import urlparse
import sys
import os
+import SocketServer
from avahitest import AvahiAnnouncer, AvahiListener, get_host_name
from saluttest import wait_for_contact_in_publish
@@ -58,9 +59,20 @@ class FileTransferTest(object):
metadata = {'loads': ['of', 'blahblah', 'stuff'],
'mental': ['data', 'sidf']}
- def __init__(self):
+ def __init__(self, ft_protocol=cs.SOCKET_ADDRESS_TYPE_UNIX):
self.file = File()
self.contact_service = None
+ self.ft_proto = ft_protocol
+
+ def _get_socket_address_family(self):
+ if self.ft_proto == cs.SOCKET_ADDRESS_TYPE_IPV4:
+ return socket.AF_INET
+ elif self.ft_proto == cs.SOCKET_ADDRESS_TYPE_IPV6:
+ return socket.AF_INET6
+ elif self.ft_proto == cs.SOCKET_ADDRESS_TYPE_UNIX:
+ return socket.AF_UNIX
+
+ assert False
def connect(self):
self.conn.Connect()
@@ -144,8 +156,8 @@ class FileTransferTest(object):
self.contact_service.stop()
class ReceiveFileTest(FileTransferTest):
- def __init__(self):
- FileTransferTest.__init__(self)
+ def __init__(self, ft_protocol = cs.SOCKET_ADDRESS_TYPE_UNIX):
+ FileTransferTest.__init__(self, ft_protocol)
self._actions = [self.connect, self.announce_contact, self.wait_for_contact,
self.connect_to_salut, self.setup_http_server, self.send_ft_offer_iq,
@@ -191,7 +203,12 @@ class ReceiveFileTest(FileTransferTest):
self.httpd = self._get_http_server_class()(('', 0), HTTPHandler)
def _get_http_server_class(self):
- return BaseHTTPServer.HTTPServer
+ if self.ft_proto == cs.SOCKET_ADDRESS_TYPE_UNIX:
+ return BaseHTTPServer.HTTPServer
+ class HTTPServer(SocketServer.ThreadingMixIn, BaseHTTPServer.HTTPServer):
+ address_family = self._get_socket_address_family()
+
+ return HTTPServer
def send_ft_offer_iq(self):
iq = domish.Element((None, 'iq'))
@@ -286,8 +303,8 @@ class ReceiveFileTest(FileTransferTest):
cs.CHANNEL_TYPE_FILE_TRANSFER, 'URI', 'badger://snake')
self.q.expect('dbus-error', method='Set', name=cs.INVALID_ARGUMENT)
- def accept_file(self, type = cs.SOCKET_ADDRESS_TYPE_UNIX):
- self.address = self.ft_channel.AcceptFile(type,
+ def accept_file(self):
+ self.address = self.ft_channel.AcceptFile(self.ft_proto,
cs.SOCKET_ACCESS_CONTROL_LOCALHOST, "", 5, byte_arrays=True)
e = self.q.expect('dbus-signal', signal='FileTransferStateChanged')
@@ -326,9 +343,9 @@ class ReceiveFileTest(FileTransferTest):
assert state == cs.FT_STATE_COMPLETED
assert reason == cs.FT_STATE_CHANGE_REASON_NONE
- def receive_file(self, type=socket.AF_UNIX):
+ def receive_file(self):
# Connect to Salut's socket
- s = socket.socket(type, socket.SOCK_STREAM)
+ s = socket.socket(self._get_socket_address_family(), socket.SOCK_STREAM)
s.connect(self.address)
self.httpd.handle_request()
@@ -339,8 +356,8 @@ class ReceiveFileTest(FileTransferTest):
self._read_file_from_socket(s)
class SendFileTest(FileTransferTest):
- def __init__(self):
- FileTransferTest.__init__(self)
+ def __init__(self, ft_protocol=cs.SOCKET_ADDRESS_TYPE_UNIX):
+ FileTransferTest.__init__(self, ft_protocol)
self._actions = [self.connect, self.announce_contact, self.wait_for_contact,
self.check_ft_available, self.request_ft_channel, self.create_ft_channel,
@@ -466,10 +483,11 @@ class SendFileTest(FileTransferTest):
else:
assert ns.TP_FT_METADATA not in forms
- def provide_file(self, type = cs.SOCKET_ADDRESS_TYPE_UNIX):
- self.address = self.ft_channel.ProvideFile(type,
+ def provide_file(self):
+ self.address = self.ft_channel.ProvideFile(self.ft_proto,
cs.SOCKET_ACCESS_CONTROL_LOCALHOST, "", byte_arrays=True)
+
def client_request_file(self):
# Connect HTTP client to the CM and request the file
self.http = httplib.HTTPConnection(self.host)
@@ -482,8 +500,8 @@ class SendFileTest(FileTransferTest):
# Did we received the right file?
assert data == self.file.data
- def send_file(self, socketType = socket.AF_UNIX):
- s = socket.socket(socketType, socket.SOCK_STREAM)
+ def send_file(self):
+ s = socket.socket(self._get_socket_address_family(), socket.SOCK_STREAM)
s.connect(self.address)
s.send(self.file.data)
diff --git a/tests/twisted/avahi/file-transfer/receive-file-and-disconnect.py b/tests/twisted/avahi/file-transfer/receive-file-and-disconnect.py
index 39dca216..7b35cfe9 100644
--- a/tests/twisted/avahi/file-transfer/receive-file-and-disconnect.py
+++ b/tests/twisted/avahi/file-transfer/receive-file-and-disconnect.py
@@ -5,7 +5,7 @@ from file_transfer_helper import ReceiveFileTest
class ReceiveFileAndDisconnectTest(ReceiveFileTest):
def receive_file(self):
- s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
+ s = socket.socket(self._get_socket_address_family(), socket.SOCK_STREAM)
s.connect(self.address)
# disconnect
diff --git a/tests/twisted/avahi/file-transfer/receive-file-and-sender-disconnect-while-transfering.py b/tests/twisted/avahi/file-transfer/receive-file-and-sender-disconnect-while-transfering.py
index fef5cf26..0e32cf46 100644
--- a/tests/twisted/avahi/file-transfer/receive-file-and-sender-disconnect-while-transfering.py
+++ b/tests/twisted/avahi/file-transfer/receive-file-and-sender-disconnect-while-transfering.py
@@ -15,7 +15,7 @@ class ReceiveFileAndSenderDisconnectWhileTransfering(ReceiveFileTest):
def receive_file(self):
# Connect to Salut's socket
- s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
+ s = socket.socket(self._get_socket_address_family(), socket.SOCK_STREAM)
s.connect(self.address)
self.httpd.handle_request()
diff --git a/tests/twisted/avahi/file-transfer/receive-file-and-xmpp-disconnect.py b/tests/twisted/avahi/file-transfer/receive-file-and-xmpp-disconnect.py
index 63fa2dd3..d1b6a0f0 100644
--- a/tests/twisted/avahi/file-transfer/receive-file-and-xmpp-disconnect.py
+++ b/tests/twisted/avahi/file-transfer/receive-file-and-xmpp-disconnect.py
@@ -14,7 +14,7 @@ class ReceiveFileAndXmppDisconnectTest(ReceiveFileTest):
def receive_file(self):
# Connect to Salut's socket
- s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
+ s = socket.socket(self._get_socket_address_family(), socket.SOCK_STREAM)
s.connect(self.address)
self.httpd.handle_request()
diff --git a/tests/twisted/avahi/file-transfer/receive-file-cancelled-immediately.py b/tests/twisted/avahi/file-transfer/receive-file-cancelled-immediately.py
index fabf826e..91597f8a 100644
--- a/tests/twisted/avahi/file-transfer/receive-file-cancelled-immediately.py
+++ b/tests/twisted/avahi/file-transfer/receive-file-cancelled-immediately.py
@@ -15,7 +15,7 @@ class ReceiveFileCancelledImmediatelyTest(ReceiveFileTest):
def receive_file(self):
# Connect to Salut's socket
- s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
+ s = socket.socket(self._get_socket_address_family(), socket.SOCK_STREAM)
s.connect(self.address)
# Salut can't connect to download the file
diff --git a/tests/twisted/avahi/file-transfer/receive-file-ipv4.py b/tests/twisted/avahi/file-transfer/receive-file-ipv4.py
index bbc84662..c3123b43 100644
--- a/tests/twisted/avahi/file-transfer/receive-file-ipv4.py
+++ b/tests/twisted/avahi/file-transfer/receive-file-ipv4.py
@@ -1,83 +1,10 @@
-import avahi
-import urllib
-import BaseHTTPServer
-import SocketServer
-import socket
-
from saluttest import exec_test
from file_transfer_helper import ReceiveFileTest
-
-from avahitest import AvahiAnnouncer, get_host_name, AvahiListener
-from xmppstream import connect_to_stream, setup_stream_listener
-
-from twisted.words.xish import domish
-
import constants as cs
class TestReceiveFileIPv4(ReceiveFileTest):
- CONTACT_NAME = 'test-ft'
-
- service_name = ''
- metadata = {}
-
- def announce_contact(self, name=CONTACT_NAME):
- basic_txt = { "txtvers": "1", "status": "avail" }
-
- self.contact_name = '%s@%s' % (name, get_host_name())
- self.listener, port = setup_stream_listener(self.q, self.contact_name)
-
- self.contact_service = AvahiAnnouncer(self.contact_name, "_presence._tcp", port,
- basic_txt, proto=avahi.PROTO_INET)
-
-
- def _resolve_salut_presence(self):
- AvahiListener(self.q).listen_for_service("_presence._tcp")
- e = self.q.expect('service-added', name = self.self_handle_name,
- protocol = avahi.PROTO_INET)
- service = e.service
- service.resolve()
-
- e = self.q.expect('service-resolved', service = service,
- protocol = avahi.PROTO_INET)
- return str(e.pt), e.port
-
- def accept_file(self):
- ReceiveFileTest.accept_file(self, cs.SOCKET_ADDRESS_TYPE_IPV4);
-
- def receive_file(self):
- ReceiveFileTest.receive_file(self, socket.AF_INET);
-
- def connect_to_salut(self):
- host, port = self._resolve_salut_presence()
-
- self.outbound = connect_to_stream(self.q, self.contact_name,
- self.self_handle_name, host, port)
-
- e = self.q.expect('connection-result')
- assert e.succeeded, e.reason
- self.q.expect('stream-opened', connection = self.outbound)
-
- def send_ft_offer_iq(self):
- iq = domish.Element((None, 'iq'))
- iq['to'] = self.self_handle_name
- iq['from'] = self.contact_name
- iq['type'] = 'set'
- iq['id'] = 'gibber-file-transfer-0'
- query = iq.addElement(('jabber:iq:oob', 'query'))
- url = 'http://127.0.0.1:%u/gibber-file-transfer-0/%s' % \
- (self.httpd.server_port, urllib.quote(self.file.name))
- url_node = query.addElement('url', content=url)
- url_node['type'] = 'file'
- url_node['size'] = str(self.file.size)
- url_node['mimeType'] = self.file.content_type
- query.addElement('desc', content=self.file.description)
- self.outbound.send(iq)
-
- def _get_http_server_class(self):
- class HTTPServer(SocketServer.ThreadingMixIn, BaseHTTPServer.HTTPServer):
- address_family = getattr(socket, 'AF_INET', None)
-
- return HTTPServer
+ def __init__(self):
+ ReceiveFileTest.__init__(self, cs.SOCKET_ADDRESS_TYPE_IPV4)
if __name__ == '__main__':
test = TestReceiveFileIPv4()
diff --git a/tests/twisted/avahi/file-transfer/receive-file-ipv6.py b/tests/twisted/avahi/file-transfer/receive-file-ipv6.py
index 330c32e2..da2bbe9b 100644
--- a/tests/twisted/avahi/file-transfer/receive-file-ipv6.py
+++ b/tests/twisted/avahi/file-transfer/receive-file-ipv6.py
@@ -20,68 +20,8 @@ if not check_ipv6_enabled():
import constants as cs
class TestReceiveFileIPv6(ReceiveFileTest):
- CONTACT_NAME = 'test-ft'
-
- service_name = ''
- metadata = {}
-
- def announce_contact(self, name=CONTACT_NAME):
- basic_txt = { "txtvers": "1", "status": "avail" }
-
- self.contact_name = '%s@%s' % (name, get_host_name())
- self.listener, port = setup_stream_listener6(self.q, self.contact_name)
-
- self.contact_service = AvahiAnnouncer(self.contact_name, "_presence._tcp", port,
- basic_txt, proto=avahi.PROTO_INET6)
-
- def _resolve_salut_presence(self):
- AvahiListener(self.q).listen_for_service("_presence._tcp")
- e = self.q.expect('service-added', name = self.self_handle_name,
- protocol = avahi.PROTO_INET6)
- service = e.service
- service.resolve()
-
- e = self.q.expect('service-resolved', service = service,
- protocol = avahi.PROTO_INET6)
- return str(e.pt), e.port
-
- def accept_file(self):
- ReceiveFileTest.accept_file(self, cs.SOCKET_ADDRESS_TYPE_IPV6);
-
- def receive_file(self):
- ReceiveFileTest.receive_file(self, socket.AF_INET6);
-
- def connect_to_salut(self):
- host, port = self._resolve_salut_presence()
-
- self.outbound = connect_to_stream6(self.q, self.contact_name,
- self.self_handle_name, host, port)
-
- e = self.q.expect('connection-result')
- assert e.succeeded, e.reason
- self.q.expect('stream-opened', connection = self.outbound)
-
- def send_ft_offer_iq(self):
- iq = domish.Element((None, 'iq'))
- iq['to'] = self.self_handle_name
- iq['from'] = self.contact_name
- iq['type'] = 'set'
- iq['id'] = 'gibber-file-transfer-0'
- query = iq.addElement(('jabber:iq:oob', 'query'))
- url = 'http://[::1]:%u/gibber-file-transfer-0/%s' % \
- (self.httpd.server_port, urllib.quote(self.file.name))
- url_node = query.addElement('url', content=url)
- url_node['type'] = 'file'
- url_node['size'] = str(self.file.size)
- url_node['mimeType'] = self.file.content_type
- query.addElement('desc', content=self.file.description)
- self.outbound.send(iq)
-
- def _get_http_server_class(self):
- class HTTPServer6(SocketServer.ThreadingMixIn, BaseHTTPServer.HTTPServer):
- address_family = getattr(socket, 'AF_INET6', None)
-
- return HTTPServer6
+ def __init__(self):
+ ReceiveFileTest.__init__(self, cs.SOCKET_ADDRESS_TYPE_IPV6)
if __name__ == '__main__':
test = TestReceiveFileIPv6()
diff --git a/tests/twisted/avahi/file-transfer/receive-file-not-found.py b/tests/twisted/avahi/file-transfer/receive-file-not-found.py
index 50244a16..efba28be 100644
--- a/tests/twisted/avahi/file-transfer/receive-file-not-found.py
+++ b/tests/twisted/avahi/file-transfer/receive-file-not-found.py
@@ -30,7 +30,7 @@ class ReceiveFileNotFound(ReceiveFileTest):
def receive_file(self):
# Connect to Salut's socket
- s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
+ s = socket.socket(self._get_socket_address_family(), socket.SOCK_STREAM)
s.connect(self.address)
self.httpd.handle_request()
diff --git a/tests/twisted/avahi/file-transfer/send-file-ipv4.py b/tests/twisted/avahi/file-transfer/send-file-ipv4.py
index d8876500..deec728a 100644
--- a/tests/twisted/avahi/file-transfer/send-file-ipv4.py
+++ b/tests/twisted/avahi/file-transfer/send-file-ipv4.py
@@ -1,37 +1,18 @@
-import avahi
from saluttest import exec_test
-from avahitest import AvahiAnnouncer, get_host_name
-from xmppstream import setup_stream_listener
from file_transfer_helper import SendFileTest
-import socket
-
import constants as cs
class SendFileTransferIPv4(SendFileTest):
- CONTACT_NAME = 'test-ft'
-
- def announce_contact(self, name=CONTACT_NAME):
- basic_txt = { "txtvers": "1", "status": "avail" }
-
- self.contact_name = '%s@%s' % (name, get_host_name())
- self.listener, port = setup_stream_listener(self.q, self.contact_name)
-
- self.contact_service = AvahiAnnouncer(self.contact_name, "_presence._tcp", port,
- basic_txt, proto=avahi.PROTO_INET)
+ def __init__(self):
+ SendFileTest.__init__(self, cs.SOCKET_ADDRESS_TYPE_IPV4)
def provide_file(self):
- SendFileTest.provide_file(self, cs.SOCKET_ADDRESS_TYPE_IPV4)
-
- # state is still Pending as remote didn't accept the transfer yet
+ SendFileTest.provide_file(self)
state = self.ft_props.Get(cs.CHANNEL_TYPE_FILE_TRANSFER, 'State')
assert state == cs.FT_STATE_PENDING
- def send_file(self):
- SendFileTest.send_file(socket.AF_INET);
-
def client_request_file(self):
SendFileTest.client_request_file(self)
-
e = self.q.expect('dbus-signal', signal='InitialOffsetDefined')
offset = e.args[0]
# We don't support resume
diff --git a/tests/twisted/avahi/file-transfer/send-file-ipv6.py b/tests/twisted/avahi/file-transfer/send-file-ipv6.py
index 05c8f3a7..a64fc68b 100644
--- a/tests/twisted/avahi/file-transfer/send-file-ipv6.py
+++ b/tests/twisted/avahi/file-transfer/send-file-ipv6.py
@@ -1,10 +1,5 @@
-import avahi
from saluttest import exec_test
-from avahitest import AvahiAnnouncer, get_host_name
-from xmppstream import setup_stream_listener6
from file_transfer_helper import SendFileTest
-import socket
-
import constants as cs
print "FIXME: disabled because of a bug in Python's httplib. http://bugs.python.org/issue5111"
@@ -12,30 +7,16 @@ print "FIXME: disabled because of a bug in Python's httplib. http://bugs.python.
raise SystemExit(77)
class SendFileTransferIPv6(SendFileTest):
- CONTACT_NAME = 'test-ft'
-
- def announce_contact(self, name=CONTACT_NAME):
- basic_txt = { "txtvers": "1", "status": "avail" }
-
- self.contact_name = '%s@%s' % (name, get_host_name())
- self.listener, port = setup_stream_listener6(self.q, self.contact_name)
-
- self.contact_service = AvahiAnnouncer(self.contact_name, "_presence._tcp", port,
- basic_txt, proto=avahi.PROTO_INET6)
+ def __init__(self):
+ SendFileTest.__init__(self, cs.SOCKET_ADDRESS_TYPE_IPV6)
def provide_file(self):
- SendFileTest.provide_file(self, cs.SOCKET_ADDRESS_TYPE_IPV6)
-
- # state is still Pending as remote didn't accept the transfer yet
+ SendFileTest.provide_file(self)
state = self.ft_props.Get(cs.CHANNEL_TYPE_FILE_TRANSFER, 'State')
assert state == cs.FT_STATE_PENDING
- def send_file(self):
- SendFileTest.send_file(socket.AF_INET6);
-
def client_request_file(self):
SendFileTest.client_request_file(self)
-
e = self.q.expect('dbus-signal', signal='InitialOffsetDefined')
offset = e.args[0]
# We don't support resume