diff options
author | Daniel Lobato GarcĂa <me@daniellobato.me> | 2016-08-18 14:14:32 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-08-18 14:14:32 +0200 |
commit | 4dc8465be0b8f3f13b3a874b259b9c8ea71f02dd (patch) | |
tree | 2ba716d917fb7a75940eac028b7d2687d5ad5910 /tests/test_get_json.py | |
parent | f399e489e2db052c235152ab9233dbdfa192985c (diff) | |
parent | 03f652e6678bf7933c1e6f5078648e216089f182 (diff) |
Merge pull request #26 from theforeman/tests
Add some tests and conform to pep8
Diffstat (limited to 'tests/test_get_json.py')
-rw-r--r-- | tests/test_get_json.py | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/tests/test_get_json.py b/tests/test_get_json.py new file mode 100644 index 0000000..d424936 --- /dev/null +++ b/tests/test_get_json.py @@ -0,0 +1,76 @@ +# vim: set fileencoding=utf-8 : + +import responses +import unittest + +from foreman_ansible_inventory import ForemanInventory + + +class TestGetJson(unittest.TestCase): + def setUp(self): + self.inv = ForemanInventory() + self.inv.foreman_url = 'http://localhost:3000' + self.inv.foreman_user = 'doesnot' + self.inv.foreman_pw = 'mastter' + self.inv.foreman_ssl_verify = True + + @responses.activate + def test_get_hosts(self): + url = 'http://localhost:3000/api/v2/hosts' + responses.add(responses.GET, + url, + json={'results': [{'name': 'foo'}, + {'name': 'bar'}], + 'total': 4}, + 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(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) + + @responses.activate + def test_get_facts(self): + self.inv.want_facts = True + url = 'http://localhost:3000/api/v2/hosts/10/facts' + responses.add(responses.GET, + url, + json={'results': {'facts': {'fact1': 'val1', + 'fact2': 'val2', + } + }, + }, + status=200) + + 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) + + @responses.activate + def test_resolve_params(self): + url = 'http://localhost:3000/api/v2/hosts/10' + responses.add(responses.GET, + url, + json={'all_parameters': + [{'name': 'param1', + 'value': 'value1'}, + {'name': 'param2', + 'value': 'value2'}]}, + status=200) + + ret = self.inv._resolve_params({'id': 10}) + self.assertEqual(sorted(ret.items()), + 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) |