Skip IPv6 tests if IPv6 is not supported.

Change-Id: I8aac6b0bc675a223213348324ac8305907eb0028
This commit is contained in:
Yuriy Taraday 2013-01-17 01:19:12 +04:00
parent 8748cfa3a6
commit 64ef907e79
3 changed files with 20 additions and 0 deletions

View File

@ -16,12 +16,14 @@
import datetime import datetime
import os import os
import socket
import subprocess import subprocess
import sys import sys
import time import time
import eventlet import eventlet
import mox import mox
import nose.exc
from paste import deploy from paste import deploy
import stubout import stubout
import unittest2 as unittest import unittest2 as unittest
@ -302,3 +304,15 @@ class TestCase(NoModule, unittest.TestCase):
:param delta: Maximum allowable time delta, defined in seconds. :param delta: Maximum allowable time delta, defined in seconds.
""" """
self.assertAlmostEqual(a, b, delta=datetime.timedelta(seconds=delta)) 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()

View File

@ -27,6 +27,10 @@ CONF = config.CONF
class IPv6TestCase(test.TestCase): class IPv6TestCase(test.TestCase):
@classmethod
def setUpClass(cls):
cls.skip_if_no_ipv6()
def setUp(self): def setUp(self):
super(IPv6TestCase, self).setUp() super(IPv6TestCase, self).setUp()
self.load_backends() self.load_backends()

View File

@ -85,6 +85,7 @@ class SSLTestCase(test.TestCase):
""" """
Make sure both public and admin API work with 1-way ipv6 & SSL. 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', self.public_server = self.serveapp('keystone', name='main',
cert=CERT, key=KEY, ca=CA, cert=CERT, key=KEY, ca=CA,
host="::1", port=0) 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. Make sure both public and admin API work with 2-way ipv6 & SSL.
Requires client certificate. Requires client certificate.
""" """
self.skip_if_no_ipv6()
self.public_server = self.serveapp( self.public_server = self.serveapp(
'keystone', name='main', cert=CERT, 'keystone', name='main', cert=CERT,
key=KEY, ca=CA, cert_required=True, key=KEY, ca=CA, cert_required=True,