summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2011-02-08 02:01:13 -0800
committerZac Medico <zmedico@gentoo.org>2011-02-08 02:01:13 -0800
commit8e6c622174ca5fb8ae1789687954e4335f7a0a2e (patch)
tree4c95a6ee1ad8c0da57b6db5a204468073151da08
parent75c57abd6bdc86a2425d15013128e800c57ced7a (diff)
downloadportage-8e6c622174ca5fb8ae1789687954e4335f7a0a2e.tar.gz
portage-8e6c622174ca5fb8ae1789687954e4335f7a0a2e.tar.bz2
portage-8e6c622174ca5fb8ae1789687954e4335f7a0a2e.zip
repoman.herdbase: tolerate expat ImportError
We tolerate global scope import failures for optional modules, so that ImportModulesTestCase can succeed (or possibly alert us about unexpected import failures).
-rw-r--r--pym/portage/tests/lint/test_import_modules.py1
-rw-r--r--pym/repoman/herdbase.py11
2 files changed, 9 insertions, 3 deletions
diff --git a/pym/portage/tests/lint/test_import_modules.py b/pym/portage/tests/lint/test_import_modules.py
index 81ffedec4..8d257c5a6 100644
--- a/pym/portage/tests/lint/test_import_modules.py
+++ b/pym/portage/tests/lint/test_import_modules.py
@@ -11,7 +11,6 @@ class ImportModulesTestCase(TestCase):
def testImportModules(self):
expected_failures = frozenset((
- 'repoman.herdbase', # requires python with xml support
))
for mod in self._iter_modules(PORTAGE_PYM_PATH):
diff --git a/pym/repoman/herdbase.py b/pym/repoman/herdbase.py
index 4808d3ca3..64b59e636 100644
--- a/pym/repoman/herdbase.py
+++ b/pym/repoman/herdbase.py
@@ -1,11 +1,18 @@
# -*- coding: utf-8 -*-
# repoman: Herd database analysis
-# Copyright 2010 Gentoo Foundation
+# Copyright 2010-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2 or later
import errno
import xml.etree.ElementTree
-from xml.parsers.expat import ExpatError
+try:
+ from xml.parsers.expat import ExpatError
+except ImportError:
+ # This means that python is built without xml support.
+ # We tolerate global scope import failures for optional
+ # modules, so that ImportModulesTestCase can succeed (or
+ # possibly alert us about unexpected import failures).
+ pass
from portage.exception import FileNotFound, ParseError, PermissionDenied
__all__ = [