From 0a1baf5a3c9eda9a827cbb69a3bb096983baf359 Mon Sep 17 00:00:00 2001 From: Jan Scotka Date: Thu, 3 Mar 2016 16:40:19 +0100 Subject: [PATCH] test: Fix selenium test We shouldn't assume that we're the only ones working in /tmp during the tests, so take a bit more care with the filenames we choose. Also: - Handle exceptions in avocado tests while fetching results - Limit length of selenium debug output Reviewed-by: Dominik Perpeet --- test/avocado/run-tests | 13 +++++++++++-- test/avocado/selenium-login.py | 31 +++++++++++++++++-------------- test/avocado/seleniumlib.py | 3 ++- 3 files changed, 30 insertions(+), 17 deletions(-) diff --git a/test/avocado/run-tests b/test/avocado/run-tests index cc72fb1..e35b7e5 100755 --- a/test/avocado/run-tests +++ b/test/avocado/run-tests @@ -55,7 +55,12 @@ def prepare_avocado_tests(machine): machine.upload([os.path.join(machine.test_dir, "avocado")], machine_test_dir) def tap_output(machine): - json_info = json.loads(machine.execute(command="cat " + os.path.join(avocado_results_dir, "latest/results.json"), quiet=True)) + try: + json_info = json.loads(machine.execute(command="cat " + os.path.join(avocado_results_dir, "latest/results.json"), quiet=True)) + except Exception as e: + print "ERROR: Unable to fetch JSON from remote machine:", os.path.join(avocado_results_dir, "latest/results.json") + print e + return None print "\nTAP output -------------------------" print "1..%s" % len(json_info['tests']) counter = 1 @@ -67,7 +72,11 @@ def tap_output(machine): print "# ----------------------------------------------------------------------" print "# %s (time %d secs)" % (test_name, test_time) print "#" - print machine.execute(command="cat " + test_log, quiet=True) + try: + print machine.execute(command="cat " + test_log, quiet=True) + except Exception as e: + print "ERROR: Unable to fetch testlog from remote machine:", test_log + print e print "# TEST LOG END -------" if test_status == 'PASS': print "ok %s %s (time %d secs)" % (counter, test_name, test_time) diff --git a/test/avocado/selenium-login.py b/test/avocado/selenium-login.py index 29c4404..1e9e081 100755 --- a/test/avocado/selenium-login.py +++ b/test/avocado/selenium-login.py @@ -174,20 +174,23 @@ class BasicTestSuite(SeleniumTest): self.wait_frame("terminal") self.wait_id('terminal') terminal = self.wait_xpath("//*[@class='terminal']") - self.send_keys(terminal, "touch /tmp/testabc\n", clear=False) - self.wait_text("touch /tmp/testabc", user, element="div") - self.send_keys(terminal, "touch /tmp/testabd\n", clear=False) - self.wait_text("touch /tmp/testabd",user, element="div") - self.send_keys(terminal, "ls /tmp/test*\n", clear=False) - self.wait_text("ls /tmp/test*",'/tmp/testabc /tmp/testabd', element="div") - process.run("ls /tmp/testabc", shell=True) - process.run("ls /tmp/testabd", shell=True) - self.send_keys(terminal, "rm /tmp/testabc /tmp/testabd\n", clear=False) - self.wait_text("rm /tmp/testabc /tmp/testabd",user, element="div") - self.send_keys(terminal, "ls /tmp/test*\n", clear=False) - self.wait_text("ls /tmp/test*",'cannot access', element="div") - process.run("ls /tmp/testabc |wc -l |grep 0", shell=True) - process.run("ls /tmp/testabd |wc -l |grep 0", shell=True) + prefix = "/tmp/cockpitrndadr/" + self.send_keys(terminal, "mkdir {0}\n".format(prefix), clear=False) + self.wait_text("mkdir {0}".format(prefix), user, element="div") + self.send_keys(terminal, "touch {0}abc\n".format(prefix), clear=False) + self.wait_text("touch {0}abc".format(prefix), user, element="div") + self.send_keys(terminal, "touch {0}abd\n".format(prefix), clear=False) + self.wait_text("touch {0}abd".format(prefix), user, element="div") + self.send_keys(terminal, "ls {0}*\n".format(prefix), clear=False) + self.wait_text("ls {0}*".format(prefix), '{0}abc'.format(prefix), element="div") + process.run("ls {0}abc".format(prefix), shell=True) + process.run("ls {0}abd".format(prefix), shell=True) + self.send_keys(terminal, "rm {0}abc {0}abd\n".format(prefix), clear=False) + self.wait_text("rm {0}abc {0}abd".format(prefix), user, element="div") + self.send_keys(terminal, "ls {0}*\n".format(prefix), clear=False) + self.wait_text("ls {0}*".format(prefix), 'cannot access', element="div") + process.run("ls {0}abc |wc -l |grep 0".format(prefix), shell=True) + process.run("ls {0}abd |wc -l |grep 0".format(prefix), shell=True) self.mainframe() self.error=False diff --git a/test/avocado/seleniumlib.py b/test/avocado/seleniumlib.py index 8d99cd3..e8e05f9 100755 --- a/test/avocado/seleniumlib.py +++ b/test/avocado/seleniumlib.py @@ -111,8 +111,9 @@ class SeleniumTest(Test): self.log.info('ERR: Unable to close WEBdriver: {0}'.format(e)) def get_debug_logs(self, logs=['browser','driver','client','server']): + max_line_log_count = 10 for log in logs: - receivedlog = self.driver.get_log(log) + receivedlog = [x for x in self.driver.get_log(log)][-max_line_log_count:] if receivedlog: self.log.info(">>>>> " + log) for line in receivedlog: -- 1.8.3.1