diff --git a/doc/source/development_saio.rst b/doc/source/development_saio.rst index 30e8d8cfc5..9386212bf4 100644 --- a/doc/source/development_saio.rst +++ b/doc/source/development_saio.rst @@ -534,25 +534,7 @@ good idea what to do on other environments. #. `swift-auth-create-account test tester3 testing3 noaccess` #. Create `/etc/swift/func_test.conf`:: - auth_host = 127.0.0.1 - auth_port = 11000 - auth_ssl = no - - # Primary functional test account - account = test - username = tester - password = testing - - # User on a second account - account2 = test2 - username2 = tester2 - password2 = testing2 - - # User on same account as first, but with noaccess - username3 = tester3 - password3 = testing3 - - collate = C + cp ~/swift/trunk/test/functional/sample.conf /etc/swift/func_test.conf #. `cd ~/swift/trunk; ./.functests` #. `cd ~/swift/trunk; ./.probetests` (Note for future reference: probe tests diff --git a/setup.cfg b/setup.cfg index d53addcbf3..6671e0c70f 100644 --- a/setup.cfg +++ b/setup.cfg @@ -7,3 +7,8 @@ source-dir = doc/source tag_build = tag_date = 0 tag_svn_revision = 0 + +[nosetests] +with-coverage=1 +cover-package=swift +verbosity=2 diff --git a/test/functional/sample.conf b/test/functional/sample.conf index dbcd969e74..b43e106bd8 100644 --- a/test/functional/sample.conf +++ b/test/functional/sample.conf @@ -1,10 +1,20 @@ -# Sample functional test configuration file +# sample config auth_host = 127.0.0.1 -auth_port = 80 +auth_port = 11000 auth_ssl = no -account = test_account -username = test_user -password = test_password +# Primary functional test account +account = test +username = tester +password = testing + +# User on a second account +account2 = test2 +username2 = tester2 +password2 = testing2 + +# User on same account as first, but with noaccess +username3 = tester3 +password3 = testing3 collate = C diff --git a/test/functionalnosetests/test_account.py b/test/functionalnosetests/test_account.py index dea19380ac..4b5da32da1 100755 --- a/test/functionalnosetests/test_account.py +++ b/test/functionalnosetests/test_account.py @@ -1,6 +1,7 @@ #!/usr/bin/python import unittest +from nose import SkipTest from swift.common.constraints import MAX_META_COUNT, MAX_META_NAME_LENGTH, \ MAX_META_OVERALL_SIZE, MAX_META_VALUE_LENGTH @@ -12,7 +13,7 @@ class TestAccount(unittest.TestCase): def test_metadata(self): if skip: - return + raise SkipTest def post(url, token, parsed, conn, value): conn.request('POST', parsed.path, '', {'X-Auth-Token': token, 'X-Account-Meta-Test': value}) @@ -48,7 +49,7 @@ class TestAccount(unittest.TestCase): def test_multi_metadata(self): if skip: - return + raise SkipTest def post(url, token, parsed, conn, name, value): conn.request('POST', parsed.path, '', {'X-Auth-Token': token, name: value}) @@ -74,7 +75,7 @@ class TestAccount(unittest.TestCase): def test_bad_metadata(self): if skip: - return + raise SkipTest def post(url, token, parsed, conn, extra_headers): headers = {'X-Auth-Token': token} headers.update(extra_headers) diff --git a/test/functionalnosetests/test_container.py b/test/functionalnosetests/test_container.py index 15bee7fbdb..abda0f3188 100755 --- a/test/functionalnosetests/test_container.py +++ b/test/functionalnosetests/test_container.py @@ -2,6 +2,7 @@ import json import unittest +from nose import SkipTest from uuid import uuid4 from swift.common.constraints import MAX_META_COUNT, MAX_META_NAME_LENGTH, \ @@ -15,7 +16,7 @@ class TestContainer(unittest.TestCase): def setUp(self): if skip: - return + raise SkipTest self.name = uuid4().hex def put(url, token, parsed, conn): conn.request('PUT', parsed.path + '/' + self.name, '', @@ -27,7 +28,7 @@ class TestContainer(unittest.TestCase): def tearDown(self): if skip: - return + raise SkipTest def get(url, token, parsed, conn): conn.request('GET', parsed.path + '/' + self.name + '?format=json', '', {'X-Auth-Token': token}) @@ -58,7 +59,7 @@ class TestContainer(unittest.TestCase): def test_multi_metadata(self): if skip: - return + raise SkipTest def post(url, token, parsed, conn, name, value): conn.request('POST', parsed.path + '/' + self.name, '', {'X-Auth-Token': token, name: value}) @@ -85,7 +86,7 @@ class TestContainer(unittest.TestCase): def test_PUT_metadata(self): if skip: - return + raise SkipTest def put(url, token, parsed, conn, name, value): conn.request('PUT', parsed.path + '/' + name, '', {'X-Auth-Token': token, 'X-Container-Meta-Test': value}) @@ -132,7 +133,7 @@ class TestContainer(unittest.TestCase): def test_POST_metadata(self): if skip: - return + raise SkipTest def post(url, token, parsed, conn, value): conn.request('POST', parsed.path + '/' + self.name, '', {'X-Auth-Token': token, 'X-Container-Meta-Test': value}) @@ -167,7 +168,7 @@ class TestContainer(unittest.TestCase): def test_PUT_bad_metadata(self): if skip: - return + raise SkipTest def put(url, token, parsed, conn, name, extra_headers): headers = {'X-Auth-Token': token} headers.update(extra_headers) @@ -262,7 +263,7 @@ class TestContainer(unittest.TestCase): def test_POST_bad_metadata(self): if skip: - return + raise SkipTest def post(url, token, parsed, conn, extra_headers): headers = {'X-Auth-Token': token} headers.update(extra_headers) @@ -321,7 +322,7 @@ class TestContainer(unittest.TestCase): def test_public_container(self): if skip: - return + raise SkipTest def get(url, token, parsed, conn): conn.request('GET', parsed.path + '/' + self.name) return check_response(conn) @@ -356,7 +357,7 @@ class TestContainer(unittest.TestCase): def test_cross_account_container(self): if skip or skip2: - return + raise SkipTest # Obtain the first account's string first_account = ['unknown'] def get1(url, token, parsed, conn): @@ -404,7 +405,7 @@ class TestContainer(unittest.TestCase): def test_cross_account_public_container(self): if skip or skip2: - return + raise SkipTest # Obtain the first account's string first_account = ['unknown'] def get1(url, token, parsed, conn): @@ -463,7 +464,7 @@ class TestContainer(unittest.TestCase): def test_noaccess_user(self): if skip or skip3: - return + raise SkipTest # Obtain the first account's string first_account = ['unknown'] def get1(url, token, parsed, conn): diff --git a/test/functionalnosetests/test_object.py b/test/functionalnosetests/test_object.py index 256068d766..8c17b336a5 100644 --- a/test/functionalnosetests/test_object.py +++ b/test/functionalnosetests/test_object.py @@ -1,6 +1,7 @@ #!/usr/bin/python import unittest +from nose import SkipTest from uuid import uuid4 from swift.common.constraints import MAX_META_COUNT, MAX_META_NAME_LENGTH, \ @@ -13,7 +14,7 @@ class TestObject(unittest.TestCase): def setUp(self): if skip: - return + raise SkipTest self.container = uuid4().hex def put(url, token, parsed, conn): conn.request('PUT', parsed.path + '/' + self.container, '', @@ -33,7 +34,7 @@ class TestObject(unittest.TestCase): def tearDown(self): if skip: - return + raise SkipTest def delete(url, token, parsed, conn): conn.request('DELETE', '%s/%s/%s' % (parsed.path, self.container, self.obj), '', {'X-Auth-Token': token}) @@ -51,7 +52,7 @@ class TestObject(unittest.TestCase): def test_public_object(self): if skip: - return + raise SkipTest def get(url, token, parsed, conn): conn.request('GET', '%s/%s/%s' % (parsed.path, self.container, self.obj)) diff --git a/test/unit/obj/test_server.py b/test/unit/obj/test_server.py index 17308c614a..048b409c63 100644 --- a/test/unit/obj/test_server.py +++ b/test/unit/obj/test_server.py @@ -19,6 +19,7 @@ import cPickle as pickle import os import sys import unittest +from nose import SkipTest from shutil import rmtree from StringIO import StringIO from time import gmtime, sleep, strftime, time @@ -64,7 +65,7 @@ class TestObjectController(unittest.TestCase): def test_POST_update_meta(self): """ Test swift.object_server.ObjectController.POST """ if not self.path_to_test_xfs: - return + raise SkipTest timestamp = normalize_timestamp(time()) req = Request.blank('/sda1/p/a/c/o', environ={'REQUEST_METHOD': 'PUT'}, headers={'X-Timestamp': timestamp, @@ -92,7 +93,7 @@ class TestObjectController(unittest.TestCase): def test_POST_not_exist(self): if not self.path_to_test_xfs: - return + raise SkipTest timestamp = normalize_timestamp(time()) req = Request.blank('/sda1/p/a/c/fail', environ={'REQUEST_METHOD': 'POST'}, headers={'X-Timestamp': timestamp, @@ -114,7 +115,7 @@ class TestObjectController(unittest.TestCase): def test_POST_container_connection(self): if not self.path_to_test_xfs: - return + raise SkipTest def mock_http_connect(response, with_exc=False): class FakeConn(object): def __init__(self, status, with_exc): @@ -210,7 +211,7 @@ class TestObjectController(unittest.TestCase): def test_PUT_common(self): if not self.path_to_test_xfs: - return + raise SkipTest timestamp = normalize_timestamp(time()) req = Request.blank('/sda1/p/a/c/o', environ={'REQUEST_METHOD': 'PUT'}, headers={'X-Timestamp': timestamp, @@ -234,7 +235,7 @@ class TestObjectController(unittest.TestCase): def test_PUT_overwrite(self): if not self.path_to_test_xfs: - return + raise SkipTest req = Request.blank('/sda1/p/a/c/o', environ={'REQUEST_METHOD': 'PUT'}, headers={'X-Timestamp': normalize_timestamp(time()), 'Content-Length': '6', @@ -267,7 +268,7 @@ class TestObjectController(unittest.TestCase): def test_PUT_no_etag(self): if not self.path_to_test_xfs: - return + raise SkipTest req = Request.blank('/sda1/p/a/c/o', environ={'REQUEST_METHOD': 'PUT'}, headers={'X-Timestamp': normalize_timestamp(time()), 'Content-Type': 'text/plain'}) @@ -286,7 +287,7 @@ class TestObjectController(unittest.TestCase): def test_PUT_user_metadata(self): if not self.path_to_test_xfs: - return + raise SkipTest timestamp = normalize_timestamp(time()) req = Request.blank('/sda1/p/a/c/o', environ={'REQUEST_METHOD': 'PUT'}, headers={'X-Timestamp': timestamp, @@ -314,7 +315,7 @@ class TestObjectController(unittest.TestCase): def test_PUT_container_connection(self): if not self.path_to_test_xfs: - return + raise SkipTest def mock_http_connect(response, with_exc=False): class FakeConn(object): def __init__(self, status, with_exc): @@ -376,7 +377,7 @@ class TestObjectController(unittest.TestCase): def test_HEAD(self): """ Test swift.object_server.ObjectController.HEAD """ if not self.path_to_test_xfs: - return + raise SkipTest req = Request.blank('/sda1/p/a/c') resp = self.object_controller.HEAD(req) self.assertEquals(resp.status_int, 400) @@ -443,7 +444,7 @@ class TestObjectController(unittest.TestCase): def test_GET(self): """ Test swift.object_server.ObjectController.GET """ if not self.path_to_test_xfs: - return + raise SkipTest req = Request.blank('/sda1/p/a/c') resp = self.object_controller.GET(req) self.assertEquals(resp.status_int, 400) @@ -532,7 +533,7 @@ class TestObjectController(unittest.TestCase): def test_GET_if_match(self): if not self.path_to_test_xfs: - return + raise SkipTest req = Request.blank('/sda1/p/a/c/o', environ={'REQUEST_METHOD': 'PUT'}, headers={ 'X-Timestamp': normalize_timestamp(time()), @@ -586,7 +587,7 @@ class TestObjectController(unittest.TestCase): def test_GET_if_none_match(self): if not self.path_to_test_xfs: - return + raise SkipTest req = Request.blank('/sda1/p/a/c/o', environ={'REQUEST_METHOD': 'PUT'}, headers={ 'X-Timestamp': normalize_timestamp(time()), @@ -637,7 +638,7 @@ class TestObjectController(unittest.TestCase): def test_GET_if_modified_since(self): if not self.path_to_test_xfs: - return + raise SkipTest timestamp = normalize_timestamp(time()) req = Request.blank('/sda1/p/a/c/o', environ={'REQUEST_METHOD': 'PUT'}, headers={ @@ -674,7 +675,7 @@ class TestObjectController(unittest.TestCase): def test_GET_if_unmodified_since(self): if not self.path_to_test_xfs: - return + raise SkipTest timestamp = normalize_timestamp(time()) req = Request.blank('/sda1/p/a/c/o', environ={'REQUEST_METHOD': 'PUT'}, headers={ @@ -713,7 +714,7 @@ class TestObjectController(unittest.TestCase): def test_DELETE(self): """ Test swift.object_server.ObjectController.DELETE """ if not self.path_to_test_xfs: - return + raise SkipTest req = Request.blank('/sda1/p/a/c', environ={'REQUEST_METHOD': 'DELETE'}) resp = self.object_controller.DELETE(req) self.assertEquals(resp.status_int, 400) @@ -840,7 +841,7 @@ class TestObjectController(unittest.TestCase): def test_chunked_put(self): if not self.path_to_test_xfs: - return + raise SkipTest listener = listen(('localhost', 0)) port = listener.getsockname()[1] killer = spawn(wsgi.server, listener, self.object_controller, @@ -866,7 +867,7 @@ class TestObjectController(unittest.TestCase): def test_max_object_name_length(self): if not self.path_to_test_xfs: - return + raise SkipTest timestamp = normalize_timestamp(time()) req = Request.blank('/sda1/p/a/c/' + ('1' * 1024), environ={'REQUEST_METHOD': 'PUT'}, @@ -887,7 +888,7 @@ class TestObjectController(unittest.TestCase): def test_disk_file_app_iter_corners(self): if not self.path_to_test_xfs: - return + raise SkipTest df = object_server.DiskFile(self.testdir, 'sda1', '0', 'a', 'c', 'o') mkdirs(df.datadir) f = open(os.path.join(df.datadir, @@ -920,7 +921,7 @@ class TestObjectController(unittest.TestCase): def test_max_upload_time(self): if not self.path_to_test_xfs: - return + raise SkipTest class SlowBody(): def __init__(self): self.sent = 0 @@ -962,7 +963,7 @@ class TestObjectController(unittest.TestCase): def test_bad_sinces(self): if not self.path_to_test_xfs: - return + 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'}, @@ -988,7 +989,7 @@ class TestObjectController(unittest.TestCase): def test_content_encoding(self): if not self.path_to_test_xfs: - return + 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', diff --git a/test/unit/proxy/test_server.py b/test/unit/proxy/test_server.py index ce8d1ee4cb..20b9f95fec 100644 --- a/test/unit/proxy/test_server.py +++ b/test/unit/proxy/test_server.py @@ -19,6 +19,7 @@ import logging import os import sys import unittest +from nose import SkipTest from ConfigParser import ConfigParser from contextlib import contextmanager from cStringIO import StringIO @@ -1052,7 +1053,7 @@ class TestObjectController(unittest.TestCase): 'pointing to a valid directory.\n' \ 'Please set PATH_TO_TEST_XFS to a directory on an XFS file ' \ 'system for testing.' - return + raise SkipTest testdir = \ os.path.join(path_to_test_xfs, 'tmp_test_proxy_server_chunked') mkdirs(testdir)