aboutsummaryrefslogtreecommitdiff
path: root/tests/test_get_json.py
diff options
context:
space:
mode:
authorGuido Günther <agx@sigxcpu.org>2016-10-03 11:42:30 +0200
committerDaniel Lobato García <me@daniellobato.me>2016-10-03 11:42:30 +0200
commitfaa364138450fc390906956e2db358387200e19d (patch)
treeb17fea637da13720fd3e679be464473732255aa0 /tests/test_get_json.py
parentd66388b843f49ed556e003b746fcf41064c4171d (diff)
Python3 (#37)
* Handle python3's configparser as well * tests: Open file in text mode to avoid string bytes conversion with Python3 * tests: drop unnecessary dict These arent sortable in Python3 * Convert returned facts to list While Python2 has a list here Python3 returns dict_values which is not indexable as is. * tests: Parse url for comparison Python3 uses hash seeds for comparison so the QS parts dont have a fixed order. * Test python3.4 and python3.5 as well
Diffstat (limited to 'tests/test_get_json.py')
-rw-r--r--tests/test_get_json.py43
1 files changed, 30 insertions, 13 deletions
diff --git a/tests/test_get_json.py b/tests/test_get_json.py
index d424936..eca8765 100644
--- a/tests/test_get_json.py
+++ b/tests/test_get_json.py
@@ -2,6 +2,10 @@
import responses
import unittest
+try:
+ import urlparse
+except ImportError:
+ from urllib import parse as urlparse
from foreman_ansible_inventory import ForemanInventory
@@ -14,6 +18,18 @@ class TestGetJson(unittest.TestCase):
self.inv.foreman_pw = 'mastter'
self.inv.foreman_ssl_verify = True
+ def assertEqualUrl(self, url1, url2):
+ p1 = urlparse.urlparse(url1)
+ p2 = urlparse.urlparse(url2)
+ q1 = urlparse.parse_qs(p1.query)
+ q2 = urlparse.parse_qs(p2.query)
+ self.assertEqual(p1.scheme, p2.scheme)
+ self.assertEqual(p1.netloc, p2.netloc)
+ self.assertEqual(p1.path, p2.path)
+ self.assertEqual(p1.params, p2.params)
+ self.assertEqual(p1.fragment, p2.fragment)
+ self.assertEqual(q1, q2)
+
@responses.activate
def test_get_hosts(self):
url = 'http://localhost:3000/api/v2/hosts'
@@ -25,16 +41,16 @@ class TestGetJson(unittest.TestCase):
status=200)
ret = self.inv._get_hosts()
- self.assertEqual(sorted(ret),
- sorted([{u'name': u'foo'},
- {u'name': u'bar'},
- {u'name': u'foo'},
- {u'name': u'bar'}]))
+ self.assertEqual(ret,
+ [{u'name': u'foo'},
+ {u'name': u'bar'},
+ {u'name': u'foo'},
+ {u'name': u'bar'}])
self.assertEqual(len(responses.calls), 2)
- self.assertEqual(responses.calls[0].request.url,
- '%s?per_page=250&page=1' % url)
- self.assertEqual(responses.calls[1].request.url,
- '%s?per_page=250&page=2' % url)
+ self.assertEqualUrl(responses.calls[0].request.url,
+ '%s?per_page=250&page=1' % url)
+ self.assertEqualUrl(responses.calls[1].request.url,
+ '%s?per_page=250&page=2' % url)
@responses.activate
def test_get_facts(self):
@@ -52,8 +68,8 @@ class TestGetJson(unittest.TestCase):
ret = self.inv._get_facts({'id': 10})
self.assertEqual(ret, {u'fact2': u'val2', u'fact1': u'val1'})
self.assertEqual(len(responses.calls), 1)
- self.assertEqual(responses.calls[0].request.url,
- '%s?per_page=250&page=1' % url)
+ self.assertEqualUrl(responses.calls[0].request.url,
+ '%s?per_page=250&page=1' % url)
@responses.activate
def test_resolve_params(self):
@@ -72,5 +88,6 @@ class TestGetJson(unittest.TestCase):
sorted({'param1': 'value1',
'param2': 'value2'}.items()))
self.assertEqual(len(responses.calls), 1)
- self.assertEqual(responses.calls[0].request.url,
- '%s?per_page=250&page=1' % url)
+
+ self.assertEqualUrl(responses.calls[0].request.url,
+ '%s?per_page=250&page=1' % url)