commit:     aa7558a93d42d73ad916eecd2c3e8c6c294fe735
Author:     Sergei Trofimovich <siarheit <AT> google <DOT> com>
AuthorDate: Sat Mar 19 21:29:32 2016 +0000
Commit:     Alexander Berntsen <bernalex <AT> gentoo <DOT> org>
CommitDate: Tue Mar 29 10:10:36 2016 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=aa7558a9

runtests: fix output for skipped pythons

I have Pythons 2.7 and 3.4 installed.

Before the patch I had the following output:

    $ ./runtests pym/portage/tests/resolver/test_blocker.py
    Testing with Python 2.7...
    Testing with Python 3.4...

    Summary:
    | Version    | Status
    |--------------------
    | 2.7        | PASS
    | 3.3        | PASS

After the patch:

    $ ./runtests pym/portage/tests/resolver/test_blocker.py

    Testing with Python 2.7...
    Skip Python 3.3...
    Testing with Python 3.4...
    Skip Python pypy...
    Skip Python 3.5...

    Summary:
    | Version    | Status
    |--------------------
    | 2.7        | PASS
    | 3.4        | PASS

Signed-off-by: Sergei Trofimovich <siarheit <AT> google.com>
Signed-off-by: Alexander Berntsen <bernalex <AT> gentoo.org>
Reviewed-by:   Alexander Berntsen <bernalex <AT> gentoo.org>

 runtests | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/runtests b/runtests
index d492bc8..9135768 100755
--- a/runtests
+++ b/runtests
@@ -42,7 +42,7 @@ class Colors(object):
        _COLORS_YES = ('y', 'yes', 'true')
        _COLORS_NO = ('n', 'no', 'false')
 
-       GOOD = BAD = NORMAL = ''
+       WARN = GOOD = BAD = NORMAL = ''
 
        def __init__(self, colorize=None):
                if colorize is None:
@@ -63,6 +63,7 @@ class Colors(object):
                                raise ValueError('--colors is invalid: %s' % 
colorize)
 
                if colorize:
+                       self.WARN = '\033[1;33m'
                        self.GOOD = '\033[1;32m'
                        self.BAD = '\033[1;31m'
                        self.NORMAL = '\033[0m'
@@ -135,11 +136,14 @@ def main(argv):
                        if os.access(prog, os.X_OK):
                                print('%sTesting with Python %s...%s' %
                                        (colors.GOOD, ver, colors.NORMAL))
-                               statuses.append(subprocess.call(cmd))
+                               statuses.append((ver, subprocess.call(cmd)))
                        elif not ignore_missing:
                                print('%sCould not find requested Python %s%s' %
                                        (colors.BAD, ver, colors.NORMAL))
-                               statuses.append(1)
+                               statuses.append((ver, 1))
+                       else:
+                               print('%sSkip Python %s...%s' %
+                                       (colors.WARN, ver, colors.NORMAL))
                        print()
        finally:
                if tempdir is not None:
@@ -154,7 +158,9 @@ def main(argv):
        width = 10
        header = '| %-*s | %s' % (width, 'Version', 'Status')
        print('%s\n|%s' % (header, '-' * (len(header) - 1)))
-       for ver, status in zip(pyversions, statuses):
+       exit_status = 0
+       for ver, status in statuses:
+               exit_status += status
                if status:
                        color = colors.BAD
                        msg = 'FAIL'
@@ -163,7 +169,7 @@ def main(argv):
                        msg = 'PASS'
                print('| %s%-*s%s | %s%s%s' %
                        (color, width, ver, colors.NORMAL, color, msg, 
colors.NORMAL))
-       exit(sum(statuses))
+       exit(exit_status)
 
 
 if __name__ == '__main__':

Reply via email to