summaryrefslogtreecommitdiffstats
path: root/test/unit
diff options
context:
space:
mode:
Diffstat (limited to 'test/unit')
-rw-r--r--test/unit/common/test_constraints.py59
-rw-r--r--test/unit/proxy/test_server.py10
2 files changed, 66 insertions, 3 deletions
diff --git a/test/unit/common/test_constraints.py b/test/unit/common/test_constraints.py
index 7139094..180721c 100644
--- a/test/unit/common/test_constraints.py
+++ b/test/unit/common/test_constraints.py
@@ -16,7 +16,7 @@
import unittest
import swift.common.constraints
from nose import SkipTest
-from mock import patch
+from mock import Mock, patch
from gluster.swift.common import constraints as cnt
@@ -75,12 +75,65 @@ class TestConstraints(unittest.TestCase):
self.assertTrue(cnt.validate_obj_name_component('..'))
self.assertTrue(cnt.validate_obj_name_component(''))
+ def test_validate_headers(self):
+ req = Mock()
+ req.headers = []
+ self.assertEqual(cnt.validate_headers(req), '')
+ req.headers = ['x-some-header']
+ self.assertEqual(cnt.validate_headers(req), '')
+ req.headers = ['x-delete-at', 'x-some-header']
+ self.assertNotEqual(cnt.validate_headers(req), '')
+ req.headers = ['x-delete-after', 'x-some-header']
+ self.assertNotEqual(cnt.validate_headers(req), '')
+ req.headers = ['x-delete-at', 'x-delete-after', 'x-some-header']
+ self.assertNotEqual(cnt.validate_headers(req), '')
+
+ def test_validate_headers_ignoring_config_set(self):
+ with patch('gluster.swift.common.constraints.'
+ 'Glusterfs._ignore_unsupported_headers', True):
+ req = Mock()
+ req.headers = []
+ self.assertEqual(cnt.validate_headers(req), '')
+ req.headers = ['x-some-header']
+ self.assertEqual(cnt.validate_headers(req), '')
+ req.headers = ['x-delete-at', 'x-some-header']
+ self.assertEqual(cnt.validate_headers(req), '')
+ req.headers = ['x-delete-after', 'x-some-header']
+ self.assertEqual(cnt.validate_headers(req), '')
+ req.headers = ['x-delete-at', 'x-delete-after', 'x-some-header']
+ self.assertEqual(cnt.validate_headers(req), '')
+
+ def test_gluster_check_metadata(self):
+ mock_check_metadata = Mock()
+ with patch('gluster.swift.common.constraints.__check_metadata',
+ mock_check_metadata):
+ req = Mock()
+ req.headers = []
+ cnt.gluster_check_metadata(req, 'object')
+ self.assertTrue(1, mock_check_metadata.call_count)
+ cnt.gluster_check_metadata(req, 'object', POST=False)
+ self.assertTrue(1, mock_check_metadata.call_count)
+ req.headers = ['x-some-header']
+ self.assertEqual(cnt.gluster_check_metadata(req, 'object', POST=False), None)
+ req.headers = ['x-delete-at', 'x-some-header']
+ self.assertNotEqual(cnt.gluster_check_metadata(req, 'object', POST=False), None)
+ req.headers = ['x-delete-after', 'x-some-header']
+ self.assertNotEqual(cnt.gluster_check_metadata(req, 'object', POST=False), None)
+ req.headers = ['x-delete-at', 'x-delete-after', 'x-some-header']
+ self.assertNotEqual(cnt.gluster_check_metadata(req, 'object', POST=False), None)
+
def test_gluster_check_object_creation(self):
with patch('gluster.swift.common.constraints.__check_object_creation',
mock_check_object_creation):
- self.assertFalse(cnt.gluster_check_object_creation(None, 'dir/z'))
+ req = Mock()
+ req.headers = []
+ self.assertFalse(cnt.gluster_check_object_creation(req, 'dir/z'))
def test_gluster_check_object_creation_err(self):
with patch('gluster.swift.common.constraints.__check_object_creation',
mock_check_object_creation):
- self.assertTrue(cnt.gluster_check_object_creation(None, 'dir/.'))
+ req = Mock()
+ req.headers = []
+ self.assertTrue(cnt.gluster_check_object_creation(req, 'dir/.'))
+ req.headers = ['x-delete-at']
+ self.assertTrue(cnt.gluster_check_object_creation(req, 'dir/z'))
diff --git a/test/unit/proxy/test_server.py b/test/unit/proxy/test_server.py
index 3745a9f..4467b12 100644
--- a/test/unit/proxy/test_server.py
+++ b/test/unit/proxy/test_server.py
@@ -4358,6 +4358,7 @@ class TestObjectController(unittest.TestCase):
self.assert_(called[0])
def test_POST_converts_delete_after_to_delete_at(self):
+ raise SkipTest("X-Delete-At and X-Delete-After are not supported")
with save_globals():
controller = proxy_server.ObjectController(self.app, 'account',
'container', 'object')
@@ -4394,6 +4395,7 @@ class TestObjectController(unittest.TestCase):
time.time = orig_time
def test_POST_non_int_delete_after(self):
+ raise SkipTest("X-Delete-At and X-Delete-After are not supported")
with save_globals():
controller = proxy_server.ObjectController(self.app, 'account',
'container', 'object')
@@ -4408,6 +4410,7 @@ class TestObjectController(unittest.TestCase):
self.assertTrue('Non-integer X-Delete-After' in res.body)
def test_POST_negative_delete_after(self):
+ raise SkipTest("X-Delete-At and X-Delete-After are not supported")
with save_globals():
controller = proxy_server.ObjectController(self.app, 'account',
'container', 'object')
@@ -4422,6 +4425,7 @@ class TestObjectController(unittest.TestCase):
self.assertTrue('X-Delete-At in past' in res.body)
def test_POST_delete_at(self):
+ raise SkipTest("X-Delete-At and X-Delete-After are not supported")
with save_globals():
given_headers = {}
@@ -4466,6 +4470,7 @@ class TestObjectController(unittest.TestCase):
self.assertTrue('X-Delete-At in past' in resp.body)
def test_PUT_converts_delete_after_to_delete_at(self):
+ raise SkipTest("X-Delete-At and X-Delete-After are not supported")
with save_globals():
controller = proxy_server.ObjectController(self.app, 'account',
'container', 'object')
@@ -4488,6 +4493,7 @@ class TestObjectController(unittest.TestCase):
time.time = orig_time
def test_PUT_non_int_delete_after(self):
+ raise SkipTest("X-Delete-At and X-Delete-After are not supported")
with save_globals():
controller = proxy_server.ObjectController(self.app, 'account',
'container', 'object')
@@ -4503,6 +4509,7 @@ class TestObjectController(unittest.TestCase):
self.assertTrue('Non-integer X-Delete-After' in res.body)
def test_PUT_negative_delete_after(self):
+ raise SkipTest("X-Delete-At and X-Delete-After are not supported")
with save_globals():
controller = proxy_server.ObjectController(self.app, 'account',
'container', 'object')
@@ -4518,6 +4525,7 @@ class TestObjectController(unittest.TestCase):
self.assertTrue('X-Delete-At in past' in res.body)
def test_PUT_delete_at(self):
+ raise SkipTest("X-Delete-At and X-Delete-After are not supported")
with save_globals():
given_headers = {}
@@ -4894,6 +4902,7 @@ class TestObjectController(unittest.TestCase):
@mock.patch('time.time', new=lambda: STATIC_TIME)
def test_PUT_x_delete_at_with_fewer_container_replicas(self):
+ raise SkipTest("X-Delete-At and X-Delete-After are not supported")
self.app.container_ring.set_replicas(2)
delete_at_timestamp = int(time.time()) + 100000
@@ -4929,6 +4938,7 @@ class TestObjectController(unittest.TestCase):
@mock.patch('time.time', new=lambda: STATIC_TIME)
def test_PUT_x_delete_at_with_more_container_replicas(self):
+ raise SkipTest("X-Delete-At and X-Delete-After are not supported")
self.app.container_ring.set_replicas(4)
self.app.expiring_objects_account = 'expires'
self.app.expiring_objects_container_divisor = 60