From b6c867e7d8f8c34138efadc5efd0c9f30bff9ecb Mon Sep 17 00:00:00 2001 From: Chris McDonough Date: Tue, 30 Jun 2009 23:09:17 +0000 Subject: - Bug fix: when a ``repoze.bfg.resource.PackageOverrides`` class was instantiated, and the package it was overriding already had a ``__loader__`` attribute, it would fail at startup time, even if the ``__loader__`` attribute was another PackageOverrides instance. We now replace any ``__loader__`` that is also a PackageOverrides instance. Symptom: ``ConfigurationExecutionError: : Package already has a __loader__ (probably a module in a zipped egg)``. --- repoze/bfg/tests/test_resource.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'repoze/bfg/tests') diff --git a/repoze/bfg/tests/test_resource.py b/repoze/bfg/tests/test_resource.py index 9f466b002..5bc1be152 100644 --- a/repoze/bfg/tests/test_resource.py +++ b/repoze/bfg/tests/test_resource.py @@ -123,11 +123,18 @@ class TestPackageOverrides(unittest.TestCase): pkg_resources = DummyPkgResources() return klass(package, pkg_resources=pkg_resources) - def test_ctor_package_already_has_loader(self): + def test_ctor_package_already_has_loader_of_different_type(self): package = DummyPackage('package') package.__loader__ = True self.assertRaises(TypeError, self._makeOne, package) + def test_ctor_package_already_has_loader_of_same_type(self): + dummy_pkg_resources = DummyPkgResources() + package = DummyPackage('package') + package.__loader__ = self._makeOne(package) + po = self._makeOne(package) + self.assertEqual(package.__loader__, po) + def test_ctor_sets_loader(self): package = DummyPackage('package') po = self._makeOne(package) -- cgit v1.2.3