Make URI comparisons safe up to query parameter reordering.
Reviewed in https://codereview.appspot.com/6843073/.
diff --git a/tests/test_discovery.py b/tests/test_discovery.py
index 09971f7..9981f23 100644
--- a/tests/test_discovery.py
+++ b/tests/test_discovery.py
@@ -58,6 +58,23 @@
 FLAGS.positional_parameters_enforcement = 'EXCEPTION'
 
 
+def assertUrisEqual(testcase, expected, actual):
+  """Test that URIs are the same, up to reordering of query parameters."""
+  expected = urlparse.urlparse(expected)
+  actual = urlparse.urlparse(actual)
+  testcase.assertEqual(expected.scheme, actual.scheme)
+  testcase.assertEqual(expected.netloc, actual.netloc)
+  testcase.assertEqual(expected.path, actual.path)
+  testcase.assertEqual(expected.params, actual.params)
+  testcase.assertEqual(expected.fragment, actual.fragment)
+  expected_query = parse_qs(expected.query)
+  actual_query = parse_qs(actual.query)
+  for name in expected_query.keys():
+    testcase.assertEqual(expected_query[name], actual_query[name])
+  for name in actual_query.keys():
+    testcase.assertEqual(expected_query[name], actual_query[name])
+
+
 def datafile(filename):
   return os.path.join(DATA_DIR, filename)
 
@@ -342,7 +359,7 @@
     request = zoo.animals().insert(media_body=datafile('small.png'))
     self.assertEquals('image/png', request.headers['content-type'])
     self.assertEquals('PNG', request.body[1:4])
-    self.assertEqual(
+    assertUrisEqual(self,
         'https://www.googleapis.com/upload/zoo/v1/animals?uploadType=media&alt=json',
         request.uri)
 
@@ -370,7 +387,7 @@
     self.assertTrue(request.headers['content-type'].startswith(
         'multipart/related'))
     self.assertEquals('--==', request.body[0:4])
-    self.assertEqual(
+    assertUrisEqual(self,
         'https://www.googleapis.com/upload/zoo/v1/animals?uploadType=multipart&alt=json',
         request.uri)
 
@@ -487,7 +504,7 @@
 
     media_upload = MediaFileUpload(datafile('small.png'), resumable=True)
     request = zoo.animals().insert(media_body=media_upload, body=None)
-    self.assertEqual(
+    assertUrisEqual(self,
         'https://www.googleapis.com/upload/zoo/v1/animals?uploadType=resumable&alt=json',
         request.uri)