<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#ffffff" text="#000000">
    On 26/09/2010 19:43, Arve Knudsen wrote:
    <blockquote
      cite="mid:AANLkTinmPdPBmK7KcXZw+CEkEU+t38aOCA4sp36RTDVV@mail.gmail.com"
      type="cite">Hi
      <div><br>
      </div>
      <div>As I've been tinkering with nose2 and unittest2, and got to
        know the two better, the question has emerged as to exactly
        which role nose2 is meant to fulfill on top of unittest2.</div>
      <div><br>
      </div>
      <div>With the original unittest, nose's raison de vivre is pretty
        clear; seeing as unittest is rather an archaic/inflexible
        framework, there is an obvious need of a more modern, practical
        alternative. nose offers such an improved alternative. unittest2
        on the other hand changes the game, as it is being designed with
        today's needs in mind, and is plugin-based (like nose). That
        unittest2 is a sound design is evidenced by the fact that nose2
        implements its functionality as unittest2 plugins.</div>
      <div><br>
      </div>
    </blockquote>
    <br>
    Hello Arve,<br>
    <br>
    Well, presuming to speak for Jason here (partly)... My
    understanding, as author of the unittest2 plugins code, is as
    follows.<br>
    <br>
    The purpose of the plugins machinery being developed for unittest2
    is to *allow* useful popular and frequently requested functionality
    for unittest (such as that provided by nose) to be provided in clean
    and simple ways. The plugins branch itself is not *intended* to
    replace nose - merely make it dramatically simpler to implement and
    maintain. That at least is the goal.<br>
    <br>
    The situation is confused by the fact that in order to ensure the
    plugins branch meets its goal I have implemented various 'example'
    plugins that have some overlap with the nose functionality.
    *However*, these plugins only cover a relatively small subset of the
    nose functionality.<br>
    <br>
    The purpose of nose2 is to provide the functionality of nose using
    unittest2 plugins. This includes goals like, wherever possible,
    backwards compatibility with existing nose tests. (But not existing
    nose plugins as the mechanisms are too different.) <br>
    <br>
    <br>
    <br>
    <blockquote
      cite="mid:AANLkTinmPdPBmK7KcXZw+CEkEU+t38aOCA4sp36RTDVV@mail.gmail.com"
      type="cite">
      <div>Given that the meat of nose2 (excepting the runner) is
        already unittest2 plugins, how does one define nose2's role? Why
        is there even a nose2 runner, can't one simply develop plugins
        to integrate with the unittest2 runner? More to the point, when
        now wanting to extend unittest2, why write plugins for nose2
        rather than unittest2 itself?</div>
    </blockquote>
    <br>
    This is an interesting question. In a way nose2 becomes a set of
    unittest2 plugins, including replacing and extending some of the
    'default' plugins for unittest2. It is possible that some of the
    existing unittest2 example plugins may move into separate projects
    or into nose2. <br>
    <br>
    It could also easily become the case that nose2 provides useful
    libraries and functionality for writing unittest2 plugins. The nose2
    runner exists to load the nose2 configuration and configure the
    nose2 plugins. (Otherwise the user would have to have the nose2
    configuration in *their* config file as well as any additional
    plugins they wanted to configure.)<br>
    <br>
    At the *moment* the main reason to be interested in working on nose2
    is because it is the future of nose - for both Python 2 and Python
    3. If you are interested in the future of nose, or being able to
    write nose style tests with unittest for Python 3, then contributing
    to nose2 is an effective way of making that happen. Meanwhile the
    role of nose2 will grow and become clearer.<br>
    <br>
    All the best,<br>
    <br>
    Michael Foord<br>
    <br>
    <blockquote
      cite="mid:AANLkTinmPdPBmK7KcXZw+CEkEU+t38aOCA4sp36RTDVV@mail.gmail.com"
      type="cite">
      <div><br>
      </div>
      <div>Hope these questions make sense :)</div>
      <div><br>
      </div>
      <div>Arve</div>
      <pre wrap="">
<fieldset class="mimeAttachmentHeader"></fieldset>
_______________________________________________
testing-in-python mailing list
<a class="moz-txt-link-abbreviated" href="mailto:testing-in-python@lists.idyll.org">testing-in-python@lists.idyll.org</a>
<a class="moz-txt-link-freetext" href="http://lists.idyll.org/listinfo/testing-in-python">http://lists.idyll.org/listinfo/testing-in-python</a>
</pre>
    </blockquote>
    <br>
    <br>
    <pre class="moz-signature" cols="72">-- 
<a class="moz-txt-link-freetext" href="http://www.ironpythoninaction.com/">http://www.ironpythoninaction.com/</a>
<a class="moz-txt-link-freetext" href="http://www.voidspace.org.uk/blog">http://www.voidspace.org.uk/blog</a>

READ CAREFULLY. By accepting and reading this email you agree, on behalf of your employer, to release me from all obligations and waivers arising from any and all NON-NEGOTIATED agreements, licenses, terms-of-service, shrinkwrap, clickwrap, browsewrap, confidentiality, non-disclosure, non-compete and acceptable use policies (&#8221;BOGUS AGREEMENTS&#8221;) that I have entered into with your employer, its partners, licensors, agents and assigns, in perpetuity, without prejudice to my ongoing rights and privileges. You further represent that you have the authority to release me from any BOGUS AGREEMENTS on behalf of your employer.

</pre>
  </body>
</html>