I have several python modules in a directory.
In the same directory, I have a package tests
.
I would quite like to name the modules in tests
the same as the modules that they contain tests for, although of course it isn't critical.
So, in tests.foo
I naively write import foo
. This isn't working so well - it imports tests.foo
, not top-level foo
.
Can I do what I want, or do I just have to call the test module test_foo
?
Sorry if this is obvious or a dupe, my search-fu has failed.
Use the full package path like this:
in
tests/foo.py
doAnd i think this part of the documentation can interest you : http://docs.python.org/whatsnew/2.5.html#pep-328-absolute-and-relative-imports
test_foo.py
seems like an appropriate solution in this case.If you don't rename the test modules then make the
tests
directory into Python package (addtests/__init__.py
file) and use absolute imports: