python-dockercloud/tests/test_nodeprovider.py
2016-01-26 18:45:04 +01:00

33 lines
2 KiB
Python

from __future__ import absolute_import
import unittest
import unittest.mock as mock
import dockercloud
from .fake_api import *
class ProviderTestCase(unittest.TestCase):
@mock.patch.object(dockercloud.api.http.Session, 'send')
def test_provider_list(self, mock_send):
attributes = json.loads(
'[{"available": true, "label": "Digital Ocean", "name": "digitalocean", "regions": ["/api/v1/region/digitalocean/ams1/", "/api/v1/region/digitalocean/ams2/", "/api/v1/region/digitalocean/ams3/", "/api/v1/region/digitalocean/lon1/", "/api/v1/region/digitalocean/nyc1/", "/api/v1/region/digitalocean/nyc2/", "/api/v1/region/digitalocean/nyc3/", "/api/v1/region/digitalocean/sfo1/", "/api/v1/region/digitalocean/sgp1/"], "resource_uri": "/api/v1/provider/digitalocean/"}]'
)
mock_send.return_value = fake_resp(fake_provider_list)
providers = dockercloud.Provider.list()
for i in range(0, len(providers)):
result = json.loads(json.dumps(providers[i].get_all_attributes()))
target = json.loads(json.dumps(attributes[i]))
self.assertDictEqual(target, result)
@mock.patch.object(dockercloud.api.http.Session, 'send')
def test_provider_fetch(self, mock_send):
attribute = json.loads(
'{"available": true, "label": "Digital Ocean", "name": "digitalocean", "regions": ["/api/v1/region/digitalocean/ams1/", "/api/v1/region/digitalocean/ams2/", "/api/v1/region/digitalocean/ams3/", "/api/v1/region/digitalocean/lon1/", "/api/v1/region/digitalocean/nyc1/", "/api/v1/region/digitalocean/nyc2/", "/api/v1/region/digitalocean/nyc3/", "/api/v1/region/digitalocean/sfo1/", "/api/v1/region/digitalocean/sgp1/"], "resource_uri": "/api/v1/provider/digitalocean/"}'
)
mock_send.return_value = fake_resp(fake_provider_fetch)
provider = dockercloud.Provider.fetch("digitalocean")
result = json.loads(json.dumps(provider.get_all_attributes()))
target = json.loads(json.dumps(attribute))
self.assertDictEqual(target, result)