[Grok-dev] Get default directive

Paul Wilson paulalexwilson at gmail.com
Tue Jan 5 07:19:01 EST 2010


2010/1/5 Paul Wilson <paulalexwilson at gmail.com>:
> Hi there,
>
> As part of my Manuel fakemodule integration into martian, I've been
> looking at the martian 'get_default' stuff that's been worked on
> recently. As a reminder, the code searches a component's MRO to find
> module directives that might apply to its parents. One thing that I've
> noticed is that many classes inherit from 'object' at the top of their
> inheritance tree, which causes martian to scan __builtin__ for
> directives. I think its quite safe to check if the module is
> __builtin__ and skip it -- this would save a bit of time and, more
> importantly, allow all tests to pass on my martian branch ;-)

Also, context.txt contains the following test:

----------------- %< ------------------
There are too many possible contexts::

  >>> class ambiguouscontext(FakeModule):
  ...   class A(Context):
  ...     pass
  ...   class B(Context):
  ...     pass
  ...   class C(object):
  ...     pass
  >>> from martiantest.fake import ambiguouscontext
  >>> context.bind(get_default=get_default_context).get(ambiguouscontext.B)
  Traceback (most recent call last):
    ...
  GrokError: Multiple possible contexts for <class
'martiantest.fake.ambiguouscontext.B'>, please use the 'context'
directive.
----------------- %< ------------------

Shouldn't this be...

context.bind(get_default=get_default_context).get(ambiguouscontext.C)

?? I was assuming that A and B were the ambiguous contexts, and C is
the subject from which we should be deriving the context. Strangely,
this test passes on trunk, but fails with my fake module version....

Thanks,
Paul


More information about the Grok-dev mailing list