From 8ed81e380330f8ab72a8f8ea6bf7a657d744b8f0 Mon Sep 17 00:00:00 2001 From: Douglas Gibbons Date: Wed, 17 May 2017 10:18:55 -0700 Subject: [PATCH] Fixes to test script for flake8 --- .travis.yml | 4 +- test/wait-for-it.py | 93 +++++++++++++++++++++------------------------ 2 files changed, 47 insertions(+), 50 deletions(-) diff --git a/.travis.yml b/.travis.yml index dfd38c8..30a8138 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,4 +2,6 @@ language: python python: - "2.7" -script: python test/wait-for-it.py +script: + - python test/wait-for-it.py + diff --git a/test/wait-for-it.py b/test/wait-for-it.py index 7d7b0f8..e06fb8c 100644 --- a/test/wait-for-it.py +++ b/test/wait-for-it.py @@ -1,5 +1,4 @@ import unittest -import subprocess import shlex from subprocess import Popen, PIPE import os @@ -11,59 +10,58 @@ MISSING_ARGS_TEXT = "Error: you need to provide a host and port to test." HELP_TEXT = "Usage:" # Start of help text DIVIDE_LINE = '-'*71 # Output line of dashes -""" - TestWaitForIt tests the wait-for-it.sh shell script. - - The wait-for-it.sh script is assumed to be in the parent directory to the - test script. -""" + class TestWaitForIt(unittest.TestCase): + """ + TestWaitForIt tests the wait-for-it.sh shell script. + The wait-for-it.sh script is assumed to be in the parent directory to + the test script. + """ - - def execute(self,cmd): + def execute(self, cmd): """Executes a command and returns exit code, STDOUT, STDERR""" args = shlex.split(cmd) proc = Popen(args, stdout=PIPE, stderr=PIPE) out, err = proc.communicate() exitcode = proc.returncode return exitcode, out, err - - def open_local_port(self,host="localhost", port=8929, timeout=5): + + def open_local_port(self, host="localhost", port=8929, timeout=5): s = socket.socket() - s.bind((host,port)) + s.bind((host, port)) s.listen(timeout) return s - - def check_args(self,args,stdout_regex,stderr_regex,exitcode): + + def check_args(self, args, stdout_regex, stderr_regex, exitcode): command = self.wait_script + " " + args actual_exitcode, out, err = self.execute(command) - + # Check stderr - msg = ("Failed check that STDERR:\n"+ - DIVIDE_LINE + "\n" + err + "\n" + DIVIDE_LINE + - "\nmatches:\n" + - DIVIDE_LINE + "\n" + stderr_regex + "\n" + DIVIDE_LINE) - self.assertIsNotNone(re.match(stderr_regex,err,re.DOTALL),msg) - - # Check STDOUT - msg = ("Failed check that STDOUT:\n"+ + msg = ("Failed check that STDERR:\n" + + DIVIDE_LINE + "\n" + err + "\n" + DIVIDE_LINE + + "\nmatches:\n" + + DIVIDE_LINE + "\n" + stderr_regex + "\n" + DIVIDE_LINE) + self.assertIsNotNone(re.match(stderr_regex, err, re.DOTALL), msg) + + # Check STDOUT + msg = ("Failed check that STDOUT:\n" + DIVIDE_LINE + "\n" + out + "\n" + DIVIDE_LINE + "\nmatches:\n" + DIVIDE_LINE + "\n" + stdout_regex + "\n" + DIVIDE_LINE) - self.assertIsNotNone(re.match(stdout_regex,out,re.DOTALL),msg) + self.assertIsNotNone(re.match(stdout_regex, out, re.DOTALL), msg) # Check exit code - self.assertEqual(actual_exitcode,exitcode) - + self.assertEqual(actual_exitcode, exitcode) + def setUp(self): script_path = os.path.dirname(sys.argv[0]) parent_path = os.path.abspath(os.path.join(script_path, os.pardir)) - self.wait_script = os.path.join(parent_path,"wait-for-it.sh") - + self.wait_script = os.path.join(parent_path, "wait-for-it.sh") + def test_no_args(self): """ - Check that no aruments returns the missing args text and the correct - return code + Check that no aruments returns the missing args text and the + correct return code """ self.check_args( "", @@ -73,15 +71,15 @@ class TestWaitForIt(unittest.TestCase): ) # Return code should be 1 when called with no args exitcode, out, err = self.execute(self.wait_script) - self.assertEqual(exitcode,1) - + self.assertEqual(exitcode, 1) + def test_help(self): - """ Check that help text is printed with --help argument """ - self.check_args( - "--help", - "", - HELP_TEXT, - 1 + """ Check that help text is printed with --help argument """ + self.check_args( + "--help", + "", + HELP_TEXT, + 1 ) def test_no_port(self): @@ -112,7 +110,7 @@ class TestWaitForIt(unittest.TestCase): 0 ) soc.close() - + def test_combined_host_port(self): """ Tests that wait-for-it.sh returns correctly after establishing a @@ -126,7 +124,7 @@ class TestWaitForIt(unittest.TestCase): 0 ) soc.close() - + def test_port_failure_with_timeout(self): """ Note exit status of 124 is exected, passed from the timeout command @@ -134,7 +132,7 @@ class TestWaitForIt(unittest.TestCase): self.check_args( "localhost:8929 --timeout=1", "", - ".*wait-for-it.sh: timeout occurred after waiting 1 seconds for localhost:8929", + ".*timeout occurred after waiting 1 seconds for localhost:8929", 124 ) @@ -151,21 +149,19 @@ class TestWaitForIt(unittest.TestCase): ) soc.close() - def test_failed_command_execution(self): """ - Check command failure. The command in question outputs STDERR and an - exit code of 2 + Check command failure. The command in question outputs STDERR and + an exit code of 2 """ soc = self.open_local_port(port=8929) self.check_args( "localhost:8929 -- ls not_real_file", "", - ".*No such file or directory\n", + ".*No such file or directory\n", 2 ) soc.close() - def test_command_after_connection_failure(self): """ @@ -175,10 +171,9 @@ class TestWaitForIt(unittest.TestCase): self.check_args( "localhost:8929 --timeout=1 -- echo \"CMD OUTPUT\"", "CMD OUTPUT", - ".*wait-for-it.sh: timeout occurred after waiting 1 seconds for localhost:8929", + ".*timeout occurred after waiting 1 seconds for localhost:8929", 0 ) - - + if __name__ == '__main__': unittest.main()