33 lines
2 KiB
Python
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)
|