summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYuriy Taraday <yorik.sar@gmail.com>2013-01-17 01:19:12 +0400
committerYuriy Taraday <yorik.sar@gmail.com>2013-01-18 01:59:26 +0400
commit64ef907e79cb00342f35d89746449979bacf58ac (patch)
tree8978696c42dda438f5453c1bc373053227497882
parent8748cfa3a6b7573550e7ec8ced87e6fd2096a628 (diff)
Skip IPv6 tests if IPv6 is not supported.
Change-Id: I8aac6b0bc675a223213348324ac8305907eb0028
-rw-r--r--keystone/test.py14
-rw-r--r--tests/test_ipv6.py4
-rw-r--r--tests/test_ssl.py2
3 files changed, 20 insertions, 0 deletions
diff --git a/keystone/test.py b/keystone/test.py
index cbc646fd..bb89d20b 100644
--- a/keystone/test.py
+++ b/keystone/test.py
@@ -16,12 +16,14 @@
import datetime
import os
+import socket
import subprocess
import sys
import time
import eventlet
import mox
+import nose.exc
from paste import deploy
import stubout
import unittest2 as unittest
@@ -302,3 +304,15 @@ class TestCase(NoModule, unittest.TestCase):
:param delta: Maximum allowable time delta, defined in seconds.
"""
self.assertAlmostEqual(a, b, delta=datetime.timedelta(seconds=delta))
+
+ @staticmethod
+ def skip_if_no_ipv6():
+ try:
+ s = socket.socket(socket.AF_INET6)
+ except socket.error as e:
+ if e.errno == errno.EAFNOSUPPORT:
+ raise nose.exc.SkipTest("IPv6 is not enabled in the system")
+ else:
+ raise
+ else:
+ s.close()
diff --git a/tests/test_ipv6.py b/tests/test_ipv6.py
index ec8fb1e5..43dca920 100644
--- a/tests/test_ipv6.py
+++ b/tests/test_ipv6.py
@@ -27,6 +27,10 @@ CONF = config.CONF
class IPv6TestCase(test.TestCase):
+ @classmethod
+ def setUpClass(cls):
+ cls.skip_if_no_ipv6()
+
def setUp(self):
super(IPv6TestCase, self).setUp()
self.load_backends()
diff --git a/tests/test_ssl.py b/tests/test_ssl.py
index 2096f342..1fd66091 100644
--- a/tests/test_ssl.py
+++ b/tests/test_ssl.py
@@ -85,6 +85,7 @@ class SSLTestCase(test.TestCase):
"""
Make sure both public and admin API work with 1-way ipv6 & SSL.
"""
+ self.skip_if_no_ipv6()
self.public_server = self.serveapp('keystone', name='main',
cert=CERT, key=KEY, ca=CA,
host="::1", port=0)
@@ -107,6 +108,7 @@ class SSLTestCase(test.TestCase):
Make sure both public and admin API work with 2-way ipv6 & SSL.
Requires client certificate.
"""
+ self.skip_if_no_ipv6()
self.public_server = self.serveapp(
'keystone', name='main', cert=CERT,
key=KEY, ca=CA, cert_required=True,