From 105315dfc40468fb31ca1a2e56f5b84e3d84ee41 Mon Sep 17 00:00:00 2001 From: Clay Gerrard Date: Wed, 19 Jan 2011 14:18:37 -0600 Subject: [PATCH] obsolete PATH_TO_TEST_XFS --- doc/source/development_saio.rst | 1 - test/unit/__init__.py | 27 ++++++++++++++ test/unit/container/test_server.py | 13 +------ test/unit/container/test_updater.py | 13 +------ test/unit/obj/test_auditor.py | 16 ++------ test/unit/obj/test_server.py | 58 ++--------------------------- test/unit/proxy/test_server.py | 17 --------- 7 files changed, 38 insertions(+), 107 deletions(-) diff --git a/doc/source/development_saio.rst b/doc/source/development_saio.rst index a74e6df8c9..1967215d4b 100644 --- a/doc/source/development_saio.rst +++ b/doc/source/development_saio.rst @@ -204,7 +204,6 @@ Do these commands as you on guest: #. `cd ~/swift/trunk; sudo python setup.py develop` #. Edit `~/.bashrc` and add to the end:: - export PATH_TO_TEST_XFS=/mnt/sdb1/test export SWIFT_TEST_CONFIG_FILE=/etc/swift/func_test.conf export PATH=${PATH}:~/bin diff --git a/test/unit/__init__.py b/test/unit/__init__.py index 1895098c2e..7c3b169cbb 100644 --- a/test/unit/__init__.py +++ b/test/unit/__init__.py @@ -37,6 +37,33 @@ def tmpfile(content): finally: os.unlink(file_name) +xattr_data = {} + +def _get_inode(fd): + if not isinstance(fd, int): + try: + fd = fd.fileno() + except AttributeError: + return os.stat(fd).st_ino + return os.fstat(fd).st_ino + +def _setxattr(fd, k, v): + inode = _get_inode(fd) + data = xattr_data.get(inode, {}) + data[k] = v + xattr_data[inode] = data + +def _getxattr(fd, k): + inode = _get_inode(fd) + data = xattr_data.get(inode, {}).get(k) + if not data: + raise IOError + return data + +import xattr +xattr.setxattr = _setxattr +xattr.getxattr = _getxattr + class MockTrue(object): """ diff --git a/test/unit/container/test_server.py b/test/unit/container/test_server.py index 2f9d5badea..cbd44624ad 100644 --- a/test/unit/container/test_server.py +++ b/test/unit/container/test_server.py @@ -19,6 +19,7 @@ import unittest from shutil import rmtree from StringIO import StringIO from time import time +from tempfile import mkdtemp from eventlet import spawn, TimeoutError, listen from eventlet.timeout import Timeout @@ -33,17 +34,7 @@ class TestContainerController(unittest.TestCase): """ Test swift.container_server.ContainerController """ def setUp(self): """ Set up for testing swift.object_server.ObjectController """ - self.path_to_test_xfs = os.environ.get('PATH_TO_TEST_XFS') - if not self.path_to_test_xfs or \ - not os.path.exists(self.path_to_test_xfs): - print >>sys.stderr, 'WARNING: PATH_TO_TEST_XFS not set or not ' \ - 'pointing to a valid directory.\n' \ - 'Please set PATH_TO_TEST_XFS to a directory on an XFS file ' \ - 'system for testing.' - self.testdir = '/tmp/SWIFTUNITTEST' - else: - self.testdir = os.path.join(self.path_to_test_xfs, - 'tmp_test_object_server_ObjectController') + self.testdir = os.path.join(mkdtemp(), 'tmp_test_object_server_ObjectController') mkdirs(self.testdir) rmtree(self.testdir) mkdirs(os.path.join(self.testdir, 'sda1')) diff --git a/test/unit/container/test_updater.py b/test/unit/container/test_updater.py index 092944c4be..0302382b38 100644 --- a/test/unit/container/test_updater.py +++ b/test/unit/container/test_updater.py @@ -19,6 +19,7 @@ import sys import unittest from gzip import GzipFile from shutil import rmtree +from tempfile import mkdtemp from eventlet import spawn, TimeoutError, listen from eventlet.timeout import Timeout @@ -35,17 +36,7 @@ class TestContainerUpdater(unittest.TestCase): def setUp(self): utils.HASH_PATH_SUFFIX = 'endcap' - self.path_to_test_xfs = os.environ.get('PATH_TO_TEST_XFS') - if not self.path_to_test_xfs or \ - not os.path.exists(self.path_to_test_xfs): - print >>sys.stderr, 'WARNING: PATH_TO_TEST_XFS not set or not ' \ - 'pointing to a valid directory.\n' \ - 'Please set PATH_TO_TEST_XFS to a directory on an XFS file ' \ - 'system for testing.' - self.testdir = '/tmp/SWIFTUNITTEST' - else: - self.testdir = os.path.join(self.path_to_test_xfs, - 'tmp_test_container_updater') + self.testdir = os.path.join(mkdtemp(), 'tmp_test_container_updater') rmtree(self.testdir, ignore_errors=1) os.mkdir(self.testdir) pickle.dump(RingData([[0, 1, 0, 1], [1, 0, 1, 0]], diff --git a/test/unit/obj/test_auditor.py b/test/unit/obj/test_auditor.py index 9ee42cb3ec..41d4453ce8 100644 --- a/test/unit/obj/test_auditor.py +++ b/test/unit/obj/test_auditor.py @@ -20,7 +20,9 @@ import os import time from shutil import rmtree from hashlib import md5 +from tempfile import mkdtemp from swift.obj import auditor +from swift.obj import server as object_server from swift.obj.server import DiskFile, write_metadata from swift.common.utils import hash_path, mkdirs, normalize_timestamp, renamer from swift.obj.replicator import invalidate_hash @@ -30,18 +32,8 @@ from swift.common.exceptions import AuditException class TestAuditor(unittest.TestCase): def setUp(self): - self.path_to_test_xfs = os.environ.get('PATH_TO_TEST_XFS') - if not self.path_to_test_xfs or \ - not os.path.exists(self.path_to_test_xfs): - print >> sys.stderr, 'WARNING: PATH_TO_TEST_XFS not set or not ' \ - 'pointing to a valid directory.\n' \ - 'Please set PATH_TO_TEST_XFS to a directory on an XFS file ' \ - 'system for testing.' - self.testdir = '/tmp/SWIFTUNITTEST' - else: - self.testdir = os.path.join(self.path_to_test_xfs, - 'tmp_test_object_auditor') - + self.testdir = \ + os.path.join(mkdtemp(), 'tmp_test_object_auditor') self.devices = os.path.join(self.testdir, 'node') rmtree(self.testdir, ignore_errors=1) os.mkdir(self.testdir) diff --git a/test/unit/obj/test_server.py b/test/unit/obj/test_server.py index 64c58ff7ca..e9c186b6b3 100644 --- a/test/unit/obj/test_server.py +++ b/test/unit/obj/test_server.py @@ -23,6 +23,7 @@ from nose import SkipTest from shutil import rmtree from StringIO import StringIO from time import gmtime, sleep, strftime, time +from tempfile import mkdtemp from eventlet import sleep, spawn, wsgi, listen from webob import Request @@ -39,17 +40,8 @@ class TestObjectController(unittest.TestCase): def setUp(self): """ Set up for testing swift.object_server.ObjectController """ - self.path_to_test_xfs = os.environ.get('PATH_TO_TEST_XFS') - if not self.path_to_test_xfs or \ - not os.path.exists(self.path_to_test_xfs): - print >> sys.stderr, 'WARNING: PATH_TO_TEST_XFS not set or not ' \ - 'pointing to a valid directory.\n' \ - 'Please set PATH_TO_TEST_XFS to a directory on an XFS file ' \ - 'system for testing.' - self.testdir = '/tmp/SWIFTUNITTEST' - else: - self.testdir = os.path.join(self.path_to_test_xfs, - 'tmp_test_object_server_ObjectController') + self.testdir = \ + os.path.join(mkdtemp(), 'tmp_test_object_server_ObjectController') mkdirs(self.testdir) rmtree(self.testdir) mkdirs(os.path.join(self.testdir, 'sda1')) @@ -64,8 +56,6 @@ class TestObjectController(unittest.TestCase): def test_POST_update_meta(self): """ Test swift.object_server.ObjectController.POST """ - if not self.path_to_test_xfs: - raise SkipTest timestamp = normalize_timestamp(time()) req = Request.blank('/sda1/p/a/c/o', environ={'REQUEST_METHOD': 'PUT'}, headers={'X-Timestamp': timestamp, @@ -93,8 +83,6 @@ class TestObjectController(unittest.TestCase): self.assertEquals(resp.headers['Content-Type'], 'application/x-test') def test_POST_not_exist(self): - if not self.path_to_test_xfs: - raise SkipTest timestamp = normalize_timestamp(time()) req = Request.blank('/sda1/p/a/c/fail', environ={'REQUEST_METHOD': 'POST'}, @@ -116,8 +104,6 @@ class TestObjectController(unittest.TestCase): self.assertEquals(resp.status_int, 400) def test_POST_container_connection(self): - if not self.path_to_test_xfs: - raise SkipTest def mock_http_connect(response, with_exc=False): @@ -222,8 +208,6 @@ class TestObjectController(unittest.TestCase): self.assertEquals(resp.status_int, 411) def test_PUT_common(self): - if not self.path_to_test_xfs: - raise SkipTest timestamp = normalize_timestamp(time()) req = Request.blank('/sda1/p/a/c/o', environ={'REQUEST_METHOD': 'PUT'}, headers={'X-Timestamp': timestamp, @@ -247,8 +231,6 @@ class TestObjectController(unittest.TestCase): 'name': '/a/c/o'}) def test_PUT_overwrite(self): - if not self.path_to_test_xfs: - raise SkipTest req = Request.blank('/sda1/p/a/c/o', environ={'REQUEST_METHOD': 'PUT'}, headers={'X-Timestamp': normalize_timestamp(time()), 'Content-Length': '6', @@ -281,8 +263,6 @@ class TestObjectController(unittest.TestCase): 'Content-Encoding': 'gzip'}) def test_PUT_no_etag(self): - if not self.path_to_test_xfs: - raise SkipTest req = Request.blank('/sda1/p/a/c/o', environ={'REQUEST_METHOD': 'PUT'}, headers={'X-Timestamp': normalize_timestamp(time()), 'Content-Type': 'text/plain'}) @@ -300,8 +280,6 @@ class TestObjectController(unittest.TestCase): self.assertEquals(resp.status_int, 422) def test_PUT_user_metadata(self): - if not self.path_to_test_xfs: - raise SkipTest timestamp = normalize_timestamp(time()) req = Request.blank('/sda1/p/a/c/o', environ={'REQUEST_METHOD': 'PUT'}, headers={'X-Timestamp': timestamp, @@ -329,8 +307,6 @@ class TestObjectController(unittest.TestCase): 'X-Object-Meta-Two': 'Two'}) def test_PUT_container_connection(self): - if not self.path_to_test_xfs: - raise SkipTest def mock_http_connect(response, with_exc=False): @@ -399,8 +375,6 @@ class TestObjectController(unittest.TestCase): def test_HEAD(self): """ Test swift.object_server.ObjectController.HEAD """ - if not self.path_to_test_xfs: - raise SkipTest req = Request.blank('/sda1/p/a/c') resp = self.object_controller.HEAD(req) self.assertEquals(resp.status_int, 400) @@ -466,8 +440,6 @@ class TestObjectController(unittest.TestCase): def test_GET(self): """ Test swift.object_server.ObjectController.GET """ - if not self.path_to_test_xfs: - raise SkipTest req = Request.blank('/sda1/p/a/c') resp = self.object_controller.GET(req) self.assertEquals(resp.status_int, 400) @@ -555,8 +527,6 @@ class TestObjectController(unittest.TestCase): self.assertEquals(resp.status_int, 404) def test_GET_if_match(self): - if not self.path_to_test_xfs: - raise SkipTest req = Request.blank('/sda1/p/a/c/o', environ={'REQUEST_METHOD': 'PUT'}, headers={ 'X-Timestamp': normalize_timestamp(time()), @@ -610,8 +580,6 @@ class TestObjectController(unittest.TestCase): self.assertEquals(resp.status_int, 412) def test_GET_if_none_match(self): - if not self.path_to_test_xfs: - raise SkipTest req = Request.blank('/sda1/p/a/c/o', environ={'REQUEST_METHOD': 'PUT'}, headers={ 'X-Timestamp': normalize_timestamp(time()), @@ -661,8 +629,6 @@ class TestObjectController(unittest.TestCase): self.assertEquals(resp.etag, etag) def test_GET_if_modified_since(self): - if not self.path_to_test_xfs: - raise SkipTest timestamp = normalize_timestamp(time()) req = Request.blank('/sda1/p/a/c/o', environ={'REQUEST_METHOD': 'PUT'}, headers={ @@ -698,8 +664,6 @@ class TestObjectController(unittest.TestCase): self.assertEquals(resp.status_int, 304) def test_GET_if_unmodified_since(self): - if not self.path_to_test_xfs: - raise SkipTest timestamp = normalize_timestamp(time()) req = Request.blank('/sda1/p/a/c/o', environ={'REQUEST_METHOD': 'PUT'}, headers={ @@ -737,8 +701,6 @@ class TestObjectController(unittest.TestCase): def test_DELETE(self): """ Test swift.object_server.ObjectController.DELETE """ - if not self.path_to_test_xfs: - raise SkipTest req = Request.blank('/sda1/p/a/c', environ={'REQUEST_METHOD': 'DELETE'}) resp = self.object_controller.DELETE(req) @@ -865,8 +827,6 @@ class TestObjectController(unittest.TestCase): self.assertEquals(outbuf.getvalue()[:4], '405 ') def test_chunked_put(self): - if not self.path_to_test_xfs: - raise SkipTest listener = listen(('localhost', 0)) port = listener.getsockname()[1] killer = spawn(wsgi.server, listener, self.object_controller, @@ -891,8 +851,6 @@ class TestObjectController(unittest.TestCase): killer.kill() def test_max_object_name_length(self): - if not self.path_to_test_xfs: - raise SkipTest timestamp = normalize_timestamp(time()) req = Request.blank('/sda1/p/a/c/' + ('1' * 1024), environ={'REQUEST_METHOD': 'PUT'}, @@ -912,8 +870,6 @@ class TestObjectController(unittest.TestCase): self.assertEquals(resp.status_int, 400) def test_disk_file_app_iter_corners(self): - if not self.path_to_test_xfs: - raise SkipTest df = object_server.DiskFile(self.testdir, 'sda1', '0', 'a', 'c', 'o') mkdirs(df.datadir) f = open(os.path.join(df.datadir, @@ -946,8 +902,6 @@ class TestObjectController(unittest.TestCase): self.assert_(os.path.exists(tmpdir)) def test_max_upload_time(self): - if not self.path_to_test_xfs: - raise SkipTest class SlowBody(): @@ -996,8 +950,6 @@ class TestObjectController(unittest.TestCase): self.assertEquals(resp.status_int, 499) def test_bad_sinces(self): - if not self.path_to_test_xfs: - raise SkipTest req = Request.blank('/sda1/p/a/c/o', environ={'REQUEST_METHOD': 'PUT'}, headers={'X-Timestamp': normalize_timestamp(time()), 'Content-Length': '4', 'Content-Type': 'text/plain'}, @@ -1022,8 +974,6 @@ class TestObjectController(unittest.TestCase): self.assertEquals(resp.status_int, 412) def test_content_encoding(self): - if not self.path_to_test_xfs: - raise SkipTest req = Request.blank('/sda1/p/a/c/o', environ={'REQUEST_METHOD': 'PUT'}, headers={'X-Timestamp': normalize_timestamp(time()), 'Content-Length': '4', 'Content-Type': 'text/plain', @@ -1042,8 +992,6 @@ class TestObjectController(unittest.TestCase): self.assertEquals(resp.headers['content-encoding'], 'gzip') def test_manifest_header(self): - if not self.path_to_test_xfs: - raise SkipTest timestamp = normalize_timestamp(time()) req = Request.blank('/sda1/p/a/c/o', environ={'REQUEST_METHOD': 'PUT'}, headers={'X-Timestamp': timestamp, diff --git a/test/unit/proxy/test_server.py b/test/unit/proxy/test_server.py index 5f44e258b0..0183947f93 100644 --- a/test/unit/proxy/test_server.py +++ b/test/unit/proxy/test_server.py @@ -60,22 +60,6 @@ def setup(): # Since we're starting up a lot here, we're going to test more than # just chunked puts; we're also going to test parts of # proxy_server.Application we couldn't get to easily otherwise. - xattr_data = {} - - def mock_setxattr(fd, k, v): - inode = os.fstat(fd).st_ino - data = xattr_data.get(inode, {}) - data[k] = v - xattr_data[inode] = data - - def mock_getxattr(fd, k): - inode = os.stat(fd.name).st_ino - data = xattr_data.get(inode, {}).get(k) - if not data: - raise IOError - return data - object_server.setxattr = mock_setxattr - object_server.getxattr = mock_getxattr _testdir = \ os.path.join(mkdtemp(), 'tmp_test_proxy_server_chunked') mkdirs(_testdir) @@ -1648,7 +1632,6 @@ class TestObjectController(unittest.TestCase): self.assertEquals(resp.headers.get('x-object-meta-ours'), 'okay') def test_chunked_put(self): - # quick test of chunked put w/o PATH_TO_TEST_XFS class ChunkedFile():