#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