python3: align the order of parameters for urlencode()
In Python 3.3, hash randomization is enabled by default. It causes the iteration order of dicts and sets to be unpredictable and differ across Python runs. In the test case, the fixed expecting string will not match the test result, it is relying on the dict order. This change transforms the input dict to a sequence of two-element list, with fixed order, and update the related expecitng string in test case. Change-Id: I60d7bb3c4f940b76460ad5c417a1807915e0418e Signed-off-by: Chuck Short <chuck.short@canonical.com>
This commit is contained in:
		| @@ -108,7 +108,13 @@ class SnapshotManager(base.ManagerWithFind): | ||||
|             if val: | ||||
|                 qparams[opt] = val | ||||
|  | ||||
|         query_string = "?%s" % urlencode(qparams) if qparams else "" | ||||
|         # Transform the dict to a sequence of two-element tuples in fixed | ||||
|         # order, then the encoded string will be consistent in Python 2&3. | ||||
|         if qparams: | ||||
|             new_qparams = sorted(qparams.items(), key=lambda x: x[0]) | ||||
|             query_string = "?%s" % urlencode(new_qparams) | ||||
|         else: | ||||
|             query_string = "" | ||||
|  | ||||
|         detail = "" | ||||
|         if detailed: | ||||
|   | ||||
| @@ -95,7 +95,13 @@ class SnapshotManager(base.ManagerWithFind): | ||||
|             if val: | ||||
|                 qparams[opt] = val | ||||
|  | ||||
|         query_string = "?%s" % urlencode(qparams) if qparams else "" | ||||
|         # Transform the dict to a sequence of two-element tuples in fixed | ||||
|         # order, then the encoded string will be consistent in Python 2&3. | ||||
|         if qparams: | ||||
|             new_qparams = sorted(qparams.items(), key=lambda x: x[0]) | ||||
|             query_string = "?%s" % urlencode(new_qparams) | ||||
|         else: | ||||
|             query_string = "" | ||||
|  | ||||
|         detail = "" | ||||
|         if detailed: | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Chuck Short
					Chuck Short