def test_create_transfer_xml(self, mock_validate):
        volume_size = 2
        volume_id = self._create_volume(status='available', size=volume_size)

        body = '<transfer name="transfer-001" volume_id="%s"/>' % volume_id
        if isinstance(body, six.text_type):
            body = body.encode('utf-8')

        req = webob.Request.blank('/v2/fake/os-volume-transfer')
        req.body = body
        req.method = 'POST'
        req.headers['Content-Type'] = 'application/xml'
        req.headers['Accept'] = 'application/xml'
        res = req.get_response(fakes.wsgi_app())

        self.assertEqual(202, res.status_int)
        dom = minidom.parseString(res.body)
        transfer = dom.getElementsByTagName('transfer')
        self.assertTrue(transfer.item(0).hasAttribute('id'))
        self.assertTrue(transfer.item(0).hasAttribute('auth_key'))
        self.assertTrue(transfer.item(0).hasAttribute('created_at'))
        self.assertEqual('transfer-001', transfer.item(0).getAttribute('name'))
        self.assertTrue(transfer.item(0).hasAttribute('volume_id'))
        self.assertTrue(mock_validate.called)

        db.volume_destroy(context.get_admin_context(), volume_id)
    def test_create_transfer_xml(self, mock_validate):
        volume_size = 2
        volume_id = self._create_volume(status='available', size=volume_size)

        body = '<transfer name="transfer-001" volume_id="%s"/>' % volume_id
        if isinstance(body, six.text_type):
            body = body.encode('utf-8')

        req = webob.Request.blank('/v2/fake/os-volume-transfer')
        req.body = body
        req.method = 'POST'
        req.headers['Content-Type'] = 'application/xml'
        req.headers['Accept'] = 'application/xml'
        res = req.get_response(fakes.wsgi_app())

        self.assertEqual(202, res.status_int)
        dom = minidom.parseString(res.body)
        transfer = dom.getElementsByTagName('transfer')
        self.assertTrue(transfer.item(0).hasAttribute('id'))
        self.assertTrue(transfer.item(0).hasAttribute('auth_key'))
        self.assertTrue(transfer.item(0).hasAttribute('created_at'))
        self.assertEqual('transfer-001', transfer.item(0).getAttribute('name'))
        self.assertTrue(transfer.item(0).hasAttribute('volume_id'))
        self.assertTrue(mock_validate.called)

        db.volume_destroy(context.get_admin_context(), volume_id)
    def test_create_transfer_xml(self):
        volume_size = 2
        volume_id = self._create_volume(status="available", size=volume_size)

        req = webob.Request.blank("/v2/fake/os-volume-transfer")
        req.body = '<transfer name="transfer-001" ' 'volume_id="%s"/>' % volume_id
        req.method = "POST"
        req.headers["Content-Type"] = "application/xml"
        req.headers["Accept"] = "application/xml"
        res = req.get_response(fakes.wsgi_app())

        self.assertEqual(202, res.status_int)
        dom = minidom.parseString(res.body)
        transfer = dom.getElementsByTagName("transfer")
        self.assertTrue(transfer.item(0).hasAttribute("id"))
        self.assertTrue(transfer.item(0).hasAttribute("auth_key"))
        self.assertTrue(transfer.item(0).hasAttribute("created_at"))
        self.assertEqual(transfer.item(0).getAttribute("name"), "transfer-001")
        self.assertTrue(transfer.item(0).hasAttribute("volume_id"))
        db.volume_destroy(context.get_admin_context(), volume_id)
    def test_create_transfer_xml(self):
        volume_size = 2
        volume_id = self._create_volume(status='available', size=volume_size)

        req = webob.Request.blank('/v2/fake/os-volume-transfer')
        req.body = ('<transfer name="transfer-001" '
                    'volume_id="%s"/>' % volume_id)
        req.method = 'POST'
        req.headers['Content-Type'] = 'application/xml'
        req.headers['Accept'] = 'application/xml'
        res = req.get_response(fakes.wsgi_app())

        self.assertEqual(res.status_int, 202)
        dom = minidom.parseString(res.body)
        transfer = dom.getElementsByTagName('transfer')
        self.assertTrue(transfer.item(0).hasAttribute('id'))
        self.assertTrue(transfer.item(0).hasAttribute('auth_key'))
        self.assertTrue(transfer.item(0).hasAttribute('created_at'))
        self.assertEqual(transfer.item(0).getAttribute('name'), 'transfer-001')
        self.assertTrue(transfer.item(0).hasAttribute('volume_id'))
        db.volume_destroy(context.get_admin_context(), volume_id)
    def test_create_transfer_xml(self):
        volume_size = 2
        volume_id = self._create_volume(status='available', size=volume_size)

        req = webob.Request.blank('/v2/fake/os-volume-transfer')
        req.body = ('<transfer name="transfer-001" '
                    'volume_id="%s"/>' % volume_id)
        req.method = 'POST'
        req.headers['Content-Type'] = 'application/xml'
        req.headers['Accept'] = 'application/xml'
        res = req.get_response(fakes.wsgi_app())

        self.assertEqual(res.status_int, 202)
        dom = minidom.parseString(res.body)
        transfer = dom.getElementsByTagName('transfer')
        self.assertTrue(transfer.item(0).hasAttribute('id'))
        self.assertTrue(transfer.item(0).hasAttribute('auth_key'))
        self.assertTrue(transfer.item(0).hasAttribute('created_at'))
        self.assertEqual(transfer.item(0).getAttribute('name'), 'transfer-001')
        self.assertTrue(transfer.item(0).hasAttribute('volume_id'))
        db.volume_destroy(context.get_admin_context(), volume_id)