test_handlers_networks.py 文件源码

python
阅读 17 收藏 0 点赞 0 评论 0

项目:commissaire-mvp 作者: projectatomic 项目源码 文件源码
def test_network_create(self):
        """
        Verify creating a network.
        """
        with mock.patch('cherrypy.engine.publish') as _publish:
            manager = mock.MagicMock(StoreHandlerManager)
            _publish.return_value = [manager]

            manager.list_store_handlers.return_value = [[
                EtcdStoreHandler, None, None]]
            test_network = networks.Network.new(name='default')
            # Verify with creation
            manager.get.side_effect = (
                Exception,
                test_network,
                test_network,
                test_network
            )

            test_body = (
                '{"name": "default", "type": "flannel_etcd", "options": {}}')

            body = self.simulate_request(
                '/api/v0/network/default', method='PUT', body=test_body)
            self.assertEquals(falcon.HTTP_201, self.srmock.status)
            result = json.loads(body[0])
            self.assertEquals('default', result['name'])
            self.assertEquals('flannel_etcd', result['type'])
            self.assertEquals({}, result['options'])

            # Verify with existing network
            manager.get.return_value = CLUSTER
            body = self.simulate_request(
                '/api/v0/network/default', method='PUT', body=test_body)
            self.assertEquals(falcon.HTTP_201, self.srmock.status)
            self.assertEquals('default', result['name'])
            self.assertEquals('flannel_etcd', result['type'])
            self.assertEquals({}, result['options'])

            # Verify failure with flannel_etcd is requests but there is no
            # etcd backend
            manager.list_store_handlers.return_value = []
            body = self.simulate_request(
                '/api/v0/network/default', method='PUT', body=test_body)
            self.assertEquals(falcon.HTTP_409, self.srmock.status)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号