Hi everyone,<br><br>I really like nose.&nbsp; And py.test for that matter; I honestly don&#39;t know much about the differences but got nose because it was easier to type.&nbsp; And I wish that either nose or py.test came with the Python standard library, because they&#39;re useful for more than testing just Python code.&nbsp; 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&#39;t part of the Python standard library, it essentially counted as &quot;yet another dependency&quot; for Weave (the other dependency being Mozilla&#39;s fairly massive development environment setup).&nbsp; 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&#39;t really an option.&nbsp; So I made a little bootstrapping script called &quot;getnose&quot; which transparently did it for them:<br>
<br>&nbsp; <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 &quot;import getnose&quot; before they &quot;import nose&quot;.&nbsp; If nose isn&#39;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).&nbsp; Thus Weave&#39;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&#39;t the best plan in the world.&nbsp; But for now, it gets the job done.<br>
<br>Would this be of use to anyone?&nbsp; Or was there an easier way for me to achieve the same end?&nbsp; I&#39;m just curious.<br><br>- Atul<br><br>