Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

7579 lines (1430 sloc) 139.601 kb
<?xml version="1.0"?>
<!-- RSS generated by Trac v0.8 on Tue Dec 19 10:16:42 2006 -->
<rss version="2.0">
<channel>
<title>nose: {6} All Tickets By Milestone (Including closed)</title>
<link>http://nose.python-hosting.com/report/6</link>
<description>Trac Report - {6} All Tickets By Milestone (Including closed)</description>
<language>en-us</language>
<generator>Trac v0.8</generator>
<item>
<pubDate>Wed, 13 Sep 2006 17:31:09 GMT</pubDate>
<title>#90: Improve logging config options</title>
<link>http://nose.python-hosting.com/ticket/90</link>
<description>Logging (for nose itself and the packages it tests) config should be more accessible -- esp. it should be possible to configure logging with a standard logging config file. Attachment is a plugin from Oliver Rutherfurd that adds --log-config and --log-filename options. This should be adapted and made part of configure_logging in nose.core.</description>
<category>Report</category>
</item>
<item>
<pubDate>Mon, 28 Aug 2006 19:34:53 GMT</pubDate>
<title>#85: Is it possible to have more control over TestProgram configuration when running the nose from within python code?</title>
<link>http://nose.python-hosting.com/ticket/85</link>
<description>I am trying to use nose with the NoseXML plugin. When I call:
nose.run(argv=['--with-nosexml','--xml-report-file=some_file']),
I get my NoseXML output in some_file. This is nice.
On the other hand, it would be nicer if I could specify a StringIO that the NoseXML could write to instead of a file in the filesystem.
I have managed to do this by poking around inside the nose.core.TestProgram class and nose.core.configure function, but my solution is not really acceptable for long-term use. I manually insert a StringIO into the configuration information after argv is parsed and before it is passed to the plugins.
Please consider providing a different means for specifying configuration information to nose when it is run using nose.run(). I would be glad to help with this if it would be an acceptable change.
And if I've missed the proper way to do something like this, please let me know.
Thanks,
Matthew Desmarais</description>
<category>Report</category>
</item>
<item>
<pubDate>Sun, 14 May 2006 18:06:41 GMT</pubDate>
<title>#57: .noserc</title>
<link>http://nose.python-hosting.com/ticket/57</link>
<description>Support reading options from a .noserc file or other config file. Format should be the same as command line args (long form), minus the --.</description>
<category>Report</category>
</item>
<item>
<pubDate>Sat, 05 Aug 2006 01:49:32 GMT</pubDate>
<title>#80: provide TestCase methods as functions.</title>
<link>http://nose.python-hosting.com/ticket/80</link>
<description>Hi
First of all I'm new to nose and I like what I see, I always complained about JUnit/pyUnit because it's too much troubles ... nose takes that away from me.
but when I try to test for a method that should raises a certain type of exception I found out that the only way to do this is with TestCase, at least to catch a certain specific type of test.
So how abotu adding a reimplementation (basically transform the methods into functions of TestCase.* into module level nose functions?
So we can implement this
{{{
class TestMyApp(TestCase):
def test_create(self):
self.failUnlessRaises(NotImplementedError, source.create)
}}}
as
{{{
def test_create():
nose.failUnlessRaises(NotImplementedError, source.create)
}}}
here is the original thread. http://tinyurl.com/mvssg</description>
<category>Report</category>
</item>
<item>
<pubDate>Fri, 24 Mar 2006 03:12:25 GMT</pubDate>
<title>#24: Allow plugins to completely change test output</title>
<link>http://nose.python-hosting.com/ticket/24</link>
<description>Currently watcher plugins can report() to add to test output, but there should be a hook for plugins to take over and do all test output.</description>
<category>Report</category>
</item>
<item>
<pubDate>Tue, 28 Mar 2006 04:24:26 GMT</pubDate>
<title>#27: Missing units</title>
<link>http://nose.python-hosting.com/ticket/27</link>
<description>Missing unittests for many core functions:
* loader testsInModule
* loader FunctionTestCase
* loader MethodTestCase
* LazySuite.run</description>
<category>Report</category>
</item>
<item>
<pubDate>Tue, 23 May 2006 02:28:04 GMT</pubDate>
<title>#61: Attribute plugin 'OR' test doesn't work</title>
<link>http://nose.python-hosting.com/ticket/61</link>
<description>nosetests -a tags=a -a tags=b should select tests that have a tags attribute with the value of 'a' or 'b' or a list containing one or both of those values, but it doesn't.</description>
<category>Report</category>
</item>
<item>
<pubDate>Wed, 17 May 2006 20:32:25 GMT</pubDate>
<title>#59: nose.tools.raises hides module of original test</title>
<link>http://nose.python-hosting.com/ticket/59</link>
<description>When using nose.tools.raises, the test reports look like:
{{{
nose.tools.&lt;testfunc&gt;
}}}
Instead of:
{{{
&lt;testmod&gt;.&lt;testfunc&gt;
}}}
raises needs to set the name or module of the wrapper it returns properly.</description>
<category>Report</category>
</item>
<item>
<pubDate>Wed, 17 May 2006 15:17:06 GMT</pubDate>
<title>#58: ArrtibuteError running nosetests</title>
<link>http://nose.python-hosting.com/ticket/58</link>
<description>I'm getting this when running nosetests. Not sure whats causing it, but I thought someone might be able to point me in the right direction.
I will attach the traceback.</description>
<category>Report</category>
</item>
<item>
<pubDate>Wed, 03 May 2006 02:20:44 GMT</pubDate>
<title>#54: ignore all executable files?</title>
<link>http://nose.python-hosting.com/ticket/54</link>
<description> * Is this desirable? (YES)
* Is it possible to do, dependably, cross-platform? (YES)</description>
<category>Report</category>
</item>
<item>
<pubDate>Mon, 01 May 2006 15:50:59 GMT</pubDate>
<title>#51: nose.collector causes loop when running `setup.py test`</title>
<link>http://nose.python-hosting.com/ticket/51</link>
<description>have a looksee here at my setup.py file:
svn co http://svn.testtools.python-hosting.com/trunk --revision=186 testtools
I'm using test_suite = &#34;nose.collector&#34; and when I run `setup.py test` with 0.9a1 it gets caught in a loop like so :
running test
running egg_info
writing testtools.egg-info/PKG-INFO
writing top-level names to testtools.egg-info/top_level.txt
writing manifest file 'testtools.egg-info/SOURCES.txt'
running build_ext
At revision 186.
running test
running egg_info
writing testtools.egg-info/PKG-INFO
writing top-level names to testtools.egg-info/top_level.txt
writing manifest file 'testtools.egg-info/SOURCES.txt'
running build_ext
At revision 186.
... but when I run `nosetests` everything goes smooth. I mentioned in the email that it was working on dev2, but I meant it was working for other projects. I.E. running `python setup.py test` in etl/trunk/py-lib/ works just fine. I can't see offhand what is different.</description>
<category>Report</category>
</item>
<item>
<pubDate>Mon, 01 May 2006 18:21:39 GMT</pubDate>
<title>#53: plugin import errors kill test run</title>
<link>http://nose.python-hosting.com/ticket/53</link>
<description>Plugin import errors need to be reduced to warnings, since the import happens before users have a chance to disable the plugin.
Example: If profile module is not installed, nosetests exits with exception without running any tests.</description>
<category>Report</category>
</item>
<item>
<pubDate>Mon, 01 May 2006 18:18:29 GMT</pubDate>
<title>#52: profile plugin shadows builtin profile module</title>
<link>http://nose.python-hosting.com/ticket/52</link>
<description>It needs a name change, causes nosetests to fail to load on some platforms.</description>
<category>Report</category>
</item>
<item>
<pubDate>Fri, 05 May 2006 15:32:13 GMT</pubDate>
<title>#56: wantFunction and wantMethod bugs in attr [patch]</title>
<link>http://nose.python-hosting.com/ticket/56</link>
<description>this might be better fixed in the loader since I think at least for the wantMethod bug, it should not get something that's not a method. But this patches was necessary to allow a large ETL suite to run that I'm trying to use attributes in. a patch against branches/0.9-stable is to follow</description>
<category>Report</category>
</item>
<item>
<pubDate>Wed, 03 May 2006 15:18:43 GMT</pubDate>
<title>#55: bug in doctest plugin loadTestsFromPath [patch]</title>
<link>http://nose.python-hosting.com/ticket/55</link>
<description>we get an iteration error in the doctest plugin when looking at a directory filename (i.e. not a valid .py file). A patch is to follow ...</description>
<category>Report</category>
</item>
<item>
<pubDate>Mon, 24 Apr 2006 00:30:10 GMT</pubDate>
<title>#50: Update mkrelease</title>
<link>http://nose.python-hosting.com/ticket/50</link>
<description>Update mkrelease to make svn/svk branch and tag instead of bzr.</description>
<category>Report</category>
</item>
<item>
<pubDate>Thu, 09 Mar 2006 02:51:18 GMT</pubDate>
<title>#4: doc -&amp;gt; wiki</title>
<link>http://nose.python-hosting.com/ticket/4</link>
<description>Add a script similiar to mkindex.py that posts doc updates to the right places in this wiki.</description>
<category>Report</category>
</item>
<item>
<pubDate>Sun, 23 Apr 2006 23:57:41 GMT</pubDate>
<title>#49: Update docs for 0.9</title>
<link>http://nose.python-hosting.com/ticket/49</link>
<description> * Update the CHANGELOG and NEWS files.
* Update module, package and class docstrings
* Update TestProgram usage
* Update mkindex, make sure it is pulling all relevant info
* Update hacking, etc, on index to include new svn repos information
* Add to this ticket as I think of more doc updates that are needed</description>
<category>Report</category>
</item>
<item>
<pubDate>Tue, 11 Apr 2006 02:53:09 GMT</pubDate>
<title>#37: setuptools integration phase 2: disable plugins</title>
<link>http://nose.python-hosting.com/ticket/37</link>
<description>When run under setuptools, should disable plugins that implement methods that won't get a chance to run (report, finalize, prepareTest, setOutputStream).</description>
<category>Report</category>
</item>
<item>
<pubDate>Sat, 22 Apr 2006 01:02:16 GMT</pubDate>
<title>#48: logging behavior: ignore root logger settings</title>
<link>http://nose.python-hosting.com/ticket/48</link>
<description>Since nose is likely to be run in unstable environments where users are setting their root or other loggers to debug to debug their own code, and those users are probably not interested in nose's debug info, nose should explicitly override the root logger settings in the 'nose' domain. Don't use basicConfig, but compose a handler and formatter and set the log level to whatever is appropriate for the selected verbosity level.</description>
<category>Report</category>
</item>
<item>
<pubDate>Tue, 18 Apr 2006 15:00:45 GMT</pubDate>
<title>#46: super?</title>
<link>http://nose.python-hosting.com/ticket/46</link>
<description>Check usage of super() vs direct __init__ calls. Ref: http://fuhm.net/super-harmful/</description>
<category>Report</category>
</item>
<item>
<pubDate>Tue, 18 Apr 2006 03:09:26 GMT</pubDate>
<title>#44: disable attrib plugin eval option for versions &amp;lt; 2.4</title>
<link>http://nose.python-hosting.com/ticket/44</link>
<description>eval() can't take an instance in 2.3, so the attrib eval() option must be disabled in 2.3.</description>
<category>Report</category>
</item>
<item>
<pubDate>Tue, 18 Apr 2006 03:15:34 GMT</pubDate>
<title>#45: Fix tests for 2.3</title>
<link>http://nose.python-hosting.com/ticket/45</link>
<description>Many tests are failing under 2.3 due to incompatibile iteration, etc.</description>
<category>Report</category>
</item>
<item>
<pubDate>Sun, 16 Apr 2006 04:15:13 GMT</pubDate>
<title>#43: nosetests bad_file.py -&amp;gt; greedy loads</title>
<link>http://nose.python-hosting.com/ticket/43</link>
<description>When given a bad file name, nosetests loads tests from all modules instead of issuing a warning.</description>
<category>Report</category>
</item>
<item>
<pubDate>Sun, 16 Apr 2006 04:13:25 GMT</pubDate>
<title>#42: nosetests relative/path.py -&amp;gt; no tests loaded</title>
<link>http://nose.python-hosting.com/ticket/42</link>
<description>Test name resolution for relative filenames is wrong. The files are not loaded.</description>
<category>Report</category>
</item>
<item>
<pubDate>Sun, 16 Apr 2006 04:09:49 GMT</pubDate>
<title>#41: profiler plugin is broken</title>
<link>http://nose.python-hosting.com/ticket/41</link>
<description>Trying to run with profiler enabled results in errors from the hotshot stats loader:
{{{
Could not identify fileId 10
Could not identify fileId 10
Traceback (most recent call last):
File &#34;&lt;stdin&gt;&#34;, line 1, in ?
File &#34;/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/hotshot/stats.py&#34;, line 12, in load
return StatsLoader(filename).load()
File &#34;/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/hotshot/stats.py&#34;, line 29, in load
for event in log:
File &#34;/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/hotshot/log.py&#34;, line 120, in next
filename = self._filemap[fileno]
KeyError: 91
}}}</description>
<category>Report</category>
</item>
<item>
<pubDate>Thu, 13 Apr 2006 14:08:57 GMT</pubDate>
<title>#40: stop on first error</title>
<link>http://nose.python-hosting.com/ticket/40</link>
<description>Suggestion from Kevin Dangoor:
Add an option to stop running tests on the first failure.</description>
<category>Report</category>
</item>
<item>
<pubDate>Sun, 09 Apr 2006 00:49:00 GMT</pubDate>
<title>#36: loader.loadTestsFromNames behavior</title>
<link>http://nose.python-hosting.com/ticket/36</link>
<description>The test loader's loadTestsFromNames behavior isn't compatible with single-test-file unittest-style command lines, eg:
{{{
python unit_tests/test_loader.py TestNoseTestLoader.test_generate_func
}}}
It needs to be revised for compatibility with unittest.</description>
<category>Report</category>
</item>
<item>
<pubDate>Fri, 07 Apr 2006 02:38:41 GMT</pubDate>
<title>#34: nose.main signature does not match unittest.main</title>
<link>http://nose.python-hosting.com/ticket/34</link>
<description>nose.main should be usable interchangably with unittest.main.</description>
<category>Report</category>
</item>
<item>
<pubDate>Mon, 03 Apr 2006 03:34:40 GMT</pubDate>
<title>#33: coverage plugin: option to erase before run</title>
<link>http://nose.python-hosting.com/ticket/33</link>
<description>The coverage plugin should have an option to allow the user to erase accumulated stats before a test run.</description>
<category>Report</category>
</item>
<item>
<pubDate>Sat, 01 Apr 2006 04:37:47 GMT</pubDate>
<title>#32: revise setuptools support, phase 1</title>
<link>http://nose.python-hosting.com/ticket/32</link>
<description>To support setuptools test command as best as possible without monkeypatching, follow PJE's prescription:
{{{
#!python
class ResultProxy:
def addError(self, test, err):
# reformat err, adding captured info
# then calling addError() on the wrapped result
def startTest(self, test):
# code to begin output capture and assertion tracking
# then call startTest() on the wrapped result
def stopTest(self, test):
# code to end output capture and assertion tracking
# then call stopTest() on the wrapped result
# ... etc.
class TestProxy:
def __call__(self, result):
self.wrapped_test(ResultProxy(result))
def shortDescription(self):
return self.wrapped_test.shortDescription()
}}}
The test_suite hook is still better than the test_loader hook, since test suite can be a function that does other setup; it should configure the system with a setting that deactivates any plugins that can't be supported under this scenario (that is, any plugin that uses report, finalize, prepareTest or setOutputStream)</description>
<category>Report</category>
</item>
<item>
<pubDate>Fri, 31 Mar 2006 14:56:39 GMT</pubDate>
<title>#31: nose.tools</title>
<link>http://nose.python-hosting.com/ticket/31</link>
<description>Create nose.tools module and move with_setup there. Also add:
* @raises
* @timed
And try to think of some more useful, general test-writing tools to add.</description>
<category>Report</category>
</item>
<item>
<pubDate>Sat, 18 Mar 2006 17:28:15 GMT</pubDate>
<title>#14: test generators for methods do not work</title>
<link>http://nose.python-hosting.com/ticket/14</link>
<description>Given the following testclass:
class TestSomething(object):
def setUp(cls):
cls.x = 5
print &#34;setting up&#34;
def test_1(self):
assert self.x == 4
def test_2(self):
assert self.x == 6
def test_3(self):
for x in (1,2,7):
yield self.check,x
def check(self,arg):
assert arg %7 ==0
Method test_3 does not function as a proper test generator. What should probably happen is:
1) test_3 generates three separate tests, just like regular test generators
2) Each of the three tests created by test_3 should get setUp() called when they're called.</description>
<category>Report</category>
</item>
<item>
<pubDate>Fri, 24 Mar 2006 03:22:51 GMT</pubDate>
<title>#25: profiler: output controls</title>
<link>http://nose.python-hosting.com/ticket/25</link>
<description>Need controls and options for those controls for the profiler plugin. Including:
* formatting options -- sort, restrict func names, % of list
* prof data filename option (file to store profile data in during run)
* print/no print report
* print to report stream
* output to file
</description>
<category>Report</category>
</item>
<item>
<pubDate>Sat, 11 Mar 2006 15:26:46 GMT</pubDate>
<title>#10: document plugin interfaces</title>
<link>http://nose.python-hosting.com/ticket/10</link>
<description>Document the collector, selector and watcher methods that plugins can implement and where they are called in the process.</description>
<category>Report</category>
</item>
<item>
<pubDate>Fri, 24 Mar 2006 01:02:35 GMT</pubDate>
<title>#22: loading tests from classes: beware subclassing</title>
<link>http://nose.python-hosting.com/ticket/22</link>
<description>The following case will currently result in wrong behavior:
{{{
#!python
class TestA:
def test_a(self):
pass
class TestB(TestA):
def test_b(self):
pass
}}}
TestB will collect and run both test_a and test_b; it should only run test_a</description>
<category>Report</category>
</item>
<item>
<pubDate>Thu, 09 Mar 2006 15:04:10 GMT</pubDate>
<title>#8: warn on missed test names</title>
<link>http://nose.python-hosting.com/ticket/8</link>
<description>When called with test names on the command line, eg:
{{{
nosetests foo.bar.test
}}}
nose should track what tests it finds and runs, and warn at the end if a specified test name was not found. Not sure where to do the tracking.</description>
<category>Report</category>
</item>
<item>
<pubDate>Tue, 28 Mar 2006 05:05:47 GMT</pubDate>
<title>#30: pass captured output to plugins</title>
<link>http://nose.python-hosting.com/ticket/30</link>
<description>In addError and addFailure, pass captured output (if any) to plugin calls.</description>
<category>Report</category>
</item>
<item>
<pubDate>Tue, 28 Mar 2006 04:31:19 GMT</pubDate>
<title>#29: _import failure</title>
<link>http://nose.python-hosting.com/ticket/29</link>
<description>This import shouldn't be failing in selftest:
{{{
======================================================================
ERROR: test module stpackage.subpak.other.tests in /Users/jhp/projects/nose_work_0.9/st
----------------------------------------------------------------------
Traceback (most recent call last):
File &#34;/Users/jhp/projects/nose_work_0.9/nose/suite.py&#34;, line 35, in run
self.setUp()
File &#34;/Users/jhp/projects/nose_work_0.9/nose/suite.py&#34;, line 128, in setUp
self.module = _import(self.moduleName, [self.path], self.conf)
File &#34;/Users/jhp/projects/nose_work_0.9/nose/importer.py&#34;, line 63, in _import fh, filename, desc = find_module(part, path)
ImportError: No module named tests
}}}</description>
<category>Report</category>
</item>
<item>
<pubDate>Wed, 22 Mar 2006 15:34:34 GMT</pubDate>
<title>#19: watcher plugin API: access to test results</title>
<link>http://nose.python-hosting.com/ticket/19</link>
<description>make it easier for watcher plugins to access test results... possibly call addError, etc, in plugins from TextTestResult.</description>
<category>Report</category>
</item>
<item>
<pubDate>Sat, 18 Mar 2006 23:09:08 GMT</pubDate>
<title>#16: unit tests for plugin option handling</title>
<link>http://nose.python-hosting.com/ticket/16</link>
<description>See #15 for an example of why these are needed. All builtin plugins and builtin options/config need unit tests to ensure that they function as advertised</description>
<category>Report</category>
</item>
<item>
<pubDate>Sat, 25 Mar 2006 04:43:26 GMT</pubDate>
<title>#26: func_names -&amp;gt; funcNames</title>
<link>http://nose.python-hosting.com/ticket/26</link>
<description>Much as I hate camelCase, unittest uses it and some overridden methods must use it, so for consistency, everythingShouldLookLikeThis.</description>
<category>Report</category>
</item>
<item>
<pubDate>Fri, 24 Mar 2006 01:11:37 GMT</pubDate>
<title>#23: refactor: revise for better unittest compatibility</title>
<link>http://nose.python-hosting.com/ticket/23</link>
<description>Refactor implemenation for a better fit with the slots provided.
Ideas:
* LazySuite replaces collector
* Move loading from TestCollector, TestModule, etc into loader
* Loader gets selector
* Loader instantiates LazySuites and passes itself to them
Add more details to this ticket.</description>
<category>Report</category>
</item>
<item>
<pubDate>Wed, 22 Mar 2006 15:12:33 GMT</pubDate>
<title>#18: setUpModule doesn't work</title>
<link>http://nose.python-hosting.com/ticket/18</link>
<description>In the documentation, it says you can use 'setUpModule' as the setup function for a module. In the code though, it actually uses 'setupModule' (note the different case on the 'u')</description>
<category>Report</category>
</item>
<item>
<pubDate>Thu, 09 Mar 2006 02:46:26 GMT</pubDate>
<title>#2: implement profiler plugin</title>
<link>http://nose.python-hosting.com/ticket/2</link>
<description>Plugin should be a Watcher that outputs a profiler report after test run. Possibly exclude test packages from report, have a --profile-package argument (like coverage plugin).</description>
<category>Report</category>
</item>
<item>
<pubDate>Mon, 20 Mar 2006 21:18:57 GMT</pubDate>
<title>#17: improve library discovery</title>
<link>http://nose.python-hosting.com/ticket/17</link>
<description>nosetests deals badly with a common package layout:
{{{
pack
lib
foo.py
test
test_foo.py
}}}
To be friendlier to that layout, selector should be updated to want directories that look like common source directories (lib and src at least).
</description>
<category>Report</category>
</item>
<item>
<pubDate>Thu, 09 Mar 2006 03:04:38 GMT</pubDate>
<title>#5: 'EOF in multiline input'</title>
<link>http://nose.python-hosting.com/ticket/5</link>
<description>Assert introspection fails for many expressions with an error like 'EOF in multiline input'</description>
<category>Report</category>
</item>
<item>
<pubDate>Sat, 18 Mar 2006 23:07:30 GMT</pubDate>
<title>#15: attrib plugin env defaults should not be strings</title>
<link>http://nose.python-hosting.com/ticket/15</link>
<description>The attrib plugin is currently broken because the option defaults are strings, but the option type is append.</description>
<category>Report</category>
</item>
<item>
<pubDate>Sat, 11 Mar 2006 15:24:14 GMT</pubDate>
<title>#9: use logging for messaging</title>
<link>http://nose.python-hosting.com/ticket/9</link>
<description>This will be a 2-step process:
1. replace nose.util.msg() with real logging, using the builting logging module.
2. provide an interface for selecting which loggers and levels to output and where </description>
<category>Report</category>
</item>
<item>
<pubDate>Thu, 09 Mar 2006 03:30:53 GMT</pubDate>
<title>#7: add option to activate pdb on error/fail</title>
<link>http://nose.python-hosting.com/ticket/7</link>
<description>Add command line option/env var to activate the pdb on error/fail feature.</description>
<category>Report</category>
</item>
<item>
<pubDate>Thu, 09 Mar 2006 03:05:41 GMT</pubDate>
<title>#6: patch AssertionError only</title>
<link>http://nose.python-hosting.com/ticket/6</link>
<description>Install the patch that introspects assets as AssertionError only, instead of patching builtin.Exception.</description>
<category>Report</category>
</item>
<item>
<pubDate>Sun, 12 Mar 2006 20:01:49 GMT</pubDate>
<title>#12: patch: attribute-based test case selector</title>
<link>http://nose.python-hosting.com/ticket/12</link>
<description>This patch adds selecting test cases based on their attributes.
Examples of test function/method attribute usage with patched nose
Simple syntax (-a, --attr) examples:
* nosetests -a status=stable
=&gt; only test cases with attribute &#34;status&#34; having value &#34;stable&#34;
* nosetests -a priority=2,status=stable
=&gt; both attributes must match
* nosetests -a tags=http
=&gt; attribute list &#34;tags&#34; must contain value &#34;http&#34; (see test_foobar() below for definition)
* nosetests -a slow
=&gt; attribute &#34;slow&#34; must be defined and its value cannot equal to False (False, [], &#34;&#34;, etc...)
* nosetests -a !slow
=&gt; attribute &#34;slow&#34; must NOT be defined or its value must be equal to False
Eval expression syntax (-A, --eval-attr) examples:
* nosetests -A &#34;not slow&#34;
* nosetests -A &#34;(priority &gt; 5) and not slow&#34;
This example and the accompanied patch is in public domain, free for any use.
</description>
<category>Report</category>
</item>
<item>
<pubDate>Sun, 12 Mar 2006 11:22:20 GMT</pubDate>
<title>#11: patch: Windows path handling issues</title>
<link>http://nose.python-hosting.com/ticket/11</link>
<description>Nose 0.9 r5 fails to run any test cases on Windows. Here's a patch with fixes to some path handling issues.
- Mika
</description>
<category>Report</category>
</item>
<item>
<pubDate>Thu, 09 Mar 2006 02:49:15 GMT</pubDate>
<title>#3: use clean config in units</title>
<link>http://nose.python-hosting.com/ticket/3</link>
<description>In the unittests in selftest, each class or instance that can take a config argument should get a fresh _Config(), so that the configuration of the driving test runner doesn't leak into the test cases.</description>
<category>Report</category>
</item>
<item>
<pubDate>Tue, 12 Dec 2006 01:15:15 GMT</pubDate>
<title>#113: python setup.py nosetests --stop was raise TypeError</title>
<link>http://nose.python-hosting.com/ticket/113</link>
<description>I'm not sure if this would be true across all extra options sent to setup.py nosetests, however the fix seemed simple enough (the internals needed to handle integer values). A rough patch is following (this got it working).
All this, using nose revision 143 and setuptools 0.6c3</description>
<category>Report</category>
</item>
<item>
<pubDate>Sat, 02 Dec 2006 17:31:53 GMT</pubDate>
<title>#110: isolation plugin</title>
<link>http://nose.python-hosting.com/ticket/110</link>
<description>Include a plugin in core that resets the state of sys.modules between after each test module is run.</description>
<category>Report</category>
</item>
<item>
<pubDate>Fri, 01 Dec 2006 20:02:22 GMT</pubDate>
<title>#109: doctest vs coverage</title>
<link>http://nose.python-hosting.com/ticket/109</link>
<description>doctest requires a patch (or monkeypatch) to work correctly with the coverage module.
ref:
http://www.nedbatchelder.com/code/modules/coverage.html
http://svn.zope.org/Zope3/trunk/src/zope/testing/doctest.py?rev=28679&amp;r1=28703&amp;r2=28705
Since nose can't patch a user's doctest directly, we'll have to monkeypatch in a revise _OutputRedirectingPdb.</description>
<category>Report</category>
</item>
<item>
<pubDate>Wed, 22 Nov 2006 15:30:56 GMT</pubDate>
<title>#108: Generate and post plugin docs</title>
<link>http://nose.python-hosting.com/ticket/108</link>
<description>Generate HTML docs for built-in plugins and post them to the site and wiki.</description>
<category>Report</category>
</item>
<item>
<pubDate>Tue, 21 Nov 2006 15:48:27 GMT</pubDate>
<title>#106: Revise long description in setup.py</title>
<link>http://nose.python-hosting.com/ticket/106</link>
<description>Revise the long description in setup.py to be more accurate and descriptive.</description>
<category>Report</category>
</item>
<item>
<pubDate>Sat, 28 Oct 2006 22:06:05 GMT</pubDate>
<title>#100: nosetests man page</title>
<link>http://nose.python-hosting.com/ticket/100</link>
<description>Install a man page for nosetests on install. A man page contributed by Gustavo Noronha Silva is attached to this ticket.</description>
<category>Report</category>
</item>
<item>
<pubDate>Mon, 11 Dec 2006 16:46:06 GMT</pubDate>
<title>#112: test can't be run from package directory -- misleading INFO message</title>
<link>http://nose.python-hosting.com/ticket/112</link>
<description>I have a small module, i.e. a dir (say, package/) which has an __init__.py, a foo.py and a test_foo.py
test_foo.py has the line 'import foo' in it, as it contains the test code for the code in foo.py
I try to run the tests by running 'nosetests -vv' in the dir. I see the line
&#34;nose.core: INFO: Working directory is a package; adding to sys.path&#34;
appear, but the tests won't run, I get an
ImportError: No module named foo
The problem is that the message &#34;Working directory is a package; adding to sys.path&#34; is misleading. I doesn't add the current directory, it adds the _parent_ of the current directory to sys.path. (Due to the way add_path() is implemented in sys.path)
I'm not sure how to characterise this problem. Simply having 'import package.foo' instead of 'import foo' in test_foo.py makes it work. Is there any reason to prohibit using 'import foo' in this case? Or maybe using add_path() for adding the current working directory is a bug?
</description>
<category>Report</category>
</item>
<item>
<pubDate>Sun, 05 Nov 2006 23:26:24 GMT</pubDate>
<title>#102: Nose frontpage installation instructions in error</title>
<link>http://nose.python-hosting.com/ticket/102</link>
<description>These instructions are wrong:
{{{
Install nose using setuptools:
easy_install nose
Or, if you don't have setuptools installed, use the download link
at right to download the source package, and install in the normal
fashion: Ungzip and untar the source package, cd to the new
directory, and:
python setup.py install
}}}
You cannot run python setup.py install without setup_tools upgraded to at least the version that nose is configured to work with, as per this error message:
{{{
$ sudo python setup.py install ~/src/nose-0.9.1
The required version of setuptools (&gt;=0.6c2) is not available, and
can't be installed while this script is running. Please install
a more recent version first.
(Currently using setuptools 0.6c1 (/usr/lib/python2.4/site-packages/setuptools-0.6c1-py2.4.egg))
zsh: 32149 exit 2 sudo python setup.py install
}}}
I recommend ammending the instructions to say
{{{
python ez_setup.py
python setup.py install
}}}
and note that the installation will cause easy_install to be installed. Perhaps a link to ez_setup.py would be good too.</description>
<category>Report</category>
</item>
<item>
<pubDate>Wed, 04 Oct 2006 21:21:27 GMT</pubDate>
<title>#95: evaluating asserts stops working when there is a two-line docstring</title>
<link>http://nose.python-hosting.com/ticket/95</link>
<description>This is a problem with nose version 0.9.0.
When I run the following test with nosetests -d option,
def test_integers():
a = 2
assert a == 4
I get this expected result, the variable a is expanded:
...
assert a == 4
AssertionError
2 = 2
&gt;&gt; assert 2 == 4
However, when I add a two-line docstring like that:
def test_integers():
&#34;&#34;&#34;docstring line 1
docstring line 2
&#34;&#34;&#34;
a = 2
assert a == 4
then, instead of the variable expansion,
the last line of the docstring is displayed:
...
assert a == 4
AssertionError
docstring line 2</description>
<category>Report</category>
</item>
<item>
<pubDate>Wed, 01 Nov 2006 21:02:07 GMT</pubDate>
<title>#101: Doesn't select decorated methods/functions</title>
<link>http://nose.python-hosting.com/ticket/101</link>
<description>If a function has a decoration nose will not pick it up for testing, it is of type 'function proxy' instead of 'function'.
This was tested on Debian testing with version 0.9.0-1
Test case:
{{{
def my_decor(func):
return lambda: func()
def test_decor():
assert False
@my_decor
def test_decor1():
assert False
}}}
In the above test case we have two functions, one decorated and one not. Running it through nosetests shows only one detected function which fails while we expect two functions failing.
Running it in verbose mode will show that test_decor1 is not picked up for testing.</description>
<category>Report</category>
</item>
<item>
<pubDate>Tue, 05 Dec 2006 18:35:32 GMT</pubDate>
<title>#111: nosetests -vvvv produces little output</title>
<link>http://nose.python-hosting.com/ticket/111</link>
<description>You get more output with -v, -vv, and -vvv -- but with -vvvv the output goes away</description>
<category>Report</category>
</item>
<item>
<pubDate>Thu, 16 Nov 2006 20:59:35 GMT</pubDate>
<title>#105: nose 0.9.1 does not run functional tests in order of appearance in the module</title>
<link>http://nose.python-hosting.com/ticket/105</link>
<description>In nose main page, http://somethingaboutorange.com/mrl/projects/nose/,
the section titled **Writing tests** says:
[quote]
Like py.test, functional tests will be run in the order in which they
appear in the module file. TestCase derived tests and other test
classes are run in alphabetical order.
[endquote]
nose 0.9.1 does not seem to do this at all. It seems that it performs
the tests in the following order:
- run test functions that are defined with the raises decorator
- runs the other test functions in alphabetical order of the test
function names
py.test does run the test functions in order of appearance in the
module and I'd like to be able to depend on that when using nose.
</description>
<category>Report</category>
</item>
<item>
<pubDate>Tue, 01 Aug 2006 23:48:00 GMT</pubDate>
<title>#79: ability to change the regex pattern </title>
<link>http://nose.python-hosting.com/ticket/79</link>
<description>hello, i just started using nose and i've read the help but can't find a setting to customize the discovery regex. was hoping it would discover tests named with our standard naming system: something like 'modulename_unittest.py'. could this functionality be added?</description>
<category>Report</category>
</item>
<item>
<pubDate>Wed, 22 Nov 2006 15:18:08 GMT</pubDate>
<title>#107: Expose the guts of @raises as assert_raises</title>
<link>http://nose.python-hosting.com/ticket/107</link>
<description>@raises is useful for some users, but others want to be able to stack up several raises tests inside of one test case, so it would be helpful to have an assert_raises that they can call directly.</description>
<category>Report</category>
</item>
<item>
<pubDate>Thu, 13 Apr 2006 14:07:55 GMT</pubDate>
<title>#39: setuptools integration: pick up options from setup.cfg</title>
<link>http://nose.python-hosting.com/ticket/39</link>
<description>Suggestion from Kevin Dangoor:
{{{
Even if hooking into setuptools' test command doesn't work,
would it be possible for you to make a distutils command wrapper
(setuptools allows you to easily plug in new commands). The reason I
say this is that nosetests has a growing set of options, and it would
be nice to be able to specify the right set of options in setup.cfg.
}}}
First need to figure out what this will require and from that decide the appropriate milestone.</description>
<category>Report</category>
</item>
<item>
<pubDate>Tue, 11 Apr 2006 02:54:05 GMT</pubDate>
<title>#38: setuptools integration phase 3: custom command</title>
<link>http://nose.python-hosting.com/ticket/38</link>
<description>Create a setuptools command that exposes the full functionality of nose and all plugins.</description>
<category>Report</category>
</item>
<item>
<pubDate>Wed, 25 Oct 2006 17:46:42 GMT</pubDate>
<title>#99: integrated twisted with nose</title>
<link>http://nose.python-hosting.com/ticket/99</link>
<description>Here is the Twisted integration source code.
twistedtools.py is the implementation itself (I first tried to call it &#34;twisted&#34;, but then it shadows the original twisted package). It allows to decorate tests that return a Deferred.
test_twisted.py is the test suite for the implementation. There probably should be a way to skip it if Twisted is not installed (instead of raising ImportError all around), but I don't know the right way to do that.
</description>
<category>Report</category>
</item>
<item>
<pubDate>Mon, 25 Sep 2006 15:52:56 GMT</pubDate>
<title>#92: @with_setup doesn't mix well with @raises</title>
<link>http://nose.python-hosting.com/ticket/92</link>
<description>Hi,
I tried to write the following code:
@raises(NotEnoughBytes)
@with_setup(setup1)
def test32():
...
This failed in a strange way. It seems nose either called the wrong setup function (I have different setup functions for different tests), or didn't call one at all (I didn't investigate very far).
The fix came by inverting the decorator order:
@with_setup(setup1)
@raises(NotEnoughBytes)
def test32():
...
</description>
<category>Report</category>
</item>
<item>
<pubDate>Thu, 12 Oct 2006 19:28:14 GMT</pubDate>
<title>#98: @with_setup not calling teardown() if test raises exception</title>
<link>http://nose.python-hosting.com/ticket/98</link>
<description>I'm not sure if this is desired behvior or not, but I noticed that if a test function decorated with @with_setup() raises an exception then the teardown() method is not called. My personal choice is that a teardown function is called in a finally block as the test is run, to *always* undo what was done by setup.
I took a [very] quick stab at adding a test to nose's suite for this but couldn't come up with one since setup and teardown are just properties set on the test method. hmm. Was using revision 98.
-Kumar McMillan</description>
<category>Report</category>
</item>
<item>
<pubDate>Thu, 28 Sep 2006 02:33:39 GMT</pubDate>
<title>#94: --doctest-extension and NOSE_DOCTEST_EXTENSION conflict</title>
<link>http://nose.python-hosting.com/ticket/94</link>
<description>If you define both the environmental variable and give the command-line variable, you get:
{{{
Traceback (most recent call last):
File &#34;/usr/local/bin/nosetests&#34;, line 7, in ?
sys.exit(
File &#34;/usr/local/lib/python2.4/site-packages/nose-0.9.0-py2.4.egg/nose/core.py&#34;, line 438, in main
return sys.exit(not run(*arg, **kw))
File &#34;/usr/local/lib/python2.4/site-packages/nose-0.9.0-py2.4.egg/nose/core.py&#34;, line 446, in run
result = TestProgram(*arg, **kw).success
File &#34;/usr/local/lib/python2.4/site-packages/nose-0.9.0-py2.4.egg/nose/core.py&#34;, line 199, in __init__
self.parseArgs(argv, env)
File &#34;/usr/local/lib/python2.4/site-packages/nose-0.9.0-py2.4.egg/nose/core.py&#34;, line 206, in parseArgs
self.conf = configure(argv, env)
File &#34;/usr/local/lib/python2.4/site-packages/nose-0.9.0-py2.4.egg/nose/core.py&#34;, line 322, in configure
options, args = parser.parse_args(argv)
File &#34;/usr/lib/python2.4/optparse.py&#34;, line 1278, in parse_args
stop = self._process_args(largs, rargs, values)
File &#34;/usr/lib/python2.4/optparse.py&#34;, line 1318, in _process_args
self._process_long_opt(rargs, values)
File &#34;/usr/lib/python2.4/optparse.py&#34;, line 1393, in _process_long_opt
option.process(opt, value, values, self)
File &#34;/usr/lib/python2.4/optparse.py&#34;, line 710, in process
return self.take_action(
File &#34;/usr/lib/python2.4/optparse.py&#34;, line 723, in take_action
values.ensure_value(dest, []).append(value)
AttributeError: 'str' object has no attribute 'append'
}}}</description>
<category>Report</category>
</item>
<item>
<pubDate>Thu, 28 Sep 2006 00:09:08 GMT</pubDate>