Module: check_mk
Branch: master
Commit: 2d57b90bfe9319825a7cee8b4aa6353f307bddda
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=2d57b90bfe9319…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Wed Mar 29 08:22:46 2017 +0200
crawl test: enable debug mode, save more logs from test run
Change-Id: I1ed10b51a510d824f27cff6ac609f742472152cc
---
tests/testlib/__init__.py | 24 +++++++++++++++++++++++-
tests/web/test_crawl.py | 17 ++++++++++++-----
2 files changed, 35 insertions(+), 6 deletions(-)
diff --git a/tests/testlib/__init__.py b/tests/testlib/__init__.py
index c32f7c9..a108e98 100644
--- a/tests/testlib/__init__.py
+++ b/tests/testlib/__init__.py
@@ -246,12 +246,23 @@ class Site(object):
if not self._is_running_as_site_user():
p = self.execute(["cat", "%s/%s" % (self.root,
rel_path)], stdout=subprocess.PIPE)
if p.wait() != 0:
- raise MKGeneralException("Failed to read file %s. Exit-Code:
%d" % (rel_path, p.wait()))
+ raise Exception("Failed to read file %s. Exit-Code: %d" %
(rel_path, p.wait()))
return p.stdout.read()
else:
return open("%s/%s" % (self.root, rel_path)).read()
+ def write_file(self, rel_path, content):
+ if not self._is_running_as_site_user():
+ p = self.execute(["dd", "of=%s/%s" % (self.root,
rel_path)],
+ stdout=subprocess.PIPE, stdin=subprocess.PIPE)
+ p.communicate(content)
+ if p.wait() != 0:
+ raise Exception("Failed to write file %s. Exit-Code: %d" %
(rel_path, p.wait()))
+ else:
+ return open("%s/%s" % (self.root, rel_path),
"w").write(content)
+
+
def file_exists(self, rel_path):
if not self._is_running_as_site_user():
p = self.execute(["test", "-e", "%s/%s" %
(self.root, rel_path)], stdout=subprocess.PIPE)
@@ -292,6 +303,8 @@ class Site(object):
if self.update_with_git:
self._update_with_f12_files()
+ self._enable_mod_python_debug()
+
def _update_with_f12_files(self):
paths = [
@@ -340,6 +353,15 @@ class Site(object):
sys.stdout.flush()
+ def _enable_mod_python_debug(self):
+ path = "etc/check_mk/apache.conf"
+ content = self.read_file(path)
+
+ self.write_file(path,
+ content.replace("PythonHandler index",
+ "PythonHandler index\n PythonDebug On"))
+
+
def rm_if_not_reusing(self):
if not self.reuse:
self.rm()
diff --git a/tests/web/test_crawl.py b/tests/web/test_crawl.py
index 2186970..4e372b0 100644
--- a/tests/web/test_crawl.py
+++ b/tests/web/test_crawl.py
@@ -319,7 +319,11 @@ class TestCrawler(object):
def web_log_file(self):
- return var_dir() + "/craw-web.log"
+ return var_dir() + "/crawl-web.log"
+
+
+ def apache_error_log_file(self):
+ return var_dir() + "/crawl-apache_error_log.log"
def load_stats(self):
@@ -383,11 +387,14 @@ class TestCrawler(object):
os.rename(self.report_file()+".tmp", self.report_file())
- # Save the web.log for later diagnose
- if self.site.file_exists("var/log/web.log"):
- open(self.web_log_file(),
"w").write(self.site.read_file("var/log/web.log"))
-
if self.errors:
+ for site_path, test_path in [
+ ("var/log/web.log", self.web_log_file()),
+ ("var/log/apache/error_log",
self.apache_error_log_file()),
+ ]:
+ if self.site.file_exists(site_path):
+ open(test_path, "w").write(self.site.read_file(site_path))
+
pytest.fail("Crawled %d URLs in %d seconds. Failures:\n%s" %
(len(self.visited), time.time() - self.started,
"\n".join(self.errors)))