From d65e9b25940d43759f4bbaa29bcee502fd3f589b Mon Sep 17 00:00:00 2001 From: Renato Alves Date: Tue, 15 Jul 2014 15:38:17 +0100 Subject: [PATCH 1/3] Unittest - Test that the task binary used matches the current commit --- test/version.t | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/test/version.t b/test/version.t index 5aa486f67..9b7e17abc 100755 --- a/test/version.t +++ b/test/version.t @@ -34,6 +34,7 @@ from datetime import datetime sys.path.append(os.path.dirname(os.path.abspath(__file__))) from basetest import Task, TestCase +from basetest.utils import run_cmd_wait class TestVersion(TestCase): @@ -49,6 +50,18 @@ class TestVersion(TestCase): expected = "Copyright \(C\) \d{4} - %d" % (datetime.now().year,) self.assertRegexpMatches(out.decode("utf8"), expected) + def test_task_git_version(self): + """Task binary matches the current git commit""" + + git_cmd = ("git", "rev-parse", "--short", "--verify", "HEAD") + _, hash, _ = run_cmd_wait(git_cmd) + + expected = "Commit: {0}".format(hash) + + args = ("diag",) + + code, out, err = self.t(args) + self.assertIn(expected, out) if __name__ == "__main__": from simpletap import TAPTestRunner From 7cc477506055f05954c6fb2d72ec7fa5780cf6a0 Mon Sep 17 00:00:00 2001 From: Renato Alves Date: Tue, 15 Jul 2014 15:56:26 +0100 Subject: [PATCH 2/3] Unittest - Properly comment output lines in TAP format --- test/simpletap/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/simpletap/__init__.py b/test/simpletap/__init__.py index df52f5a20..bc540f0b6 100644 --- a/test/simpletap/__init__.py +++ b/test/simpletap/__init__.py @@ -72,7 +72,7 @@ class TAPTestResult(unittest.result.TestResult): padding = " " * (len(status) + 3) for line in msg.splitlines(): # Force displaying new-line characters as literal new lines - line = line.replace("\\n", "\n") + line = line.replace("\\n", "\n# ") self.stream.writeln("#{0}{1}".format(padding, line)) else: self.stream.writeln("ok {0} - {1}".format(self.testsRun, desc)) From f585bdcdf599973fd2e1d2a86b7b05fbc1800d8c Mon Sep 17 00:00:00 2001 From: Renato Alves Date: Tue, 15 Jul 2014 15:57:32 +0100 Subject: [PATCH 3/3] Unittest - Test for task diag always displaying bold --- test/diag_color.t | 75 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100755 test/diag_color.t diff --git a/test/diag_color.t b/test/diag_color.t new file mode 100755 index 000000000..bb731efa3 --- /dev/null +++ b/test/diag_color.t @@ -0,0 +1,75 @@ +#! /usr/bin/env python2.7 +# -*- coding: utf-8 -*- +############################################################################### +# +# Copyright 2006 - 2014, Paul Beckingham, Federico Hernandez. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# http://www.opensource.org/licenses/mit-license.php +# +############################################################################### + +import sys +import os +import unittest +# Ensure python finds the local simpletap module +sys.path.append(os.path.dirname(os.path.abspath(__file__))) + +from basetest import Task, TestCase + + +class TestDiagColor(TestCase): + def setUp(self): + self.t = Task() + + def test_diag_color_builtin(self): + """Task diag detects terminal as color compatible with test-builtin""" + code, out, err = self.t.diag() + + expected = "\x1b[1m" + self.assertNotIn(expected, out) + + def test_diag_color(self): + """Task diag detects terminal as color compatible""" + code, out, err = self.t(("diag",)) + + expected = "\x1b[1m" + self.assertNotIn(expected, out) + + def test_diag_nocolor(self): + """Task diag respects rc:color=off and disables color""" + code, out, err = self.t(("rc.color:off", "diag")) + + expected = "\x1b[1m" + self.assertNotIn(expected, out) + + def test_diag_force_color(self): + """Task diag respects rc:_forcecolor=on and forces color""" + code, out, err = self.t(("rc._forcecolor:on", "diag")) + + expected = "\x1b[1m" + self.assertIn(expected, out) + + +if __name__ == "__main__": + from simpletap import TAPTestRunner + unittest.main(testRunner=TAPTestRunner()) + +# vim: ai sts=4 et sw=4