Merge pull request #1121 from tandalf/issue-1120
Fixed bug when passing a list into route decorator's host argument #1120
This commit is contained in:
		| @@ -128,6 +128,13 @@ class Router: | ||||
|         if strict_slashes: | ||||
|             return | ||||
|  | ||||
|         if not isinstance(host, str) and host is not None: | ||||
|             # we have gotten back to the top of the recursion tree where the | ||||
|             # host was originally a list. By now, we've processed the strict | ||||
|             # slashes logic on the leaf nodes (the individual host strings in | ||||
|             # the list of host) | ||||
|             return | ||||
|  | ||||
|         # Add versions with and without trailing / | ||||
|         slashed_methods = self.routes_all.get(uri + '/', frozenset({})) | ||||
|         unslashed_methods = self.routes_all.get(uri[:-1], frozenset({})) | ||||
|   | ||||
| @@ -174,6 +174,40 @@ def test_route_optional_slash(): | ||||
|     request, response = app.test_client.get('/get/') | ||||
|     assert response.text == 'OK' | ||||
|  | ||||
| def test_route_strict_slashes_set_to_false_and_host_is_a_list(): | ||||
|     #Part of regression test for issue #1120 | ||||
|     app = Sanic('test_route_strict_slashes_set_to_false_and_host_is_a_list') | ||||
|  | ||||
|     site1 = 'localhost:{}'.format(app.test_client.port) | ||||
|  | ||||
|     #before fix, this raises a RouteExists error | ||||
|     @app.get('/get', host=[site1, 'site2.com'], strict_slashes=False) | ||||
|     def handler(request): | ||||
|         return text('OK') | ||||
|  | ||||
|     request, response = app.test_client.get('http://' + site1 + '/get') | ||||
|     assert response.text == 'OK' | ||||
|  | ||||
|     @app.post('/post', host=[site1, 'site2.com'], strict_slashes=False) | ||||
|     def handler(request): | ||||
|         return text('OK') | ||||
|  | ||||
|     request, response = app.test_client.post('http://' + site1 +'/post') | ||||
|     assert response.text == 'OK' | ||||
|  | ||||
|     @app.put('/put', host=[site1, 'site2.com'], strict_slashes=False) | ||||
|     def handler(request): | ||||
|         return text('OK') | ||||
|  | ||||
|     request, response = app.test_client.put('http://' + site1 +'/put') | ||||
|     assert response.text == 'OK' | ||||
|  | ||||
|     @app.delete('/delete', host=[site1, 'site2.com'], strict_slashes=False) | ||||
|     def handler(request): | ||||
|         return text('OK') | ||||
|  | ||||
|     request, response = app.test_client.delete('http://' + site1 +'/delete') | ||||
|     assert response.text == 'OK' | ||||
|  | ||||
| def test_shorthand_routes_post(): | ||||
|     app = Sanic('test_shorhand_routes_post') | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Raphael Deem
					Raphael Deem