Hi everyone,<br><br>I really like nose. And py.test for that matter; I honestly don't know much about the differences but got nose because it was easier to type. And I wish that either nose or py.test came with the Python standard library, because they're useful for more than testing just Python code. In Mozilla Weave, for instance, I wrote a nose plugin that automatically finds our JavaScript-based xpcshell tests and runs them.<br>
<br>The one roadblock I ran into when contemplating using nose in Weave, though, was the fact that, because it wasn't part of the Python standard library, it essentially counted as "yet another dependency" for Weave (the other dependency being Mozilla's fairly massive development environment setup). I was already treading on thin ice by throwing Python into the build/test system, so telling potential developers (who may know nothing about Python) that they had to download nose and install it--something that normally requires administrative privileges--wasn't really an option. So I made a little bootstrapping script called "getnose" which transparently did it for them:<br>
<br> <a href="http://hg.mozilla.org/labs/weave/index.cgi/file/389d9ff46d61/scripts/getnose.py">http://hg.mozilla.org/labs/weave/index.cgi/file/389d9ff46d61/scripts/getnose.py</a><br><br>To use it, one just has to "import getnose" before they "import nose". If nose isn't already installed system-wide, the nose package is automatically downloaded and untarred in the current directory and the proper directory is added to sys.path (thereby obviating any need for admin privileges). Thus Weave's testing infrastructure is able to use nose without having to explicitly require developers to retrieve it.<br>
<br>The script definitely has some holes in it; hard-coding an MD5 signature for the tarball might help with security, and untarring into whatever the current directory happens to be isn't the best plan in the world. But for now, it gets the job done.<br>
<br>Would this be of use to anyone? Or was there an easier way for me to achieve the same end? I'm just curious.<br><br>- Atul<br><br>