nose-devs/nose — pull request #717 by ianw (2013-07-30 02:51:10+00:00)
Title: Match class.method for exclusion

Consider the following

```python
import testtools

class BaseTestCase(testtools.TestCase):
pass

class FooTestCaseXML(BaseTestCase):
_interface = "xml"

def test_out(self):
print "type is %s" % self._interface

class FooTestCaseJSON(FooTestCaseXML):
_interface = "json"
```

Locally you may decide that you know the JSON test-case from upstream
is invalid for some reason and would like to exclude it from your
testing, so naturally you'd try

```$ nosetests --exclude="FooTestCaseJSON"```

but this will not work. Nowhere will the selector ever try to match
the class name. Because the test is a sub-class of TestCase nose will
not check the name for exclusion in wantClass. wantMethod matches on
"method_name" which also doesn't include the class-name.

Any easy way to enable matching of this layout is by letting
wantMethod match on the full string representation of the method with
the prepended class-name. This should satisfy the
principle-of-least-surprise and not break anyones existing excludes
statements, which will should still match.