Revision d6a92fa0 snf-pithos-app/pithos/api/test/accounts.py

b/snf-pithos-app/pithos/api/test/accounts.py
37 37
from pithos.api.test import PithosAPITest, AssertMappingInvariant,\
38 38
    DATE_FORMATS
39 39

  
40
from synnefo.lib import join_urls
41

  
40 42
import time as _time
41 43
import datetime
42 44

  
......
181 183
        t1_formats = map(t1.strftime, DATE_FORMATS)
182 184

  
183 185
        # Check not modified
186
        url = join_urls(self.pithos_path, self.user)
184 187
        for t in t1_formats:
185
            r = self.get('/v1/%s' % self.user, HTTP_IF_MODIFIED_SINCE=t)
188
            r = self.get(url, HTTP_IF_MODIFIED_SINCE=t)
186 189
            self.assertEqual(r.status_code, 304)
187 190

  
188 191
        # modify account: add container
......
191 194

  
192 195
        # Check modified
193 196
        for t in t1_formats:
194
            r = self.get('/v1/%s' % self.user, HTTP_IF_MODIFIED_SINCE=t)
197
            r = self.get('%s' % url, HTTP_IF_MODIFIED_SINCE=t)
195 198
            self.assertEqual(r.status_code, 200)
196 199
            self.assertEqual(
197 200
                r.content.split('\n')[:-1],
......
208 211

  
209 212
        # Check modified
210 213
        for t in t2_formats:
211
            r = self.get('/v1/%s' % self.user, HTTP_IF_MODIFIED_SINCE=t)
214
            r = self.get('%s' % url, HTTP_IF_MODIFIED_SINCE=t)
212 215
            self.assertEqual(r.status_code, 200)
213 216
            self.assertEqual(
214 217
                r.content.split('\n')[:-1],
215 218
                ['apples', 'bananas', 'c1', 'kiwis', 'oranges', 'pears'])
216 219

  
217 220
    def test_if_modified_since_invalid_date(self):
218
        r = self.get('/v1/%s' % self.user, HTTP_IF_MODIFIED_SINCE='Monday')
221
        url = join_urls(self.pithos_path, self.user)
222
        r = self.get('%s' % url, HTTP_IF_MODIFIED_SINCE='Monday')
219 223
        self.assertEqual(r.status_code, 200)
220 224
        self.assertEqual(
221 225
            r.content.split('\n')[:-1],
222 226
            ['apples', 'bananas', 'kiwis', 'oranges', 'pears'])
223 227

  
224 228
    def test_if_not_modified_since(self):
229
        url = join_urls(self.pithos_path, self.user)
225 230
        account_info = self.get_account_info()
226 231
        last_modified = account_info['Last-Modified']
227 232
        t = datetime.datetime.strptime(last_modified, DATE_FORMATS[-1])
......
230 235
        t1 = t + datetime.timedelta(seconds=1)
231 236
        t1_formats = map(t1.strftime, DATE_FORMATS)
232 237
        for t in t1_formats:
233
            r = self.get('/v1/%s' % self.user, HTTP_IF_UNMODIFIED_SINCE=t)
238
            r = self.get(url, HTTP_IF_UNMODIFIED_SINCE=t)
234 239
            self.assertEqual(r.status_code, 200)
235 240
            self.assertEqual(
236 241
                r.content.split('\n')[:-1],
......
248 253

  
249 254
        # Check modified
250 255
        for t in t2_formats:
251
            r = self.get('/v1/%s' % self.user, HTTP_IF_UNMODIFIED_SINCE=t)
256
            r = self.get(url, HTTP_IF_UNMODIFIED_SINCE=t)
252 257
            self.assertEqual(r.status_code, 412)
253 258

  
254 259
        # modify account: update account meta
......
263 268

  
264 269
        # Check modified
265 270
        for t in t3_formats:
266
            r = self.get('/v1/%s' % self.user, HTTP_IF_UNMODIFIED_SINCE=t)
271
            r = self.get(url, HTTP_IF_UNMODIFIED_SINCE=t)
267 272
            self.assertEqual(r.status_code, 412)
268 273

  
269 274
    def test_if_unmodified_since_invalid_date(self):
270
        r = self.get('/v1/%s' % self.user, HTTP_IF_UNMODIFIED_SINCE='Monday')
275
        url = join_urls(self.pithos_path, self.user)
276
        r = self.get(url, HTTP_IF_UNMODIFIED_SINCE='Monday')
271 277
        self.assertEqual(r.status_code, 200)
272 278
        self.assertEqual(
273 279
            r.content.split('\n')[:-1],
......
292 298
        self.update_account_meta({'foo': 'bar'})
293 299

  
294 300
    def test_update_meta(self):
301
        url = join_urls(self.pithos_path, self.user)
295 302
        with AssertMappingInvariant(self.get_account_groups):
296 303
            initial = self.get_account_meta()
297 304

  
298 305
            meta = {'test': 'tost', 'ping': 'pong'}
299 306
            kwargs = dict(('HTTP_X_ACCOUNT_META_%s' % k, str(v))
300 307
                          for k, v in meta.items())
301
            r = self.post('/v1/%s?update=' % self.user, **kwargs)
308
            r = self.post('%s?update=' % url, **kwargs)
302 309
            self.assertEqual(r.status_code, 202)
303 310

  
304 311
            meta.update(initial)
......
309 316
                k, v in meta.items())
310 317

  
311 318
    def test_reset_meta(self):
319
        url = join_urls(self.pithos_path, self.user)
312 320
        with AssertMappingInvariant(self.get_account_groups):
313 321
            meta = {'test': 'tost', 'ping': 'pong'}
314 322
            self.update_account_meta(meta)
......
317 325
            kwargs = dict((
318 326
                'HTTP_X_ACCOUNT_META_%s' % k, str(v)
319 327
            ) for k, v in new_meta.items())
320
            r = self.post('/v1/%s' % self.user, **kwargs)
328
            r = self.post(url, **kwargs)
321 329
            self.assertEqual(r.status_code, 202)
322 330

  
323 331
            account_meta = self.get_account_meta()
......
330 338
                k in meta.keys())
331 339

  
332 340
    def test_delete_meta(self):
341
        url = join_urls(self.pithos_path, self.user)
333 342
        with AssertMappingInvariant(self.get_account_groups):
334 343
            meta = {'test': 'tost', 'ping': 'pong'}
335 344
            self.update_account_meta(meta)
336 345

  
337 346
            kwargs = dict(
338 347
                ('HTTP_X_ACCOUNT_META_%s' % k, '') for k, v in meta.items())
339
            r = self.post('/v1/%s?update=' % self.user, **kwargs)
348
            r = self.post('%s?update=' % url, **kwargs)
340 349
            self.assertEqual(r.status_code, 202)
341 350

  
342 351
            account_meta = self.get_account_meta()
......
345 354
                k in meta.keys())
346 355

  
347 356
    def test_set_account_groups(self):
357
        url = join_urls(self.pithos_path, self.user)
348 358
        with AssertMappingInvariant(self.get_account_meta):
349 359
            pithosdevs = ['verigak', 'gtsouk', 'chazapis']
350
            r = self.post(
351
                '/v1/%s?update=' % self.user,
352
                HTTP_X_ACCOUNT_GROUP_PITHOSDEV=','.join(pithosdevs))
360
            r = self.post('%s?update=' % url,
361
                          HTTP_X_ACCOUNT_GROUP_PITHOSDEV=','.join(pithosdevs))
353 362
            self.assertEqual(r.status_code, 202)
354 363

  
355 364
            account_groups = self.get_account_groups()
......
360 369
                ','.join(sorted(pithosdevs)))
361 370

  
362 371
            clientdevs = ['pkanavos', 'mvasilak']
363
            r = self.post(
364
                '/v1/%s?update=' % self.user,
365
                HTTP_X_ACCOUNT_GROUP_CLIENTSDEV=','.join(clientdevs))
372
            r = self.post('%s?update=' % url,
373
                          HTTP_X_ACCOUNT_GROUP_CLIENTSDEV=','.join(clientdevs))
366 374
            self.assertEqual(r.status_code, 202)
367 375

  
368 376
            account_groups = self.get_account_groups()
......
378 386
                ','.join(sorted(clientdevs)))
379 387

  
380 388
            clientdevs = ['mvasilak']
381
            r = self.post(
382
                '/v1/%s?update=' % self.user,
383
                HTTP_X_ACCOUNT_GROUP_CLIENTSDEV=''.join(clientdevs))
389
            r = self.post('%s?update=' % url,
390
                          HTTP_X_ACCOUNT_GROUP_CLIENTSDEV=''.join(clientdevs))
384 391
            self.assertEqual(r.status_code, 202)
385 392

  
386 393
            account_groups = self.get_account_groups()
......
396 403
                ','.join(sorted(clientdevs)))
397 404

  
398 405
    def test_reset_account_groups(self):
406
        url = join_urls(self.pithos_path, self.user)
399 407
        with AssertMappingInvariant(self.get_account_meta):
400 408
            groups = {'pithosdev': ['verigak', 'gtsouk', 'chazapis'],
401 409
                      'clientsdev': ['pkanavos', 'mvasilak']}
402 410
            headers = dict(('HTTP_X_ACCOUNT_GROUP_%s' % k, ','.join(v))
403 411
                           for k, v in groups.iteritems())
404
            r = self.post('/v1/%s?update=' % self.user, **headers)
412
            r = self.post('%s?update=' % url, **headers)
405 413
            self.assertEqual(r.status_code, 202)
406 414

  
407 415
            groups = {'pithosdev': ['verigak',
......
413 421
            account_meta = self.get_account_meta()
414 422
            headers.update(dict(('HTTP_%s' % k.upper().replace('-', '_'), v)
415 423
                           for k, v in account_meta.iteritems()))
416
            r = self.post('/v1/%s' % self.user, **headers)
424
            r = self.post(url, **headers)
417 425
            self.assertEqual(r.status_code, 202)
418 426

  
419 427
            account_groups = self.get_account_groups()
......
426 434
                ','.join(sorted(groups['pithosdev'])))
427 435

  
428 436
    def test_delete_account_groups(self):
437
        url = join_urls(self.pithos_path, self.user)
429 438
        with AssertMappingInvariant(self.get_account_meta):
430 439
            groups = {'pithosdev': ['verigak', 'gtsouk', 'chazapis'],
431 440
                      'clientsdev': ['pkanavos', 'mvasilak']}
432 441
            headers = dict(('HTTP_X_ACCOUNT_GROUP_%s' % k, ','.join(v))
433 442
                           for k, v in groups.iteritems())
434
            self.post('/v1/%s?update=' % self.user, **headers)
443
            self.post('%s?update=' % url, **headers)
435 444

  
436 445
            kwargs = dict(('HTTP_X_ACCOUNT_GROUP_%s' % k, '')
437 446
                          for k, v in groups.items())
438
            r = self.post('/v1/%s?update=' % self.user, **kwargs)
447
            r = self.post('%s?update=' % url, **kwargs)
439 448
            self.assertEqual(r.status_code, 202)
440 449

  
441 450
            account_groups = self.get_account_groups()

Also available in: Unified diff