Robert Collins added the comment:

Ok, so here's whats happening:
the default behaviour is to do discovery of '.', which bypasses the namespace 
support code.

Running with tests as the first parameter works because it doesn't require the 
directory being directly scanned to be a package.

Equally, if the namespace isn't mapped to a local directory, 'python -m 
unittest tests' will load tests from the tests namespace.

So - this seems to be acting as designed. Namespace packages working fine.

However, I think what you're asking for is that namespace packages in your cwd 
are picked up and tested, without you having to supply the namespace name?

I think what we'd need for that to work sanely is a patch to teach 
loader.discover to determine the local namespaces which are present under 
start_dir. Right now this code:
        elif os.path.isdir(full_path):
            if (not namespace and
                not os.path.isfile(os.path.join(full_path, '__init__.py'))):
                return None, False

gets in your way: we assume that either we're processing a namespace, or there 
are no namespaces at all.

I think some more detangling of the generator could address this fairly cleanly.

----------
stage:  -> needs patch
title: unittest discovery and namespaced packages -> unittest discovery doesn't 
detect namespace packages when given no parameters
versions: +Python 3.5, Python 3.6 -Python 3.4

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue23882>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to