summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorxudan <xudan16@huawei.com>2017-03-16 07:09:53 +0000
committerMorgan Richomme <morgan.richomme@orange.com>2017-03-23 10:31:42 +0000
commitaacd330b2d24be6c88d23e69bf79f20cdd340af5 (patch)
tree5fae8daa4f89772d3d9da14b950be4876fd56987
parentd293199b60d655f2af46597d142ae769c4f7e378 (diff)
Switch test_db_url to a directory
We must now set a dir (e.g. /home/opnfv/db) to dump results. It avoids replacing "results" and prevent from limiting the use of this decorator. All data will be dumped into url/dump.txt As also proposed in FUNCTEST-729, missing directories are created too. The decorator will raise exceptions if dir exists or if target is not a directory. Co-Authored-By: Cédric Ollivier <cedric.ollivier@orange.com> JIRA: FUNCTEST-729 Change-Id: I9650c72493043539f17725f5c328c12639ecc059 Signed-off-by: xudan <xudan16@huawei.com> Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com> (cherry picked from commit 18bdde48e866f198b5d08b62fc9e26e3dfe4e818)
-rwxr-xr-xfunctest/ci/config_functest.yaml2
-rw-r--r--functest/utils/decorators.py9
2 files changed, 10 insertions, 1 deletions
diff --git a/functest/ci/config_functest.yaml b/functest/ci/config_functest.yaml
index 4d5a62175..78f6257c8 100755
--- a/functest/ci/config_functest.yaml
+++ b/functest/ci/config_functest.yaml
@@ -200,4 +200,6 @@ example:
sg_desc: Example Security group
results:
+ # you can also set a dir (e.g. /home/opnfv/db) to dump results
+ # test_db_url: file:///home/opnfv/db
test_db_url: http://testresults.opnfv.org/test/api/v1
diff --git a/functest/utils/decorators.py b/functest/utils/decorators.py
index 99bcef3e6..276235d96 100644
--- a/functest/utils/decorators.py
+++ b/functest/utils/decorators.py
@@ -1,6 +1,8 @@
#!/usr/bin/env python
+import errno
import mock
+import os
import requests.sessions
import urlparse
@@ -10,7 +12,12 @@ def can_dump_request_to_file(method):
def dump_preparedrequest(request, **kwargs):
parseresult = urlparse.urlparse(request.url)
if parseresult.scheme == "file":
- with open(parseresult.path.replace('/results', ''), 'a') as f:
+ try:
+ os.makedirs(parseresult.path)
+ except OSError as e:
+ if e.errno != errno.EEXIST:
+ raise
+ with open(os.path.join(parseresult.path, 'dump.txt'), 'a') as f:
headers = ""
for key in request.headers:
headers += key + " " + request.headers[key] + "\n"