~gandelman-a/ubuntu/precise/glance/899970

« back to all changes in this revision

Viewing changes to glance/tests/unit/test_api.py

  • Committer: Package Import Robot
  • Author(s): Chuck Short, Chuck Short, Monty Taylor, Scott Moser, Ben Howard
  • Date: 2011-08-26 10:13:39 UTC
  • mfrom: (1.1.11 upstream)
  • Revision ID: package-import@ubuntu.com-20110826101339-mn8akhehsitvjgld
Tags: 2011.3~d4-0ubuntu1
[Chuck Short]
* New upstream release.

[ Monty Taylor ]
* New upstream release.
* Added python-kombu as Depends and Build-depends.

[ Scott Moser ]
* glance.postinst: use a trailing slash when using chown on directories

[ Ben Howard ]
* Install /etc/glance-scrubber.conf by default (LP: #816972)
* Remove glance user and logs on purge (LP: #828721)
* Converted dh to use "--with python2".
* Incremented standards version to 3.9.2; no changes required

Show diffs side-by-side

added added

removed removed

Lines of Context:
27
27
 
28
28
from glance.api import v1 as server
29
29
from glance.common import context
 
30
from glance.registry import context as rcontext
30
31
from glance.registry import server as rserver
31
32
from glance.registry.db import api as db_api
32
33
from glance.registry.db import models as db_models
38
39
           'registry_host': '0.0.0.0',
39
40
           'registry_port': '9191',
40
41
           'default_store': 'file',
41
 
           'filesystem_store_datadir': stubs.FAKE_FILESYSTEM_ROOTDIR}
 
42
           'filesystem_store_datadir': stubs.FAKE_FILESYSTEM_ROOTDIR,
 
43
           'context_class': 'glance.registry.context.RequestContext'}
42
44
 
43
45
 
44
46
class TestRegistryAPI(unittest.TestCase):
77
79
             'size': 19,
78
80
             'location': "file:///tmp/glance-tests/2",
79
81
             'properties': {}}]
80
 
        self.context = context.RequestContext(is_admin=True)
 
82
        self.context = rcontext.RequestContext(is_admin=True)
81
83
        db_api.configure_db(OPTIONS)
82
84
        self.destroy_fixtures()
83
85
        self.create_fixtures()
1519
1521
        self.assertEquals(res.status_int,
1520
1522
                          webob.exc.HTTPNotFound.code)
1521
1523
 
 
1524
    def test_get_image_members(self):
 
1525
        """
 
1526
        Tests members listing for existing images
 
1527
        """
 
1528
        req = webob.Request.blank('/images/2/members')
 
1529
 
 
1530
        req.method = 'GET'
 
1531
 
 
1532
        res = req.get_response(self.api)
 
1533
        self.assertEquals(res.status_int, 200)
 
1534
 
 
1535
        memb_list = json.loads(res.body)
 
1536
        num_members = len(memb_list['members'])
 
1537
        self.assertEquals(num_members, 0)
 
1538
 
 
1539
    def test_get_image_members_not_existing(self):
 
1540
        """
 
1541
        Tests proper exception is raised if attempt to get members of
 
1542
        non-existing image
 
1543
        """
 
1544
        req = webob.Request.blank('/images/3/members')
 
1545
 
 
1546
        req.method = 'GET'
 
1547
 
 
1548
        res = req.get_response(self.api)
 
1549
        self.assertEquals(res.status_int,
 
1550
                          webob.exc.HTTPNotFound.code)
 
1551
 
 
1552
    def test_get_member_images(self):
 
1553
        """
 
1554
        Tests image listing for members
 
1555
        """
 
1556
        req = webob.Request.blank('/shared-images/pattieblack')
 
1557
 
 
1558
        req.method = 'GET'
 
1559
 
 
1560
        res = req.get_response(self.api)
 
1561
        self.assertEquals(res.status_int, 200)
 
1562
 
 
1563
        memb_list = json.loads(res.body)
 
1564
        num_members = len(memb_list['shared_images'])
 
1565
        self.assertEquals(num_members, 0)
 
1566
 
 
1567
    def test_replace_members(self):
 
1568
        """
 
1569
        Tests replacing image members raises right exception
 
1570
        """
 
1571
        fixture = dict(member_id='pattieblack')
 
1572
 
 
1573
        req = webob.Request.blank('/images/2/members')
 
1574
 
 
1575
        req.method = 'PUT'
 
1576
        req.content_type = 'application/json'
 
1577
        req.body = json.dumps(dict(image_memberships=fixture))
 
1578
 
 
1579
        res = req.get_response(self.api)
 
1580
        self.assertEquals(res.status_int, webob.exc.HTTPUnauthorized.code)
 
1581
 
 
1582
    def test_add_member(self):
 
1583
        """
 
1584
        Tests adding image members raises right exception
 
1585
        """
 
1586
        req = webob.Request.blank('/images/2/members/pattieblack')
 
1587
 
 
1588
        req.method = 'PUT'
 
1589
 
 
1590
        res = req.get_response(self.api)
 
1591
        self.assertEquals(res.status_int, webob.exc.HTTPUnauthorized.code)
 
1592
 
 
1593
    def test_delete_member(self):
 
1594
        """
 
1595
        Tests deleting image members raises right exception
 
1596
        """
 
1597
        req = webob.Request.blank('/images/2/members/pattieblack')
 
1598
 
 
1599
        req.method = 'DELETE'
 
1600
 
 
1601
        res = req.get_response(self.api)
 
1602
        self.assertEquals(res.status_int, webob.exc.HTTPUnauthorized.code)
 
1603
 
1522
1604
 
1523
1605
class TestGlanceAPI(unittest.TestCase):
1524
1606
    def setUp(self):
1558
1640
             'size': 19,
1559
1641
             'location': "file:///tmp/glance-tests/2",
1560
1642
             'properties': {}}]
1561
 
        self.context = context.RequestContext(is_admin=True)
 
1643
        self.context = rcontext.RequestContext(is_admin=True)
1562
1644
        db_api.configure_db(OPTIONS)
1563
1645
        self.destroy_fixtures()
1564
1646
        self.create_fixtures()
1898
1980
        req = webob.Request.blank('/images/detail?marker=10')
1899
1981
        res = req.get_response(self.api)
1900
1982
        self.assertEquals(res.status_int, 400)
 
1983
 
 
1984
    def test_get_image_members(self):
 
1985
        """
 
1986
        Tests members listing for existing images
 
1987
        """
 
1988
        req = webob.Request.blank('/images/2/members')
 
1989
 
 
1990
        req.method = 'GET'
 
1991
 
 
1992
        res = req.get_response(self.api)
 
1993
        self.assertEquals(res.status_int, 200)
 
1994
 
 
1995
        memb_list = json.loads(res.body)
 
1996
        num_members = len(memb_list['members'])
 
1997
        self.assertEquals(num_members, 0)
 
1998
 
 
1999
    def test_get_image_members_not_existing(self):
 
2000
        """
 
2001
        Tests proper exception is raised if attempt to get members of
 
2002
        non-existing image
 
2003
        """
 
2004
        req = webob.Request.blank('/images/3/members')
 
2005
 
 
2006
        req.method = 'GET'
 
2007
 
 
2008
        res = req.get_response(self.api)
 
2009
        self.assertEquals(res.status_int,
 
2010
                          webob.exc.HTTPNotFound.code)
 
2011
 
 
2012
    def test_get_member_images(self):
 
2013
        """
 
2014
        Tests image listing for members
 
2015
        """
 
2016
        req = webob.Request.blank('/shared-images/pattieblack')
 
2017
 
 
2018
        req.method = 'GET'
 
2019
 
 
2020
        res = req.get_response(self.api)
 
2021
        self.assertEquals(res.status_int, 200)
 
2022
 
 
2023
        memb_list = json.loads(res.body)
 
2024
        num_members = len(memb_list['shared_images'])
 
2025
        self.assertEquals(num_members, 0)
 
2026
 
 
2027
    def test_replace_members(self):
 
2028
        """
 
2029
        Tests replacing image members raises right exception
 
2030
        """
 
2031
        fixture = dict(member_id='pattieblack')
 
2032
 
 
2033
        req = webob.Request.blank('/images/2/members')
 
2034
 
 
2035
        req.method = 'PUT'
 
2036
        req.content_type = 'application/json'
 
2037
        req.body = json.dumps(dict(image_memberships=fixture))
 
2038
 
 
2039
        res = req.get_response(self.api)
 
2040
        self.assertEquals(res.status_int, webob.exc.HTTPUnauthorized.code)
 
2041
 
 
2042
    def test_add_member(self):
 
2043
        """
 
2044
        Tests adding image members raises right exception
 
2045
        """
 
2046
        req = webob.Request.blank('/images/2/members/pattieblack')
 
2047
 
 
2048
        req.method = 'PUT'
 
2049
 
 
2050
        res = req.get_response(self.api)
 
2051
        self.assertEquals(res.status_int, webob.exc.HTTPUnauthorized.code)
 
2052
 
 
2053
    def test_delete_member(self):
 
2054
        """
 
2055
        Tests deleting image members raises right exception
 
2056
        """
 
2057
        req = webob.Request.blank('/images/2/members/pattieblack')
 
2058
 
 
2059
        req.method = 'DELETE'
 
2060
 
 
2061
        res = req.get_response(self.api)
 
2062
        self.assertEquals(res.status_int, webob.exc.HTTPUnauthorized.code)