Author: astaric
Date: Mon May 27 16:33:02 2013
New Revision: 1486658

URL: http://svn.apache.org/r1486658
Log:
Unregister class with invalid __module__ after test is done.

Components are saved to ComponentMeta._components class variable (shared
between all tests run in the same process). When get_plugin_info is called,
it traverses this list of registered classes, and fails if a class with
invalid __module__ is encountered. 

Modified:
    bloodhound/trunk/bloodhound_multiproduct/tests/env.py

Modified: bloodhound/trunk/bloodhound_multiproduct/tests/env.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_multiproduct/tests/env.py?rev=1486658&r1=1486657&r2=1486658&view=diff
==============================================================================
--- bloodhound/trunk/bloodhound_multiproduct/tests/env.py (original)
+++ bloodhound/trunk/bloodhound_multiproduct/tests/env.py Mon May 27 16:33:02 
2013
@@ -35,7 +35,7 @@ else:
     from unittest.case import _AssertRaisesContext
 
 from trac.config import Option
-from trac.core import Component
+from trac.core import Component, ComponentMeta
 from trac.env import Environment
 from trac.test import EnvironmentStub, MockPerm
 from trac.tests.env import EnvironmentTestCase
@@ -472,6 +472,10 @@ class ProductEnvApiTestCase(Multiproduct
          # Test the rules against Trac component class
         _test_component_enabled(TicketModule)
 
+        # ComponentMeta._components is shared between multiple tests.
+        # Unregister class C as its fake module might break something else.
+        ComponentMeta._components.remove(C)
+
     def test_path(self):
         """Testing env.path"""
         self.assertEqual(self.product_env.path, 


Reply via email to