[pytest-dev] proposal - type-keyed storage for extension objects/metadata in config/items

Bruno Oliveira nicoddemus at gmail.com
Fri Oct 27 13:55:05 EDT 2017

Hi Ronny,

Can you provide a use case for this storage? Perhaps we can use existing
cases and see how they would like with the new API.

For example, pytest-html currently attaches an "extra" dictionary to items.
How could pytest-html make use of the new API?

Another example is the core junitxml plugin, which adds new items that
should go into the reporty by using a fixture. How it would look like to
customize the report using the new API?


On Fri, Oct 27, 2017 at 2:58 PM RonnyPfannschmidt <
opensource at ronnypfannschmidt.de> wrote:

> hi everyone
> since a while now i feel the lack of a place where i can store objects
> that belong to some pytest plugin but shouldn't be plugins themselves
> i came up with an idea for a basic api and would like to get feedback
> from it
> at the basic level there would be a `config.objects` or `item.objects`
> as "immutable" mapping with 4 extra methods to mutate, i#ll just show
> the proposed effects
> get_or_create(tp, *k, **kw):
>   if tp not in self:
>     self[tp] = tp(*k, **kw)
>   return self[tp]
> create(self, tp, *k, **kw):
>   if tp in self:
>     raise KeyError(tp)
>  self[tp] = tp(*k, **kw)
>  return self.tp
>  add(obj):
>   tp = type(obj)
>   if tp in self:
>     raise KeyError(tp)
>   self[tp] = obj
> remove(self, obj):
>   del self[type(obj)]
> discard(self, obj):
>   self.pop(type(obj), None)
> by adding such a storage it will be a lot more easy to just put things
> on items and reports
> -- Ronny
> _______________________________________________
> pytest-dev mailing list
> pytest-dev at python.org
> https://mail.python.org/mailman/listinfo/pytest-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/pytest-dev/attachments/20171027/f14ad80e/attachment.html>

More information about the pytest-dev mailing list