639
639
def test_change_updated_at(self):
640
640
self._test_change('updated_at', timeutils.utcnow())
642
def test_change_location(self):
643
self._test_change('location', 'http://a/b/c')
642
def test_change_locations(self):
643
self._test_change('locations', ['http://a/b/c'])
644
self.assertRaises(exception.Forbidden,
645
self.image.locations.append, 'http://a/b/c')
646
self.assertRaises(exception.Forbidden,
647
self.image.locations.extend, ['http://a/b/c'])
648
self.assertRaises(exception.Forbidden,
649
self.image.locations.insert, 'foo')
650
self.assertRaises(exception.Forbidden,
651
self.image.locations.pop)
652
self.assertRaises(exception.Forbidden,
653
self.image.locations.remove, 'foo')
654
self.assertRaises(exception.Forbidden,
655
self.image.locations.reverse)
656
self.assertRaises(exception.Forbidden,
657
self.image.locations.sort)
658
self.assertRaises(exception.Forbidden,
659
self.image.locations.__delitem__, 0)
660
self.assertRaises(exception.Forbidden,
661
self.image.locations.__delslice__, 0, 2)
662
self.assertRaises(exception.Forbidden,
663
self.image.locations.__setitem__, 0, 'foo')
664
self.assertRaises(exception.Forbidden,
665
self.image.locations.__setslice__,
666
0, 2, ['foo', 'bar'])
667
self.assertRaises(exception.Forbidden,
668
self.image.locations.__iadd__, 'foo')
669
self.assertRaises(exception.Forbidden,
670
self.image.locations.__imul__, 2)
645
672
def test_change_size(self):
646
673
self._test_change('size', 32)
684
711
self.assertRaises(exception.Forbidden,
685
712
self.image.extra_properties.update, {})
714
def test_delete(self):
715
self.assertRaises(exception.Forbidden, self.image.delete)
717
def test_set_data(self):
718
self.assertRaises(exception.Forbidden,
719
self.image.set_data, 'blah', 4)
721
def test_get_data(self):
722
class FakeImage(object):
726
image = glance.api.authorization.ImmutableImageProxy(
727
FakeImage(), self.context)
728
self.assertEquals(image.get_data(), 'tiddlywinks')
688
731
class TestImageFactoryProxy(utils.BaseTestCase):