clybob / code_quality_tools

19 stars 3 forks source link

Use sh instead of manual subprocess #5

Open clybob opened 11 years ago

clybob commented 11 years ago

Use library sh instead of call manual subprocess. Documentation sh library: http://amoffat.github.com/sh/

clybob commented 11 years ago

The output generated by sh is bad, because Pep8 and Pyflakes don't returns exit code. It's necessary find to solve this problem before apply sh. The output generated:

-> sh.pep8('.', _out=process_output) ./code_quality_tools/tests/fixtures/pep8.py:2:1: E302 expected 2 blank lines, found 1

./code_quality_tools/tests/fixtures/pep8.py:5:1: E302 expected 2 blank lines, found 1

./code_quality_tools/tests/fixtures/pep8.py:6:17: W292 no newline at end of file

Traceback (most recent call last): File "", line 1, in File "/Users/romulo.tavares/.virtualenvs/dashboard/lib/python2.7/site-packages/sh.py", line 354, in repr try: return str(self) File "/Users/romulo.tavares/.virtualenvs/dashboard/lib/python2.7/site-packages/sh.py", line 333, in str else: return unicode(self).encode(self.call_args["encoding"]) File "/Users/romulo.tavares/.virtualenvs/dashboard/lib/python2.7/site-packages/sh.py", line 337, in unicode if self.stdout: return self.stdout.decode(self.call_args["encoding"]) File "/Users/romulo.tavares/.virtualenvs/dashboard/lib/python2.7/site-packages/sh.py", line 280, in stdout self.wait() File "/Users/romulo.tavares/.virtualenvs/dashboard/lib/python2.7/site-packages/sh.py", line 266, in wait self._handle_exit_code(self.process.wait()) File "/Users/romulo.tavares/.virtualenvs/dashboard/lib/python2.7/site-packages/sh.py", line 275, in _handle_exit_code self.process.stderr sh.ErrorReturnCode_1:

RAN: '/Users/romulo.tavares/.virtualenvs/dashboard/bin/pep8 .'

STDOUT: ./code_quality_tools/tests/fixtures/pep8.py:2:1: E302 expected 2 blank lines, found 1 ./code_quality_tools/tests/fixtures/pep8.py:5:1: E302 expected 2 blank lines, found 1 ./code_quality_tools/tests/fixtures/pep8.py:6:17: W292 no newline at end of file

STDERR: