You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bloodhound.apache.org by da...@apache.org on 2016/10/02 17:51:01 UTC
svn commit: r1763089 [3/3] - in
/bloodhound/branches/bep_0011_batch_create_tickets: ./
bloodhound_dashboard/ bloodhound_dashboard/bhdashboard/widgets/templates/
bloodhound_multiproduct/ bloodhound_multiproduct/multiproduct/
bloodhound_multiproduct/test...
Modified: bloodhound/branches/bep_0011_batch_create_tickets/installer/tests.py
URL: http://svn.apache.org/viewvc/bloodhound/branches/bep_0011_batch_create_tickets/installer/tests.py?rev=1763089&r1=1763088&r2=1763089&view=diff
==============================================================================
--- bloodhound/branches/bep_0011_batch_create_tickets/installer/tests.py (original)
+++ bloodhound/branches/bep_0011_batch_create_tickets/installer/tests.py Sun Oct 2 17:51:00 2016
@@ -23,7 +23,7 @@ import unittest
import shutil
import os
from tempfile import mkdtemp, NamedTemporaryFile
-from bloodhound_setup import backupfile, BloodhoundSetup
+from bhsetup.bloodhound_setup import backupfile, BloodhoundSetup
from functools import partial
class BackupfileTest(unittest.TestCase):
Propchange: bloodhound/branches/bep_0011_batch_create_tickets/trac/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sun Oct 2 17:51:00 2016
@@ -1,5 +1,6 @@
/bloodhound/branches/bep_0003_multiproduct/trac:1461360-1463488
/bloodhound/branches/bep_0010_ticket_numbering/trac:1506462-1517786
+/bloodhound/trunk/trac:1598681-1763083
/incubator/bloodhound/branches/bep_0003_multiproduct/trac:1420073-1461359
/incubator/bloodhound/vendor/trac/0.13dev_r11046:1340951
/incubator/bloodhound/vendor/trac/current:1300522-1444738
Modified: bloodhound/branches/bep_0011_batch_create_tickets/trac/trac/hooks.py
URL: http://svn.apache.org/viewvc/bloodhound/branches/bep_0011_batch_create_tickets/trac/trac/hooks.py?rev=1763089&r1=1763088&r2=1763089&view=diff
==============================================================================
--- bloodhound/branches/bep_0011_batch_create_tickets/trac/trac/hooks.py (original)
+++ bloodhound/branches/bep_0011_batch_create_tickets/trac/trac/hooks.py Sun Oct 2 17:51:00 2016
@@ -15,12 +15,10 @@
# specific language governing permissions and limitations
# under the License.
-import imp
-import inspect
+import abc
import os
import pkg_resources
-from trac.config import Configuration
from trac.env import open_environment
from trac.util import exception_to_unicode
from trac.util.concurrency import threading
@@ -32,39 +30,38 @@ __all__ = ['environment_factory', 'insta
class EnvironmentFactoryBase(object):
+ __metaclass__ = abc.ABCMeta
+
+ @abc.abstractmethod
def open_environment(self, environ, env_path, global_env, use_cache=False):
- raise NotImplementedError("Must override method 'open_environment'")
+ pass
class RequestFactoryBase(object):
- def create_request(self, env, environ, start_response):
- raise NotImplementedError("Must override method 'create_request'")
+ __metaclass__ = abc.ABCMeta
+ @abc.abstractmethod
+ def create_request(self, env, environ, start_response):
+ pass
-def _get_plugins_dir(env_path):
- return os.path.normcase(os.path.realpath(os.path.join(env_path, 'plugins')))
+def load_class(fqn):
+ try:
+ pkg, resource = fqn.rsplit('.', 1)
+ except ValueError:
+ class_ = None
+ else:
+ try:
+ module = __import__(pkg, fromlist=[resource])
+ except ImportError:
+ class_ = None
+ else:
+ try:
+ class_ = getattr(module, resource)
+ except AttributeError:
+ class_ = None
+ return class_
-def _get_config(env_path):
- return Configuration(os.path.join(env_path, 'conf', 'trac.ini'),
- {'envname': os.path.basename(env_path)})
-
-
-def _hook_load(env_path, hook_path):
- hook_name = os.path.basename(hook_path[:-3])
- plugins_dir = _get_plugins_dir(env_path)
- load_path = os.path.join(plugins_dir, hook_path)
- module = imp.load_source(hook_name, load_path)
- return module
-
-
-def _get_hook_class(env_path, hook_path, class_type):
- module = _hook_load(env_path, hook_path)
- for (name, cls) in inspect.getmembers(module, inspect.isclass):
- if issubclass(cls, class_type) and \
- not cls is class_type:
- return cls
- return None
_global_hooks_installed = False
_global_hooks_lock = threading.Lock()
@@ -90,15 +87,11 @@ def install_global_hooks():
def environment_factory(env):
- hook_path = env.config.get('trac', 'environment_factory', default=None)
- return _get_hook_class(env.path, hook_path, EnvironmentFactoryBase) \
- if hook_path else None
+ return load_class(env.config.get('trac', 'environment_factory'))
def request_factory(env):
- hook_path = env.config.get('trac', 'request_factory', default=None)
- return _get_hook_class(env.path, hook_path, RequestFactoryBase) \
- if hook_path else None
+ return load_class(env.config.get('trac', 'request_factory'))
class BootstrapHandlerBase(object):
@@ -265,19 +258,18 @@ class DefaultBootstrapHandler(BootstrapH
'environment(s).')
run_once = environ['wsgi.run_once']
- env = None
- self.global_env = global_env = None
try:
- self.global_env = global_env = \
- open_environment(env_path, use_cache=not run_once)
+ global_env = open_environment(env_path, use_cache=not run_once)
factory = environment_factory(global_env)
- factory_env = \
- factory().open_environment(environ, env_path, global_env,
- use_cache=not run_once) \
- if factory else None
- env = factory_env if factory_env else global_env
+ factory_env = factory().open_environment(environ, env_path,
+ global_env,
+ use_cache=not run_once) \
+ if factory else None
except Exception:
raise
+ else:
+ self.global_env = global_env
+ env = factory_env if factory_env else global_env
return env
def create_request(self, env, environ, start_response):