Usual practice: running/testing modules in a package
Gabriel Genellina
gagsl-py2 at yahoo.com.ar
Fri Aug 22 13:25:35 EDT 2008
En Fri, 22 Aug 2008 10:48:50 -0300, med.swl at gmail.com <med.swl at gmail.com>
escribió:
> On 18 ago, 08:28, "Gabriel Genellina" <gagsl-... at yahoo.com.ar> wrote:
>> A package is a library, meant to be imported by some other code. Your
>> main script (or the testing code) is a program, it uses (i.e. imports)
>> the library.
>
> You are right that a module is a library and its main use is to be
> imported from another module or program. But is a common practice in
> Python to introduce testing code as part as the module itself. Even
> there is an option “-m” to do that.
> So (in my humbled opinion), that is one error Python must fix.
A *module* or a *package*? The OP asked how to test a package, and a
package is clearly a library. In the final application, it will be
imported. So the test code should mimic the same environment, and import
the package.
The easiest way to import a package is to run a script from its container
directory: the current directory is already in sys.path so the package
directory is found directly without messing with sys.path, PYTHONPATH
variable and such. This is my suggested approach, but there are many other
alternatives. Anyway, the idea is to import the package to test it.
If you don't import the package and just run some script from inside it,
how would Python know that it belongs to a package? Looking for a
__init__.py in the same directory? what if __init__.py contains code? when
should it be executed?
--
Gabriel Genellina
More information about the Python-list
mailing list