writing tests for an extension

Dov Feldstern dfeldstern at fastimap.com
Fri Dec 5 06:49:17 CST 2008


Patrick Mézard wrote:
> Dov Feldstern a écrit :
>> Hi!
>>
>> I see that tests of an extension need to add the extension to the hgrc, like so:
>>
>> [extensions]
>> convert=
>>
>> However, that only works if the extension is placed within the the hgext 
>> directory; otherwise, it's necessary to provide a full path to the extension's 
>> location. But I don't want to hard code that into the tests. I also want this to 
>> work, say, with a binary installation on Windows, where there may not even be an 
>> hgext directory (is that true?).
>>
>> Any ideas on how to deal with this?
> 
> It works if you run the tests from the extension directory. For instance, the forest extension repository contains the extension file and a single test file. The test is run with:
> 
> $ python ../your-hg-repo/tests/run-tests.py test-forest
> 
> and the test itself registers the extension like:
> 
> """
> echo "[extensions]" >> $HGRCPATH
> echo "mq=" >> $HGRCPATH
> echo "forest=" >> $HGRCPATH
> """
> 
> --
> Patrick Mézard

My situation is a little more complicated, for two reasons: (1) my extension 
contains multiple files, so it's a package with __init__.py; (2) my tests are in 
a tests directory (which is currently *inside* the package directory). So from 
within the tests directory, the package is not found.

So I guess I should move the tests directory to be placed alongside the 
directory containing the package itself? Something like this:

myext-repo/
   myext/
     __init__.py
     myext.py
     myext-utils.py
   tests/
     test-myext.py

and then in .hgrc:
myext=/path/to/myrepo-ext/myrepo

Thanks!
Dov


More information about the Mercurial-devel mailing list