[py-dev] Storing terminal width in py.test config object
Ronny Pfannschmidt
Ronny.Pfannschmidt at gmx.de
Mon Jun 25 16:09:23 CEST 2012
given the nature of the problem,
i think its wrong to go for terminal width there,
instead we should serialize the exponations,
and render them on the master.
that way we could also have other ways of display more nicely.
On 06/25/2012 03:54 PM, holger krekel wrote:
> On Mon, Jun 25, 2012 at 11:06 +0100, Floris Bruynooghe wrote:
>> On 21 June 2012 07:16, holger krekel<holger at merlinux.eu> wrote:
>>> On Thu, Jun 21, 2012 at 00:16 +0100, Floris Bruynooghe wrote:
>>>> An annoyance of the pytest_assertrepr_compare hook is that it can not
>>>> normally access the terminal width since usually it is called while
>>>> stdout and stderr are being captured which breaks
>>>> py.io.get_terminal_width(). Since I think it is fairly rare to get a
>>>> changing terminal size during a py.test run I would propose py.test
>>>> stores the terminal width on it's config object which would solve that
>>>> annoyance.
>>>>
>>>> Would this be a reasonable thing to do?
>>>
>>> I think so. However, I'd like to have this working with xdist as well
>>> and slaves generally do not have access to the master terminal.
>>> I guess xdist could take care to explicitely transfer terminal_width
>>> once it is on the config object. You can leave the latter to me if you prefer.
>>
>> Ok, as I'm in no hurry on this I've created an issue for this so I
>> don't completely loose track. I don't mind attempting to look at
>> xdist when I get round to it, I probably need to get to know it for my
>> pytest-timeout plugin anyway.
>
> There is a semi-official way to pass data between master and slaves,
> see this test:
>
> https://bitbucket.org/hpk42/pytest-xdist/src/6d23d5c1326f/testing/acceptance_test.py#cl-159
>
> With this, you could define the appropriate code in the xdist-plugin
> (or in any other plugin) to make config.terminal_width available
> on slaves. I guess that pytest itself should grow a config.terminal_width
> and xdist would just take care to transfer it.
>
> Actually, it would be interesting to make a virtual py.io.TerminalWriter()
> available which uses the settings from the master terminalwriter (as
> used in the terminal plugin). It could be used to produce colored
> output on the slaves to be shown on the master terminal. I am hesitant
> to point you to py.io.TerminalWritter, however, because its code is in
> need for a cleanup and a unicode-review ... but maybe this is unrelated.
>
> best,
> holger
> _______________________________________________
> py-dev mailing list
> py-dev at codespeak.net
> http://codespeak.net/mailman/listinfo/py-dev
More information about the Pytest-dev
mailing list