Amulet Testing - A few notes
Charles Butler
charles.butler at canonical.com
Wed Oct 29 17:42:16 UTC 2014
I just had a great pairing session with mattyw on writing amulet tests, and
I picked up some things that really resonated with me by watching his
workflow during writing the tests.
To most of you this will be "python 101" but I thought since I'm missing
these key components during my workflow, it would be good to send a gentle
reminder that we all can and should be striving to put our best foot
forward when testing, and think about the non-engineers that are
undoubtedly going to be looking over our work.
When composing the tests, he created docstrings for each assertion test to
implicitly define what the tests were *supposed* to be doing.
"""
test_mongodb_credential_exchange Validates the data being sent across the
wire is what we expect
"""
"""
test_mongodb_credential_connection With the sent credentials, validate we
can connect to the unit under test
"""
These are brilliant things to know, at a glance we have a solid
understanding of what the code is doing.
During his error messages, instead of throwing a generic response like "key
not found in relation: %s" % k - his messages were super descriptive :
amulet.raise_status(amulet.ERROR, msg="Credentials submit were invalid %s"
% key[k])
When looking at testing output, we'll have a better ability to grokk what
exactly went wrong in the output vs some random string that I as the
developer would be the only person that knows. As we move our CI infra
towards being the key component in our Juju story - this gives everyone the
ability to know whats broken when things go red.
Pretty simple stuff that I will be keeping in mind as I continue writing
bundle tests, and thought I would highlight something awesome a co-worker
was doing, and taught me a thing or two while doing it.
All the best,
Charles
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ubuntu.com/archives/juju/attachments/20141029/95fb9e84/attachment.html>
More information about the Juju
mailing list