From 56b40ebd75f6c63457b4ce451872c00ea17730d3 Mon Sep 17 00:00:00 2001 From: Ronny Pfannschmidt Date: Fri, 27 May 2011 07:54:03 +0200 Subject: [PATCH] use os.path.expanduser/expandvars on the junitxml path for convience, fixes #44 --- _pytest/junitxml.py | 2 +- testing/test_junitxml.py | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/_pytest/junitxml.py b/_pytest/junitxml.py index d92842db0..8549e9fcd 100644 --- a/_pytest/junitxml.py +++ b/_pytest/junitxml.py @@ -65,7 +65,7 @@ def pytest_unconfigure(config): class LogXML(object): def __init__(self, logfile, prefix): - self.logfile = logfile + self.logfile = os.path.expanduser(os.path.expandvars(logfile)) self.prefix = prefix self.test_logs = [] self.passed = self.skipped = 0 diff --git a/testing/test_junitxml.py b/testing/test_junitxml.py index a19df36eb..4d6ed237a 100644 --- a/testing/test_junitxml.py +++ b/testing/test_junitxml.py @@ -1,6 +1,6 @@ from xml.dom import minidom -import py, sys +import py, sys, os def runandparse(testdir, *args): resultpath = testdir.tmpdir.join("junit.xml") @@ -351,3 +351,16 @@ def test_invalid_xml_escape(testdir): assert '#x%04X' % i in text for i in valid: assert chr(i) in text + +def test_logxml_path_expansion(): + from _pytest.junitxml import LogXML + + home_tilde = py.path.local(os.path.expanduser('~/test.xml')) + # this is here for when $HOME is not set correct + home_var = py.path.local(os.path.expandvars('$HOME/test.xml')) + + xml_tilde = LogXML('~/test.xml', None) + assert xml_tilde.logfile == home_tilde + + xml_var = LogXML('$HOME/test.xml', None) + assert xml_var.logfile == home_var