On Mon, Apr 30, 2018 at 02:02:46PM +0100, Stefan Hajnoczi wrote:
> On Fri, Apr 20, 2018 at 03:19:40PM -0300, Eduardo Habkost wrote:
> > + def test_hotplug_memory_default_policy(self):
> > + """
> > + According to the RHBZ1431939, the issue is 'host nodes'
> > + returning '128'. It should return empty value when memory
> > + hotplug default policy is used.
> > +
> > + Fixed in commit d81d857f4421d205395d55200425daa6591c28a5.
> > + :avocado: tags=RHBZ1431939
> > + """
> > +
> > + cmd = 'object_add memory-backend-ram,id=mem1,size=1G'
> > + res = self.vm.qmp('human-monitor-command', command_line=cmd)
> > + self.assertEqual('', res['return'])
>
> General question about QMP test coding style:
>
> What happens if res['return'] does not exist because the QMP command
> failed?
>
> I tend to use dict.get() to prevent KeyError. That way the
> assertEqual() will fail instead of an unhandled KeyError in the test
> code.
It looks like vm.command() would be appropriate on most cases, as
it will check for errors and return res['result'] automatically.
vm.qmp() seems to be useful only if you really don't want an
exception to be raised in case of QMP errors.
Maybe we should rename .qmp() to .raw_qmp() to discourage people
from using it.
--
Eduardo