25
27
class TestConstraints(unittest.TestCase):
29
def assertIn(self, member, container, msg=None):
31
if member not in container:
32
standardMsg = '%s not found in %s' % (safe_repr(member),
34
self.fail(self._formatMessage(msg, standardMsg))
27
36
def test_check_metadata_empty(self):
29
38
self.assertEquals(constraints.check_metadata(Request.blank('/',
48
57
headers = {'X-Object-Meta-%s' % name: 'v'}
49
58
self.assertEquals(constraints.check_metadata(Request.blank('/',
50
59
headers=headers), 'object').status_int, HTTP_BAD_REQUEST)
60
self.assertIn(('X-Object-Meta-%s' % name).lower(),
61
constraints.check_metadata(Request.blank('/', headers=headers),
62
'object').body.lower())
52
64
def test_check_metadata_value_length(self):
53
65
value = 'a' * constraints.MAX_META_VALUE_LENGTH
58
70
headers = {'X-Object-Meta-Name': value}
59
71
self.assertEquals(constraints.check_metadata(Request.blank('/',
60
72
headers=headers), 'object').status_int, HTTP_BAD_REQUEST)
73
self.assertIn('x-object-meta-name',
74
constraints.check_metadata(Request.blank('/', headers=headers),
75
'object').body.lower())
76
self.assertIn(str(constraints.MAX_META_VALUE_LENGTH),
77
constraints.check_metadata(Request.blank('/', headers=headers),
62
80
def test_check_metadata_count(self):
171
189
def test_check_mount(self):
172
190
self.assertFalse(constraints.check_mount('', ''))
173
constraints.os = MockTrue() # mock os module
174
self.assertTrue(constraints.check_mount('/srv', '1'))
175
self.assertTrue(constraints.check_mount('/srv', 'foo-bar'))
176
self.assertTrue(constraints.check_mount('/srv', '003ed03c-242a-4b2f-bee9-395f801d1699'))
177
self.assertFalse(constraints.check_mount('/srv', 'foo bar'))
178
self.assertFalse(constraints.check_mount('/srv', 'foo/bar'))
179
self.assertFalse(constraints.check_mount('/srv', 'foo?bar'))
180
reload(constraints) # put it back
191
with mock.patch("swift.common.constraints.ismount", MockTrue()):
192
self.assertTrue(constraints.check_mount('/srv', '1'))
193
self.assertTrue(constraints.check_mount('/srv', 'foo-bar'))
194
self.assertTrue(constraints.check_mount('/srv', '003ed03c-242a-4b2f-bee9-395f801d1699'))
195
self.assertFalse(constraints.check_mount('/srv', 'foo bar'))
196
self.assertFalse(constraints.check_mount('/srv', 'foo/bar'))
197
self.assertFalse(constraints.check_mount('/srv', 'foo?bar'))
182
199
def test_check_float(self):
183
200
self.assertFalse(constraints.check_float(''))
209
226
'ab' * constraints.MAX_HEADER_SIZE})
210
227
self.assertEquals(constraints.check_metadata(req, 'object').status_int,
211
228
HTTP_BAD_REQUEST)
229
self.assertIn('x-object-meta-hello', constraints.check_metadata(req,
230
'object').body.lower())
213
232
def test_validate_constraints(self):