[TIP] I have some data files I want to use in my tests -- how do I specify where they are?
Olemis Lang
olemis at gmail.com
Mon Dec 21 05:02:52 PST 2009
On Sun, Dec 20, 2009 at 11:46 AM, C. Titus Brown <ctb at msu.edu> wrote:
> On Sun, Dec 20, 2009 at 11:43:19AM -0500, Matthew Wilson wrote:
>> I'm writing some code to extract and yield some attachments out of
>> email messages. I have a file named email_parsers.py and another file
>> in a tests/ subdirectory named test_email_parsers.py
>>
>> I have a few email messages saved as text files. These files are in
>> that tests/ directory.
>>
>> In my test code, I want to know how to open those email files. Should
>> I use something like os.dirname(__file__)?
>
> that's what I use -- I calculate everything relative to the Python file using
> the data.
>
If the package is not in the local file system (e.g. it's packaged
inside an EGG file or whatever ) then this does not work. My
suggestion is :
- Place data files inside `tests/data`
- Add it to `package_data` in `setup.py`
- In your test code use pkg_resources.(resource_filename |
resource_stream | resource_string)
to load the data .
>> I know I won't always run my tests from the tests/ subdirectory
>
> ...so this does't matter :)
>
most of the time
--
Regards,
Olemis.
Blog ES: http://simelo-es.blogspot.com/
Blog EN: http://simelo-en.blogspot.com/
Featured article:
Initial version of protocol-provider patch. Patch does not currently
apply cleanly - it hasn'... -
http://bitbucket.org/osimons/trac-rpc-mq/changeset/b302540a1608/
More information about the testing-in-python
mailing list