Open reox opened 8 years ago
When using variables in templates as URL, pyresttest will add slashes if there is none present but also if the expanded form of the template has a starting slash:
--- - config: - testset: "Server Tests" - variable_binds: {foobar: '/foobar'} - test: - name: "Test some URL" - url: {template: "$foobar"}
changing the variable to foobar and the url to {template: "/$foobar"} works fine. Otherwise it will produce double slashes: http://127.0.0.1//foobar
foobar
{template: "/$foobar"}
http://127.0.0.1//foobar
Interestingly, this does not happen, if there is something else than a single variable in the template:
--- - config: - testset: "Server Tests" - variable_binds: {foobar: '/foobar'} - test: - name: "Test some URL" - url: {template: "$foobar/blafoo"}
It then contacts the correct url http://127.0.0.1/foobar/blafoo
http://127.0.0.1/foobar/blafoo
I noticed this issue when using extracted variables as the next url, see http://stackoverflow.com/questions/39096872/double-slash-when-using-a-template-in-pyresttest
Edit: I see where the problem might coming from: Here https://github.com/svanoort/pyresttest/blob/53e105161bc0822a62599fa4c92ba208be2074e6/pyresttest/tests.py#L471 is the URL concatenated with the base_url. But this happens before the template is actually parsed. So urlparse.urljoin will of course add a slash if there is none. But that does not explain why the second yaml file works.
urlparse.urljoin
When using variables in templates as URL, pyresttest will add slashes if there is none present but also if the expanded form of the template has a starting slash:
changing the variable to
foobar
and the url to{template: "/$foobar"}
works fine. Otherwise it will produce double slashes:http://127.0.0.1//foobar
Interestingly, this does not happen, if there is something else than a single variable in the template:
It then contacts the correct url
http://127.0.0.1/foobar/blafoo
I noticed this issue when using extracted variables as the next url, see http://stackoverflow.com/questions/39096872/double-slash-when-using-a-template-in-pyresttest
Edit: I see where the problem might coming from: Here https://github.com/svanoort/pyresttest/blob/53e105161bc0822a62599fa4c92ba208be2074e6/pyresttest/tests.py#L471 is the URL concatenated with the base_url. But this happens before the template is actually parsed. So
urlparse.urljoin
will of course add a slash if there is none. But that does not explain why the second yaml file works.