Fix unit tests failing in some cases

TestZeroCopy used to fail when 'localhost' resolved to an ipv6
address. https://github.com/eventlet/eventlet/issues/8

Also, "test_container_sync_realms.py:TestUtils.test_os_error"
used to fail when unit tests were run as root user. This is
because despite os.chmod(), a root user still has permission
to access the file and hence OSError is not raised.

Change-Id: Ife80b203358557999734515261814ce76c0e00cd
Signed-off-by: Prashanth Pai <ppai@redhat.com>
This commit is contained in:
Prashanth Pai
2014-10-09 21:55:35 +05:30
parent 6d5206325a
commit 772eace020
2 changed files with 18 additions and 13 deletions

View File

@@ -13,10 +13,12 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
import errno
import os import os
import unittest import unittest
import uuid import uuid
from mock import patch
from swift.common.container_sync_realms import ContainerSyncRealms from swift.common.container_sync_realms import ContainerSyncRealms
from test.unit import FakeLogger, temptree from test.unit import FakeLogger, temptree
@@ -41,18 +43,21 @@ class TestUtils(unittest.TestCase):
with temptree([fname], [fcontents]) as tempdir: with temptree([fname], [fcontents]) as tempdir:
logger = FakeLogger() logger = FakeLogger()
fpath = os.path.join(tempdir, fname) fpath = os.path.join(tempdir, fname)
os.chmod(tempdir, 0)
csr = ContainerSyncRealms(fpath, logger) def _mock_getmtime(path):
try: raise OSError(errno.EACCES,
self.assertEqual( os.strerror(errno.EACCES) +
logger.all_log_lines(), ": '%s'" % (fpath))
{'error': [ with patch('os.path.getmtime', _mock_getmtime):
"Could not load '%s': [Errno 13] Permission denied: " csr = ContainerSyncRealms(fpath, logger)
"'%s'" % (fpath, fpath)]})
self.assertEqual(csr.mtime_check_interval, 300) self.assertEqual(
self.assertEqual(csr.realms(), []) logger.all_log_lines(),
finally: {'error': [
os.chmod(tempdir, 0700) "Could not load '%s': [Errno 13] Permission denied: "
"'%s'" % (fpath, fpath)]})
self.assertEqual(csr.mtime_check_interval, 300)
self.assertEqual(csr.realms(), [])
def test_empty(self): def test_empty(self):
fname = 'container-sync-realms.conf' fname = 'container-sync-realms.conf'

View File

@@ -4414,7 +4414,7 @@ class TestZeroCopy(unittest.TestCase):
self.wsgi_greenlet = spawn( self.wsgi_greenlet = spawn(
wsgi.server, listener, self.object_controller, NullLogger()) wsgi.server, listener, self.object_controller, NullLogger())
self.http_conn = httplib.HTTPConnection('localhost', port) self.http_conn = httplib.HTTPConnection('127.0.0.1', port)
self.http_conn.connect() self.http_conn.connect()
def tearDown(self): def tearDown(self):