Re: [Zope-dev] whitespace filtering corner case in doctest

2009-09-16 Thread Marius Gedminas
On Tue, Aug 18, 2009 at 08:53:49AM +, Reinout van Rees wrote:
 On 2009-08-17, Marius Gedminas mar...@gedmin.as wrote:
 
  On Mon, Aug 17, 2009 at 02:46:46PM +, Reinout van Rees wrote:
  In some cases, importing readline can result in the escape code
  ^[[?1034h= to be send (8bit on).
 
  According to the gentoo bug report (liked from your blog post), this
  happens if your termcap/terminfo define smm/rmm codes (meta on/meta
  off).
 
 ... which I didn't do, at least not consiously.  Just a pretty normal
 OSX installation.
 
  BTW, regarding your workaround: I'd suggest using TERM=3Ddummy instead of
  TERM=3Dlinux, as a safer choice.  Not that it should matter much in
  practice.
 
 That'd be better, yes.  I never do anything tweaking with TERM anyway,
 so I don't know the options/effects.
 
 jladage suggested to do the workaround in buildout, btw: add the
 following to the part that generates the bin/test script:
 
  environment-vars =
  TERM linux
 
  This escape code isn't visible, which leads to hard to find test
  errors, see
  http://reinout.vanrees.org/weblog/2009/07/16/invisible-test-diff.html
  Granted, it are basically corner cases.  On the other hand, it does
  seem to cause problems now and then, according=  to my googling.
  Would it be ok to add it to the whitespace normalization of
  doctests?  Opinions?
 
  Well, it's not whitespace, really...  My gut feeling is that this fixup
  doesn't belong in the core doctest code.
 
 Ok.
 
  If this happened in my project, I'd either
 
1) make sure I import readline at module level, before any tests are
   run
 
 This doesn't work, surprisingly.  It *is* a corner case.
 It are tests where z3c.testsetup tests that it runs tests correctly.
 That's a lot of tests in one sentence, which means that the test
 output comes from separate python processes that run tests.  So if I
 import readline in z3c.testsetup's tests, I still get the output from
 the test runners that are being tested.
 
 Sigh, difficult to explain, such a recusive testing thingy :-)

Sounds perfectly clear to me.  I once tried to make sure zope.testing's tests
covered the test coverage code, and measuring the coverage of the tests
testing coverage measurement turned out to be impossible.

  or
 
2) add a renormalizer that removes the escape sequence for the test
   that triggers this
 
 And you'd do this per-project and not in core zope.testing, right?
 Fine.  Uli already send me some example code, so I'll do that (and put
 the code snippet on my weblog so that google can find it).
 
  Perhaps it would be nice if doctest's differ escaped ASCII control
  characters?  (You could do that too with a renormalizer.)
 
 Can we safely assume that a specific set of control characters needs
 to be escaped?  It sounds a bit dangerous to me.

ASCII and defines which characters are printable and which ones are
control characters.  Maybe \x9b poses a bit of a problem, since it's an
escape character for some terminals, but a real character on some legacy
8bit charsets.  (It's not allowed in UTF-8 sequences.)

Or perhaps you mean it may make it difficult to distinguish a test
printing \x1b from a test printing ^ followed by [ (assuming that's the
visualisation chosen for control characters).  That is an issue.

BTW I've no clue why I'm replying to a month-old post.  I missed it
earlier somehow.

Marius Gedminas
-- 
http://pov.lt/ -- Zope 3 consulting and development


signature.asc
Description: Digital signature
___
Zope-Dev maillist  -  Zope-Dev@zope.org
https://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 https://mail.zope.org/mailman/listinfo/zope-announce
 https://mail.zope.org/mailman/listinfo/zope )


Re: [Zope-dev] whitespace filtering corner case in doctest

2009-08-18 Thread Reinout van Rees
On 2009-08-17, Marius Gedminas mar...@gedmin.as wrote:

 On Mon, Aug 17, 2009 at 02:46:46PM +, Reinout van Rees wrote:
 In some cases, importing readline can result in the escape code
 ^[[?1034h= to be send (8bit on).

 According to the gentoo bug report (liked from your blog post), this
 happens if your termcap/terminfo define smm/rmm codes (meta on/meta
 off).

... which I didn't do, at least not consiously.  Just a pretty normal
OSX installation.

 BTW, regarding your workaround: I'd suggest using TERM=3Ddummy instead of
 TERM=3Dlinux, as a safer choice.  Not that it should matter much in
 practice.

That'd be better, yes.  I never do anything tweaking with TERM anyway,
so I don't know the options/effects.

jladage suggested to do the workaround in buildout, btw: add the
following to the part that generates the bin/test script:

 environment-vars =
 TERM linux

 This escape code isn't visible, which leads to hard to find test
 errors, see
 http://reinout.vanrees.org/weblog/2009/07/16/invisible-test-diff.html
 Granted, it are basically corner cases.  On the other hand, it does
 seem to cause problems now and then, according=  to my googling.
 Would it be ok to add it to the whitespace normalization of
 doctests?  Opinions?

 Well, it's not whitespace, really...  My gut feeling is that this fixup
 doesn't belong in the core doctest code.

Ok.

 If this happened in my project, I'd either

   1) make sure I import readline at module level, before any tests are
  run

This doesn't work, surprisingly.  It *is* a corner case.
It are tests where z3c.testsetup tests that it runs tests correctly.
That's a lot of tests in one sentence, which means that the test
output comes from separate python processes that run tests.  So if I
import readline in z3c.testsetup's tests, I still get the output from
the test runners that are being tested.

Sigh, difficult to explain, such a recusive testing thingy :-)

 or

   2) add a renormalizer that removes the escape sequence for the test
  that triggers this

And you'd do this per-project and not in core zope.testing, right?
Fine.  Uli already send me some example code, so I'll do that (and put
the code snippet on my weblog so that google can find it).

 Perhaps it would be nice if doctest's differ escaped ASCII control
 characters?  (You could do that too with a renormalizer.)

Can we safely assume that a specific set of control characters needs
to be escaped?  It sounds a bit dangerous to me.



Thanks!

Reinout


-- 
Reinout van Rees - rein...@vanrees.org - http://reinout.vanrees.org
Software developer at http://www.thehealthagency.com
Military engineers build missiles. Civil engineers build targets

___
Zope-Dev maillist  -  Zope-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope )


[Zope-dev] whitespace filtering corner case in doctest

2009-08-17 Thread Reinout van Rees
In some cases, importing readline can result in the escape code ^[[?1034h to
be send (8bit on).  This escape code isn't visible, which leads to hard to
find test errors, see
http://reinout.vanrees.org/weblog/2009/07/16/invisible-test-diff.html

Granted, it are basically corner cases.

On the other hand, it does seem to cause problems now and then, according to
my googling.  Would it be ok to add it to the whitespace normalization of
doctests?  Opinions?


Reinout



-- 
Reinout van Rees - rein...@vanrees.org - http://reinout.vanrees.org
Software developer at http://www.thehealthagency.com
Military engineers build missiles. Civil engineers build targets

___
Zope-Dev maillist  -  Zope-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope )


Re: [Zope-dev] whitespace filtering corner case in doctest

2009-08-17 Thread Marius Gedminas
On Mon, Aug 17, 2009 at 02:46:46PM +, Reinout van Rees wrote:
 In some cases, importing readline can result in the escape code ^[[?1034h to
 be send (8bit on).

According to the gentoo bug report (liked from your blog post), this
happens if your termcap/terminfo define smm/rmm codes (meta on/meta
off).

BTW, regarding your workaround: I'd suggest using TERM=dummy instead of
TERM=linux, as a safer choice.  Not that it should matter much in
practice.

 This escape code isn't visible, which leads to hard to
 find test errors, see
 http://reinout.vanrees.org/weblog/2009/07/16/invisible-test-diff.html
 
 Granted, it are basically corner cases.
 
 On the other hand, it does seem to cause problems now and then, according to
 my googling.  Would it be ok to add it to the whitespace normalization of
 doctests?  Opinions?

Well, it's not whitespace, really...  My gut feeling is that this fixup
doesn't belong in the core doctest code.

If this happened in my project, I'd either

  1) make sure I import readline at module level, before any tests are
 run

or

  2) add a renormalizer that removes the escape sequence for the test
 that triggers this


Perhaps it would be nice if doctest's differ escaped ASCII control
characters?  (You could do that too with a renormalizer.)

Marius Gedminas
-- 
http://pov.lt/ -- Zope 3 consulting and development


signature.asc
Description: Digital signature
___
Zope-Dev maillist  -  Zope-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope )