summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* | Fix #728: attrib plugin rejects any staticmethodJohn Szakmeister2014-02-203-0/+13
| | | | | | | | | | | | | | | | The issue is that static methods get wrapped in an UnboundMethod object, and the attribute plugin is unable to grab the associated class, since UnboundMethod does not have the im_class attribute. Since the goal of UnboundMethod is to mimic an actual method, let's go ahead and implement the im_class attribute.
* | Merge pull request #772 from jszakmeister/fix-771John Szakmeister2014-02-205-15/+38
|\ \ | |/ |/| Fix #771: attr plugin is broken when parent overrides child method
| * Fix #771: attr plugin is broken when parent overrides child methodJohn Szakmeister2014-02-205-15/+38
|/ | | | | | | | | | | | | | | | | The issue is when the parent and child have different attributes, and the parent method was being bypassed because of the attribute selection. In this case, Nose would incorrectly use the version from the base class, even though it was supposed to skip the method entirely. To fix this, we need simply need to stop digging through base classes. The dir() method returns a flattened set of methods, so there's no need to iterate through the base classes trying to dig up all the methods. Moreover, it leads to false positives since we were not keeping track of methods seen on the parent classes. As a result, we'd incorrectly select a test for inclusion (using attributes), or we'd pick up a method that we should've ignored (like runTest in a Twisted test case). Thanks to Thomas Grainger for providing a test case!
* Update the generated README.txt file.John Szakmeister2014-02-191-5/+41
|
* Fix a typo in the help for --cover-min-percentage.John Szakmeister2014-02-192-4/+14
| | | | Regenerate the man page too.
* Drop Python 2.5 from Travis CI. It's no longer supported.John Szakmeister2014-02-181-1/+1
|
* Add a CHANGELOG entry for Kevin's Ctrl-C patch.John Szakmeister2014-02-141-0/+3
|
* Fix #690: Don't traceback when coverage reports fail.John Szakmeister2014-02-132-2/+13
| | | | | Under Jython this step fails badly and tanks Nose. Instead, emit a warning about the failure to create the coverage reports, and move on.
* Merge pull request #682 from kevinjqiu/ignore-keyboard-interruptJohn Szakmeister2014-02-121-1/+4
|\ | | | | Catch KeyboardInterrupt during test run.
| * Catch KeyboardInterrupt during test run...Kevin Qiu2013-05-021-1/+4
| | | | | | | | | | ...so that one can ^C a test run and still get a report of failed tests and stack traces.
* | Merge pull request #739 from chebee7i/cover_packageJohn Szakmeister2014-02-121-1/+2
|\ \ | | | | | | Instruct coverage instance to cover requested packages only.
| * | Instruct coverage instance to cover requested packages only.chebee7i2013-10-181-1/+2
| | |
* | | Give credit to Malthe Borch for the log capture fix.John Szakmeister2014-02-121-0/+1
| | |
* | | Merge pull request #727 from malthe/fix-builtin-filteringJohn Szakmeister2014-02-123-1/+24
|\ \ \ | | | | | | | | Fixed issue with builtin filtering.
| * | | Fixed issue with builtin filtering.Malthe Borch2014-02-123-1/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The superclass (which ultimately inherits from 'Handler') checks against any registered filters, before allowing a logging record. Nose's logging capture plugin should do the same, because these filters are allowed to modify the record. And it can easily happen that the logging format requires this modification (e.g. add an attribute).
* | | | Add Anne's regex change to the CHANGELOG.John Szakmeister2014-02-091-0/+2
| | | |
* | | | Merge pull request #744.John Szakmeister2014-02-031-2/+2
|\ \ \ \ | | | | | | | | | | | | | | | Fix #743: fix an incorrect regex in writing_tests.rst.
| * | | | Fix #743: fix incorrect regex in writing_tests.rstAnneTheAgile2014-02-031-2/+2
| | | | |
* | | | | Add note about tests being ignored from +x files.Michael Dunn2014-01-312-0/+7
| | | | | | | | | | | | | | | | | | | | I've had this problem numerous times and I know others have too. While the documentation does mention this under the --exe flag, it makes sense to put it here since this is where people are going to look first when they run into issues.
* | | | | Add Barry's contribution to the CHANGELOG.John Szakmeister2014-01-311-0/+2
| | | | |
* | | | | Merge pull request #763 from warsaw/issue759John Szakmeister2014-01-302-3/+1
|\ \ \ \ \ | | | | | | | | | | | | Fix the test failures in issue 759.
| * | | | | Fix the test failures in issue 759.Barry Warsaw2014-01-142-3/+1
|/ / / / /
* | | | | Update changelog with Ian's contribution.John Szakmeister2014-01-091-0/+3
| | | | |
* | | | | Merge pull request #699 from ianw/skiptest-exceptionJohn Szakmeister2014-01-091-6/+13
|\ \ \ \ \ | | | | | | | | | | | | Look for unittest2 in skip plugin
| * | | | | Look for unittest2 in skip pluginIan Wienand2013-06-201-6/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If unittest2 is available, try to use its SkipTest class rather than a nose internal version. Inspired by better integration with testtools for older python releases (see [1]). [1] https://review.openstack.org/#/c/33056/
* | | | | | Update changelog with Michael's contribution.John Szakmeister2014-01-081-0/+2
| | | | | |
* | | | | | Merge pull request #758 from mjkillough/issue_501John Szakmeister2014-01-081-1/+45
|\ \ \ \ \ \ | | | | | | | | | | | | | | Add test that transplants a function generator
| * | | | | | Add test that transplants a function generatorMichael Killough2014-01-031-1/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently failing due to issue 501. When the test is transplanted it is wrapped in another function, which means that inspect.isgeneratorfunction() returns False. There is already a fix for this in pull 620.
* | | | | | | Fix #501: Imported test generators are treated as simple test functionsJohn Szakmeister2014-01-082-2/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The issue is that `transplant_func()` did not preserve function generators correctly. It would wrap the transplanted function with a decorator, and since no yield statement was present in the decorator, we'd lose sight of whether the transplanted function was a generator function. To fix this, let's check whether the function is a generator function, and if so, use a for/yield loop to pass the results back using a generator causing the decorator function to be seen as a generator function. This will preserve the fact that the supplied function was a generator function.
* | | | | | | Update the CHANGELOG to reflect the current state of master.John Szakmeister2014-01-071-0/+38
|/ / / / / /
* | | | | | Merge pull request #750 from AndreLouisCaron/fix-xunit-capture-stackJohn Szakmeister2013-11-262-0/+4
|\ \ \ \ \ \ | |_|/ / / / |/| | | | | Fixes issue #749.
| * | | | | Adding myself to authors file (first commit).Andre Caron2013-11-251-0/+1
| | | | | |
| * | | | | Fixes issue #749.Andre Caron2013-11-251-0/+3
| | | | | |
* | | | | | Merge pull request #724 from jszakmeister/fix-some-unicode-errorsJohn Szakmeister2013-10-218-97/+112
|\ \ \ \ \ \ | |_|_|_|/ / |/| | | | | | | | | | | | | | | | | Fixes some unicode errors/handling in several areas of Nose. A special thanks to Thomas Kluyver (@takluyver) for all the reviews while getting this together.
| * | | | | pyversion: minor fixes to exc_to_unicodeJohn Szakmeister2013-10-211-27/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In Python 3, just str() the argument and return. In other Python implementations, work a little harder to make sure that we return a unicode string.
| * | | | | pyversion: try unicode() before stringifying in force_unicode()John Szakmeister2013-08-301-5/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In Python 3, just stringify the argument. In all other Python implementations, let's attempt to use unicode() first, and then fallback to using str() and decoding.
| * | | | | Fix #720: nose with detailed errors raises encoding errorJohn Szakmeister2013-08-113-3/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In this case, the exception vector being passed in was a string that contained encoded UTF-8 sequences. It was being converted to unicode implicitly, which was raising a UnicodeDecodeError because some bytes were >= 128. Make sure the exception string is converted to unicode before trying to put the whole thing together. Thanks to Guillaume Ayoub for the test case.
| * | | | | Centralize some unicode and exception helpers into pyversion.John Szakmeister2013-08-113-51/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | While we're at it, teach format_exception() to use the new exc_to_unicode() helper derived from work done in capture.py.
| * | | | | Fix #692: UnicodeDecodeError in xunit when capturing stdout and stderrJohn Szakmeister2013-08-112-57/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It turns out that `Xunit` was very mix-brained about how to formulate the blocks ultimately used for generating the report. In some parts, the expectation was to put unicode strings into the blocks, and in others it would insert encoded strings along with unicode strings into the blocks. It's the latter that was ultimately causing the issue. In particular, `_quoteattr` would sometimes receive a unicode string, and then it would get translated into UTF-8. Then, it would get inserted into a unicode string, which would cause Python to try and turn the UTF-8 encoded string back into a unicode one, but it would default to the ascii codec and fail. This makes us use unicode everywhere, sometimes forcing the data into unicode with replacement.
| * | | | | Fix #693: Python 2.4 incompatibilitiesJohn Szakmeister2013-08-113-3/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | BaseException didn't exist until Python 2.5. Let's create a helper in pyversion to check whether we're derived from BaseException on Python 2.5 or better, and just Exception on Python 2.4.
* | | | | | Merge pull request #685 from lukaszb/ignore-config-filesJohn Szakmeister2013-09-213-2/+45
|\ \ \ \ \ \ | | | | | | | | | | | | | | Added NOSE_IGNORE_CONFIG_FILES as env variable option
| * | | | | | Removed doubled wordLukasz Balcerzak2013-06-061-3/+3
| | | | | | |
| * | | | | | Added NOSE_IGNORE_CONFIG_FILES as env variable optionLukasz Balcerzak2013-05-093-2/+45
| | |_|_|_|/ | |/| | | |
* | | | | | Merge pull request #719 from pib/init_prefix_bugPhilip Jenvey2013-08-304-1/+13
|\ \ \ \ \ \ | |_|_|_|_|/ |/| | | | | Fix Importer.importFromPath to be able to import modules whose names start with __init__
| * | | | | Just check for __init__.py insteadPaul Bonser2013-07-311-1/+1
| | | | | |
| * | | | | Failing test for modules with names starting with __init__ that aren't ↵Paul Bonser2013-07-313-0/+12
| | |/ / / | |/| | | | | | | | | | | | | __init__.py
* | | | | Merge pull request #722 from djs/masterJohn Szakmeister2013-08-111-2/+3
|\ \ \ \ \ | |/ / / / |/| | | | Don't save zero-byte xunit test reports
| * | | | Don't save zero-byte xunit test reportsDan Savilonis2013-08-051-2/+3
|/ / / /
* | | | Add a fake isatty() method to Tee.Jimmy Wennlund2013-06-261-0/+4
| | | |
* | | | Fix #700: Tee is missing the writelines() method.John Szakmeister2013-06-263-0/+25
| |_|/ |/| |