#676: Relax constraints on ProductEnvironment callable contract ---------------------------+----------------------------------- Reporter: olemis | Owner: olemis Type: enhancement | Status: accepted Priority: major | Milestone: Release 8 Component: multiproduct | Version: 0.7.0 Resolution: | Keywords: product env, bep-0003 ---------------------------+-----------------------------------
Old description: > When invoking `multiproduct.ProductEnvironment` the initial versions of > bep:0003 limited the type of the first argument to > `trac.env.Environment`. Eventually this led to a considerable number of > [http://goo.gl/dGZvcE failures] . > > In spite of uniformity and simplicity the following enhancements are > needed : > > - The first argument in a call to `multiproduct.ProductEnvironment` > class > may be an instance of either `multiproduct.ProductEnvironment` or > `trac.env.Environment` > - The meta-class `__call__` method has to be wrapped with logic > similar to `lookup_env` class method > * The initializer must still restrict argument type for cache > consistency > - Both `ProductEnvironment.lookup_env` and `lookup_product_env` > should be phased out and replaced with direct calls to > `ProductEnvironment` class. > - Test cases New description: When invoking `multiproduct.ProductEnvironment` the initial versions of bep:0003 limited the type of the first argument to `trac.env.Environment`. Eventually this led to a considerable number of [http://goo.gl/dGZvcE failures] . In spite of uniformity and simplicity the following enhancements are needed : - The first argument in a call to `multiproduct.ProductEnvironment` class may be an instance of either `multiproduct.ProductEnvironment` or `trac.env.Environment` - The meta-class `__call__` method has to be wrapped with logic similar to `lookup_env` class method * The initializer must still restrict argument type for cache consistency - ~~Both `ProductEnvironment.lookup_env` and `lookup_product_env` should be phased out and replaced with direct calls to `ProductEnvironment` class.~~ - Test cases -- Comment (by olemis): Attached patches will solve current issues . Details {{{#!sh $ hg qapplied t676/t676_r1526822_product_env_typecheck.diff t676/t676_r1526822_product_env_typecheck.tests.diff $ hg log -r qparent changeset: 449:ec411de59e61 tag: qparent tag: svn-1526822 user: astaric@13f79535-47bb-0310-9956-ffa450edef68 date: Fri Sep 27 07:59:57 2013 +0000 summary: Display relation type in all rows. }}} PS: `lookup_env` should not be deprecated because it also performs environment lookup by name , so it's ok to keep it as an integral part of the API . -- Ticket URL: <https://issues.apache.org/bloodhound/ticket/676#comment:4> Apache Bloodhound <https://issues.apache.org/bloodhound/> The Apache Bloodhound issue tracker