On 01/11/2013 10:37 AM, Steven D'Aprano wrote: > On Fri, 11 Jan 2013 10:06:30 -0500, Dave Angel wrote: > >> <snip> > >> Not sure what you mean by beforehand. Don't you run all your unit tests >> before putting each revision of your code into production? So run those >> tests twice, once on 2.7, and once on 2.4. A unit test that's testing >> code with a ternary operator will fail, without any need for a separate >> test. > You don't even need tests for the code that includes the ternary > operator. The module simply won't compile in Python 2.4, you get a > SyntaxError when you try to import it or run it. > > You don't need PyLint to check for *illegal syntax*. Python already does > that. >
You're right of course. But I can weasel out of it by saying that Python will only check it if the particular module is imported. I've seen equivalent bugs in real projects, where a release went out with one of its dynamic libraries not even present. Another thing that can stop Python from checking is if some naive programmer uses a bare except in production code. Both of these would show up in the simplest of unit testing code. -- DaveA -- http://mail.python.org/mailman/listinfo/python-list