getstatusoutput()'s behavior changed in 3.3.4 and 3.4
While porting some code from 2.7 to 3.4 I discovered that command.getstatusoutput() (renamed to subprocess.getstatusoutput() in 3.x) had changed. Surprise! The code was working under an earlier version of 3.3 but broke when I ran it on 3.4. Nowhere was this documented that I could find. Tracking down what changed, I discovered it was unintentional due to the meaning of the returned status int never being tested. http://bugs.python.org/issue23508 filed... Given it has shipped in several stable 3.x releases and as part of some major Linux distros, reverting the behavior change seems wrong. The new behavior is nicer and more consistent with the rest of the subprocess module. I suggest just documenting it and moving on. It seems too late to fix this mistake without causing additional headaches. Anyone disagree? -gps
Documentation (and adding the missing test) sounds right to me. We'd at least want a "versionchanged" note on the function itself, and an entry in the porting section of the (3.3? 3.4?) what's new guide. Is there anywhere else we might want to mention it? Regards, Nick.
Hi, It looks like new tests are required to check that the behaviour will not change again. Victor Le mardi 24 février 2015, Gregory P. Smith <greg@krypto.org> a écrit :
While porting some code from 2.7 to 3.4 I discovered that command.getstatusoutput() (renamed to subprocess.getstatusoutput() in 3.x) had changed. Surprise!
The code was working under an earlier version of 3.3 but broke when I ran it on 3.4. Nowhere was this documented that I could find. Tracking down what changed, I discovered it was unintentional due to the meaning of the returned status int never being tested. http://bugs.python.org/issue23508 filed...
Given it has shipped in several stable 3.x releases and as part of some major Linux distros, reverting the behavior change seems wrong. The new behavior is nicer and more consistent with the rest of the subprocess module. I suggest just documenting it and moving on. It seems too late to fix this mistake without causing additional headaches. Anyone disagree?
-gps
participants (3)
-
Gregory P. Smith
-
Nick Coghlan
-
Victor Stinner