285
285
for image in images:
286
286
self.assertEqual('new name! #123', image['name'])
288
def test_get_index_sort_default_created_at_desc(self):
290
Tests that the /images registry API returns list of
291
public images that conforms to a default sort key/dir
293
time1 = datetime.datetime.utcnow() + datetime.timedelta(seconds=5)
294
time2 = datetime.datetime.utcnow()
296
extra_fixture = {'id': 3,
299
'disk_format': 'vhd',
300
'container_format': 'ovf',
301
'name': 'new name! #123',
306
glance.registry.db.api.image_create(None, extra_fixture)
308
extra_fixture = {'id': 4,
311
'disk_format': 'vhd',
312
'container_format': 'ovf',
313
'name': 'new name! #123',
318
glance.registry.db.api.image_create(None, extra_fixture)
320
extra_fixture = {'id': 5,
323
'disk_format': 'vhd',
324
'container_format': 'ovf',
325
'name': 'new name! #123',
330
glance.registry.db.api.image_create(None, extra_fixture)
332
req = webob.Request.blank('/images')
333
res = req.get_response(self.api)
334
res_dict = json.loads(res.body)
335
self.assertEquals(res.status_int, 200)
337
images = res_dict['images']
338
self.assertEquals(len(images), 4)
339
self.assertEquals(int(images[0]['id']), 4)
340
self.assertEquals(int(images[1]['id']), 3)
341
self.assertEquals(int(images[2]['id']), 5)
342
self.assertEquals(int(images[3]['id']), 2)
344
def test_get_index_bad_sort_key(self):
345
"""Ensure a 400 is returned when a bad sort_key is provided."""
346
req = webob.Request.blank('/images?sort_key=asdf')
347
res = req.get_response(self.api)
348
self.assertEqual(400, res.status_int)
350
def test_get_index_bad_sort_dir(self):
351
"""Ensure a 400 is returned when a bad sort_dir is provided."""
352
req = webob.Request.blank('/images?sort_dir=asdf')
353
res = req.get_response(self.api)
354
self.assertEqual(400, res.status_int)
356
def test_get_index_sort_id_desc(self):
358
Tests that the /images registry API returns list of
359
public images sorted by id in descending order.
361
extra_fixture = {'id': 3,
364
'disk_format': 'vhd',
365
'container_format': 'ovf',
370
glance.registry.db.api.image_create(None, extra_fixture)
372
extra_fixture = {'id': 4,
375
'disk_format': 'vhd',
376
'container_format': 'ovf',
381
glance.registry.db.api.image_create(None, extra_fixture)
383
req = webob.Request.blank('/images?sort_key=id&sort_dir=desc')
384
res = req.get_response(self.api)
385
self.assertEquals(res.status_int, 200)
386
res_dict = json.loads(res.body)
388
images = res_dict['images']
389
self.assertEquals(len(images), 3)
390
self.assertEquals(int(images[0]['id']), 4)
391
self.assertEquals(int(images[1]['id']), 3)
392
self.assertEquals(int(images[2]['id']), 2)
394
def test_get_index_sort_name_asc(self):
396
Tests that the /images registry API returns list of
397
public images sorted alphabetically by name in
400
extra_fixture = {'id': 3,
403
'disk_format': 'vhd',
404
'container_format': 'ovf',
409
glance.registry.db.api.image_create(None, extra_fixture)
411
extra_fixture = {'id': 4,
414
'disk_format': 'vhd',
415
'container_format': 'ovf',
420
glance.registry.db.api.image_create(None, extra_fixture)
422
req = webob.Request.blank('/images?sort_key=name&sort_dir=asc')
423
res = req.get_response(self.api)
424
self.assertEquals(res.status_int, 200)
425
res_dict = json.loads(res.body)
427
images = res_dict['images']
428
self.assertEquals(len(images), 3)
429
self.assertEquals(int(images[0]['id']), 3)
430
self.assertEquals(int(images[1]['id']), 2)
431
self.assertEquals(int(images[2]['id']), 4)
433
def test_get_index_sort_status_desc(self):
435
Tests that the /images registry API returns list of
436
public images sorted alphabetically by status in
439
extra_fixture = {'id': 3,
442
'disk_format': 'vhd',
443
'container_format': 'ovf',
448
glance.registry.db.api.image_create(None, extra_fixture)
450
extra_fixture = {'id': 4,
453
'disk_format': 'vhd',
454
'container_format': 'ovf',
459
glance.registry.db.api.image_create(None, extra_fixture)
461
req = webob.Request.blank('/images?sort_key=status&sort_dir=desc')
462
res = req.get_response(self.api)
463
self.assertEquals(res.status_int, 200)
464
res_dict = json.loads(res.body)
466
images = res_dict['images']
467
self.assertEquals(len(images), 3)
468
self.assertEquals(int(images[0]['id']), 3)
469
self.assertEquals(int(images[1]['id']), 4)
470
self.assertEquals(int(images[2]['id']), 2)
472
def test_get_index_sort_disk_format_asc(self):
474
Tests that the /images registry API returns list of
475
public images sorted alphabetically by disk_format in
478
extra_fixture = {'id': 3,
481
'disk_format': 'ami',
482
'container_format': 'ami',
487
glance.registry.db.api.image_create(None, extra_fixture)
489
extra_fixture = {'id': 4,
492
'disk_format': 'vdi',
493
'container_format': 'ovf',
498
glance.registry.db.api.image_create(None, extra_fixture)
500
req = webob.Request.blank('/images?sort_key=disk_format&sort_dir=asc')
501
res = req.get_response(self.api)
502
self.assertEquals(res.status_int, 200)
503
res_dict = json.loads(res.body)
505
images = res_dict['images']
506
self.assertEquals(len(images), 3)
507
self.assertEquals(int(images[0]['id']), 3)
508
self.assertEquals(int(images[1]['id']), 4)
509
self.assertEquals(int(images[2]['id']), 2)
511
def test_get_index_sort_container_format_desc(self):
513
Tests that the /images registry API returns list of
514
public images sorted alphabetically by container_format in
517
extra_fixture = {'id': 3,
520
'disk_format': 'ami',
521
'container_format': 'ami',
526
glance.registry.db.api.image_create(None, extra_fixture)
528
extra_fixture = {'id': 4,
531
'disk_format': 'iso',
532
'container_format': 'bare',
537
glance.registry.db.api.image_create(None, extra_fixture)
539
url = '/images?sort_key=container_format&sort_dir=desc'
540
req = webob.Request.blank(url)
541
res = req.get_response(self.api)
542
self.assertEquals(res.status_int, 200)
543
res_dict = json.loads(res.body)
545
images = res_dict['images']
546
self.assertEquals(len(images), 3)
547
self.assertEquals(int(images[0]['id']), 2)
548
self.assertEquals(int(images[1]['id']), 4)
549
self.assertEquals(int(images[2]['id']), 3)
551
def test_get_index_sort_size_asc(self):
553
Tests that the /images registry API returns list of
554
public images sorted by size in ascending order.
556
extra_fixture = {'id': 3,
559
'disk_format': 'ami',
560
'container_format': 'ami',
565
glance.registry.db.api.image_create(None, extra_fixture)
567
extra_fixture = {'id': 4,
570
'disk_format': 'iso',
571
'container_format': 'bare',
576
glance.registry.db.api.image_create(None, extra_fixture)
578
url = '/images?sort_key=size&sort_dir=asc'
579
req = webob.Request.blank(url)
580
res = req.get_response(self.api)
581
self.assertEquals(res.status_int, 200)
582
res_dict = json.loads(res.body)
584
images = res_dict['images']
585
self.assertEquals(len(images), 3)
586
self.assertEquals(int(images[0]['id']), 4)
587
self.assertEquals(int(images[1]['id']), 2)
588
self.assertEquals(int(images[2]['id']), 3)
590
def test_get_index_sort_created_at_asc(self):
592
Tests that the /images registry API returns list of
593
public images sorted by created_at in ascending order.
595
now = datetime.datetime.utcnow()
596
time1 = now + datetime.timedelta(seconds=5)
599
extra_fixture = {'id': 3,
602
'disk_format': 'vhd',
603
'container_format': 'ovf',
604
'name': 'new name! #123',
609
glance.registry.db.api.image_create(None, extra_fixture)
611
extra_fixture = {'id': 4,
614
'disk_format': 'vhd',
615
'container_format': 'ovf',
616
'name': 'new name! #123',
621
glance.registry.db.api.image_create(None, extra_fixture)
623
req = webob.Request.blank('/images?sort_key=created_at&sort_dir=asc')
624
res = req.get_response(self.api)
625
self.assertEquals(res.status_int, 200)
626
res_dict = json.loads(res.body)
628
images = res_dict['images']
629
self.assertEquals(len(images), 3)
630
self.assertEquals(int(images[0]['id']), 2)
631
self.assertEquals(int(images[1]['id']), 4)
632
self.assertEquals(int(images[2]['id']), 3)
634
def test_get_index_sort_updated_at_desc(self):
636
Tests that the /images registry API returns list of
637
public images sorted by updated_at in descending order.
639
now = datetime.datetime.utcnow()
640
time1 = now + datetime.timedelta(seconds=5)
643
extra_fixture = {'id': 3,
646
'disk_format': 'vhd',
647
'container_format': 'ovf',
648
'name': 'new name! #123',
654
glance.registry.db.api.image_create(None, extra_fixture)
656
extra_fixture = {'id': 4,
659
'disk_format': 'vhd',
660
'container_format': 'ovf',
661
'name': 'new name! #123',
667
glance.registry.db.api.image_create(None, extra_fixture)
669
req = webob.Request.blank('/images?sort_key=updated_at&sort_dir=desc')
670
res = req.get_response(self.api)
671
self.assertEquals(res.status_int, 200)
672
res_dict = json.loads(res.body)
674
images = res_dict['images']
675
self.assertEquals(len(images), 3)
676
self.assertEquals(int(images[0]['id']), 3)
677
self.assertEquals(int(images[1]['id']), 4)
678
self.assertEquals(int(images[2]['id']), 2)
288
680
def test_get_details(self):
289
681
"""Tests that the /images/detail registry API returns
290
682
a mapping containing a list of detailed image information