On Mon, Aug 14, 2017 at 1:39 PM, Barak Korren <bkorren(a)redhat.com> wrote:
On 14 August 2017 at 14:21, Yaniv Kaul <ykaul(a)redhat.com>
wrote:
> I was wondering if there are any examples of mocks written for code written
> on top of the oVirt Python SDK.
> I would assume there will be a different a call mocking sdk.Connection()
> that would return a mock'ed object and from there continue?
>
> Context: I'm looking into writing an oVirt driver for some project. They
> (rightfully so) ask for unit tests, using mocks, fixtures, etc. I'm unsure
> this is really going to be easy or meaningful, but I thought I'd look into
> it...
We used [1] in ovirt provider to record http interactions and replay them during
specific unit tests. For python there is [2] and it could be used in the same
way. Sadly sdk uses native client so it is not that easy to record interactions.
As workaround we started to dump objects to yaml [3] during recording run
and later load them during the tests.
[1]
https://rubygems.org/gems/vcr/versions/3.0.3
[2]
https://github.com/kevin1024/vcrpy
[3]
https://github.com/ManageIQ/manageiq-providers-ovirt/tree/master/spec/mod...
A little aside, but I typically find that if you have to write any
mocks of your own rather then using the python-mock package
(unitest.mock in Python3), it means you're probably doing systems
tests instead of unit tests, or your code design is not very testable.
--
Barak Korren
RHV DevOps team , RHCE, RHCi
Red Hat EMEA
redhat.com | TRIED. TESTED. TRUSTED. |
redhat.com/trusted
_______________________________________________
Devel mailing list
Devel(a)ovirt.org
http://lists.ovirt.org/mailman/listinfo/devel