Пример #1
0
    def test_node_request_urllib2_urlerror(self):
        def raise_exc(*args, **kwargs):
            raise URLError("something bad")

        controller = BaseController({}, self.app)
        with patch(base, 'urlopen', raise_exc):
            with self.assertRaises(NodeError) as cm:
                controller.node_request(self.node, 'PUT', '/volumes/vol-01')

        # Assert the exception details are correct
        self.assertEquals(
            cm.exception.detail, "PUT on http://localhost:8080/volumes/vol-01 "
            "failed with 'something bad'")
        self.assertEquals(cm.exception.code, 503)
        self.assertEquals(cm.exception.reason, "something bad")
Пример #2
0
    def test_node_request_urllib2_httperror(self):
        def raise_exc(*args, **kwargs):
            fp = StringIO('{"reason": "something bad"}')
            raise HTTPError('http://localhost/volumes/vol-01', 500,
                            'Internal Error', {}, fp)

        controller = BaseController({}, self.app)
        with patch(base, 'urlopen', raise_exc):
            with self.assertRaises(NodeError) as cm:
                controller.node_request(self.node, 'PUT', '/volumes/vol-01')

        # Assert the exception details are correct
        self.assertEquals(
            cm.exception.detail, "PUT on http://localhost:8080/volumes/vol-01 "
            "returned '500' with 'something bad'")
        self.assertEquals(cm.exception.code, 500)
        self.assertEquals(cm.exception.reason, "something bad")
Пример #3
0
 def setUp(self):
     self.mock_app = MockApp()
     self.db = self.mock_app.helper
     self.vtype = db.models.VolumeType('vtype')
     self.db.add(self.vtype)
     self.nodes = {}
     for i in range(10):
         n = db.models.Node('node%s' % i,
                            100,
                            volume_type=self.vtype,
                            hostname='10.127.0.%s' % i,
                            port=8080 + i)
         self.nodes[i] = n
         self.db.add(n)
     self.account = db.models.Account(id='someaccount')
     self.db.add(self.account)
     self.db.commit()
     self.controller = BaseController({}, self.mock_app)
     self.controller._account_id = self.account.id