diff --git a/hgext/convert/darcs.py b/hgext/convert/darcs.py --- a/hgext/convert/darcs.py +++ b/hgext/convert/darcs.py @@ -21,12 +21,17 @@ class darcs_source(converter_source): def __init__(self, ui, path, rev=None): super(darcs_source, self).__init__(ui, path, rev=rev) - if not os.path.exists(os.path.join(path, '_darcs', 'inventory')): + # check for _darcs, ElementTree, _darcs/inventory so that we can + # easily skip test-convert-darcs if ElementTree is not around + if not os.path.exists(os.path.join(path, '_darcs')): raise NoRepo("couldn't open darcs repo %s" % path) if ElementTree is None: raise util.Abort(_("Python ElementTree module is not available")) + if not os.path.exists(os.path.join(path, '_darcs', 'inventory')): + raise NoRepo("couldn't open darcs repo %s" % path) + self.path = os.path.realpath(path) self.lastrev = None diff --git a/tests/test-convert-darcs b/tests/test-convert-darcs --- a/tests/test-convert-darcs +++ b/tests/test-convert-darcs @@ -9,6 +9,14 @@ echo 'hgext.graphlog =' >> $HGRCPATH DARCS_EMAIL='test@example.org'; export DARCS_EMAIL HOME=do_not_use_HOME_darcs; export HOME +# skip if we can't import elementtree +mkdir dummy +mkdir dummy/_darcs +if hg convert dummy 2>&1 | grep ElementTree > /dev/null; then + echo 'hghave: missing feature: elementtree module' + exit 80 +fi + echo % initialize darcs repo mkdir darcs-repo cd darcs-repo