add namespace to all apis
This commit is contained in:
parent
e9658aae73
commit
256de5d2cc
27 changed files with 248 additions and 204 deletions
|
|
@ -2,7 +2,10 @@ from __future__ import absolute_import
|
|||
|
||||
import unittest
|
||||
|
||||
import unittest.mock as mock
|
||||
try:
|
||||
import mock
|
||||
except ImportError:
|
||||
import unittest.mock as mock
|
||||
|
||||
import dockercloud
|
||||
from .fake_api import *
|
||||
|
|
|
|||
|
|
@ -4,7 +4,10 @@ import os
|
|||
import tempfile
|
||||
import unittest
|
||||
|
||||
import unittest.mock as mock
|
||||
try:
|
||||
import mock
|
||||
except ImportError:
|
||||
import unittest.mock as mock
|
||||
|
||||
import dockercloud
|
||||
from .fake_api import *
|
||||
|
|
@ -75,7 +78,6 @@ class AuthTestCase(unittest.TestCase):
|
|||
dockercloud.basic_auth = FAKE_BASIC_AUTH
|
||||
self.assertEqual({'Authorization': FAKE_DOCKERCLOUD_AUTH}, dockercloud.auth.get_auth_header())
|
||||
|
||||
print "===================="
|
||||
dockercloud.dockercloud_auth = None
|
||||
dockercloud.basic_auth = FAKE_BASIC_AUTH
|
||||
self.assertEqual({'Authorization': 'Basic %s' % (FAKE_BASIC_AUTH)}, dockercloud.auth.get_auth_header())
|
||||
|
|
|
|||
|
|
@ -3,7 +3,10 @@ from __future__ import absolute_import
|
|||
import json
|
||||
import unittest
|
||||
|
||||
import unittest.mock as mock
|
||||
try:
|
||||
import mock
|
||||
except ImportError:
|
||||
import unittest.mock as mock
|
||||
|
||||
import dockercloud
|
||||
from dockercloud.api.base import Restful, Mutable, Immutable
|
||||
|
|
@ -54,14 +57,12 @@ class RestfulTestCase(unittest.TestCase):
|
|||
|
||||
def test_restful_loaddict(self):
|
||||
model = Restful()
|
||||
self.assertRaises(AssertionError, model._loaddict, {'key': 'value'})
|
||||
|
||||
model.endpoint = 'endpoint'
|
||||
model.endpoint = 'resource_uri'
|
||||
model.subsystem = "subsystem"
|
||||
model._loaddict({'key': 'value'})
|
||||
resource_uri = "/".join(["api", model.subsystem, model._api_version, model.endpoint.lstrip("/"), model.pk])
|
||||
model._loaddict({'key': 'value', "resource_uri": resource_uri})
|
||||
self.assertEqual('value', model.key)
|
||||
self.assertEqual("/".join(["api", model.subsystem, model._api_version, model.endpoint.lstrip("/"), model.pk]),
|
||||
model._detail_uri)
|
||||
self.assertEqual(resource_uri, model._resource_uri)
|
||||
self.assertEqual([], model.__getchanges__())
|
||||
|
||||
def test_restful_pk(self):
|
||||
|
|
@ -77,32 +78,29 @@ class RestfulTestCase(unittest.TestCase):
|
|||
|
||||
@mock.patch('dockercloud.api.base.send_request')
|
||||
def test_restful_perform_action(self, mock_send_request):
|
||||
try:
|
||||
model = Restful()
|
||||
self.assertRaises(dockercloud.ApiError, model._perform_action, 'action')
|
||||
|
||||
model.endpoint = 'fake'
|
||||
model.subsystem = "subsystem"
|
||||
model._detail_uri = "/".join(
|
||||
["api", model.subsystem, model._api_version, model.endpoint.lstrip("/"), model.pk])
|
||||
mock_send_request.side_effect = [{'key': 'value'}, None]
|
||||
self.assertTrue(model._perform_action('action', params={'k': 'v'}, data={'key': 'value'}))
|
||||
self.assertEqual('value', model.key)
|
||||
mock_send_request.assert_called_with('POST', "/".join([model._detail_uri, "action"]), data={'key': 'value'},
|
||||
params={'k': 'v'})
|
||||
model = Restful()
|
||||
self.assertRaises(dockercloud.ApiError, model._perform_action, 'action')
|
||||
|
||||
self.assertFalse(model._perform_action('action', {'key': 'value'}))
|
||||
model.endpoint = 'fake'
|
||||
model.subsystem = "subsystem"
|
||||
model.resource_uri = "/".join(
|
||||
["api", model.subsystem, model._api_version, model.endpoint.lstrip("/"), model.pk])
|
||||
model._resource_uri = model.resource_uri
|
||||
mock_send_request.side_effect = [{'key': 'value'}, None]
|
||||
self.assertTrue(model._perform_action('action', params={'k': 'v'}, data={'key': 'value'}))
|
||||
self.assertEqual('value', model.key)
|
||||
mock_send_request.assert_called_with('POST', "/".join([model._resource_uri, "action"]), data={'key': 'value'},
|
||||
params={'k': 'v'})
|
||||
|
||||
finally:
|
||||
if hasattr(Restful, 'endpoint'):
|
||||
delattr(Restful, 'endpoint')
|
||||
self.assertFalse(model._perform_action('action', {'key': 'value'}))
|
||||
|
||||
@mock.patch('dockercloud.api.base.send_request')
|
||||
def test_restful_expand_attribute(self, mock_send_request):
|
||||
model = Restful()
|
||||
self.assertRaises(dockercloud.ApiError, model._expand_attribute, 'attribute')
|
||||
|
||||
model._detail_uri = 'fake/uuid'
|
||||
model._resource_uri = 'fake/uuid'
|
||||
mock_send_request.side_effect = [{'key': 'value'}, None]
|
||||
self.assertEqual('value', model._expand_attribute('key'))
|
||||
|
||||
|
|
@ -124,63 +122,65 @@ class ImmutableTestCase(unittest.TestCase):
|
|||
|
||||
@mock.patch('dockercloud.api.base.send_request')
|
||||
def test_immutable_fetch(self, mock_send_request):
|
||||
try:
|
||||
delattr(Immutable, 'endpoint')
|
||||
delattr(Immutable, 'subsystem')
|
||||
except:
|
||||
pass
|
||||
self.assertRaises(AssertionError, Immutable.fetch, 'uuid')
|
||||
|
||||
try:
|
||||
ret_json = {"key": "value"}
|
||||
mock_send_request.return_value = ret_json
|
||||
Immutable.endpoint = 'endpoint'
|
||||
Immutable.subsystem = "subsystem"
|
||||
model = Immutable.fetch('uuid')
|
||||
mock_send_request.assert_called_with('GET', 'api/subsystem/%s/endpoint/uuid' % Immutable._api_version)
|
||||
self.assertIsInstance(model, Immutable)
|
||||
self.assertEqual('value', model.key)
|
||||
finally:
|
||||
if hasattr(Immutable, 'endpoint'):
|
||||
delattr(Immutable, 'endpoint')
|
||||
ret_json = {"key": "value"}
|
||||
mock_send_request.return_value = ret_json
|
||||
Immutable.endpoint = 'resource_uri'
|
||||
Immutable.subsystem = "subsystem"
|
||||
model = Immutable.fetch('uuid')
|
||||
mock_send_request.assert_called_with('GET', 'api/subsystem/%s/resource_uri/uuid' % Immutable._api_version)
|
||||
self.assertIsInstance(model, Immutable)
|
||||
self.assertEqual('value', model.key)
|
||||
|
||||
@mock.patch('dockercloud.api.base.send_request')
|
||||
def test_immutable_list(self, mock_send_request):
|
||||
self.assertRaises(AssertionError, Immutable.list)
|
||||
try:
|
||||
kwargs = {'key': 'value'}
|
||||
ret_json = {"meta": {"limit": 25, "next": None, "offset": 0, "previous": None, "total_count": 1},
|
||||
"objects": [{"key": "value1"}, {"key": "value2"}]}
|
||||
mock_send_request.return_value = ret_json
|
||||
Immutable.endpoint = 'fake'
|
||||
models = Immutable.list(**kwargs)
|
||||
mock_send_request.assert_called_with('GET', 'api/subsystem/%s/fake' % Immutable._api_version, params=kwargs)
|
||||
self.assertEqual(2, len(models))
|
||||
self.assertIsInstance(models[0], Immutable)
|
||||
self.assertEqual('value1', models[0].key)
|
||||
self.assertIsInstance(models[1], Immutable)
|
||||
self.assertEqual('value2', models[1].key)
|
||||
finally:
|
||||
if hasattr(Immutable, 'endpoint'):
|
||||
delattr(Immutable, 'endpoint')
|
||||
delattr(Immutable, 'endpoint')
|
||||
delattr(Immutable, 'subsystem')
|
||||
except:
|
||||
pass
|
||||
self.assertRaises(AssertionError, Immutable.list)
|
||||
|
||||
kwargs = {'key': 'value'}
|
||||
ret_json = {"meta": {"limit": 25, "next": None, "offset": 0, "previous": None, "total_count": 1},
|
||||
"objects": [{"key": "value1"}, {"key": "value2"}]}
|
||||
mock_send_request.return_value = ret_json
|
||||
Immutable.endpoint = 'fake'
|
||||
Immutable.subsystem = "subsystem"
|
||||
models = Immutable.list(**kwargs)
|
||||
mock_send_request.assert_called_with('GET', 'api/subsystem/%s/fake' % Immutable._api_version, params=kwargs)
|
||||
self.assertEqual(2, len(models))
|
||||
self.assertIsInstance(models[0], Immutable)
|
||||
self.assertEqual('value1', models[0].key)
|
||||
self.assertIsInstance(models[1], Immutable)
|
||||
self.assertEqual('value2', models[1].key)
|
||||
|
||||
@mock.patch('dockercloud.api.base.send_request')
|
||||
def test_immutable_refresh(self, mock_send_request):
|
||||
try:
|
||||
model = Immutable()
|
||||
model.key = 'value'
|
||||
self.assertFalse(model.refresh(force=False))
|
||||
|
||||
self.assertRaises(dockercloud.ApiError, model.refresh, force=True)
|
||||
model = Immutable()
|
||||
model.key = 'value'
|
||||
self.assertFalse(model.refresh(force=False))
|
||||
|
||||
Immutable.endpoint = 'endpoint'
|
||||
Immutable.subsystem = 'subsystem'
|
||||
model._detail_uri = 'api/subsystem/%s/endpoint/uuid' % Immutable._api_version
|
||||
mock_send_request.side_effect = [{'newkey': 'newvalue'}, None]
|
||||
self.assertTrue(model.refresh(force=True))
|
||||
self.assertEqual('newvalue', model.newkey)
|
||||
mock_send_request.assert_called_with('GET', model._detail_uri)
|
||||
self.assertRaises(dockercloud.ApiError, model.refresh, force=True)
|
||||
|
||||
self.assertFalse(model.refresh(force=True))
|
||||
mock_send_request.assert_called_with('GET', model._detail_uri)
|
||||
finally:
|
||||
if hasattr(Immutable, 'endpoint'):
|
||||
delattr(Immutable, 'endpoint')
|
||||
Immutable.endpoint = 'resource_uri'
|
||||
Immutable.subsystem = 'subsystem'
|
||||
model.resource_uri = 'api/subsystem/%s/resource_uri/uuid' % Immutable._api_version
|
||||
model._resource_uri = model.resource_uri
|
||||
mock_send_request.side_effect = [{'newkey': 'newvalue'}, None]
|
||||
self.assertTrue(model.refresh(force=True))
|
||||
self.assertEqual('newvalue', model.newkey)
|
||||
mock_send_request.assert_called_with('GET', model._resource_uri)
|
||||
|
||||
self.assertFalse(model.refresh(force=True))
|
||||
mock_send_request.assert_called_with('GET', model._resource_uri)
|
||||
|
||||
|
||||
class MutableTestCase(unittest.TestCase):
|
||||
|
|
@ -196,57 +196,56 @@ class MutableTestCase(unittest.TestCase):
|
|||
|
||||
@mock.patch('dockercloud.api.base.send_request')
|
||||
def test_mutable_delete(self, mock_send_request):
|
||||
try:
|
||||
model = Mutable()
|
||||
self.assertRaises(dockercloud.ApiError, model.delete)
|
||||
model = Mutable()
|
||||
self.assertRaises(dockercloud.ApiError, model.delete)
|
||||
|
||||
Mutable.endpoint = 'fake'
|
||||
model._detail_uri = 'fake/uuid'
|
||||
mock_send_request.side_effect = [{'key': 'value'}, None]
|
||||
self.assertTrue(model.delete())
|
||||
self.assertEqual('value', model.key)
|
||||
mock_send_request.assert_called_with('DELETE', 'fake/uuid')
|
||||
Mutable.endpoint = 'fake'
|
||||
model._resource_uri = 'fake/uuid'
|
||||
mock_send_request.side_effect = [{'key': 'value'}, None]
|
||||
self.assertTrue(model.delete())
|
||||
self.assertEqual('value', model.key)
|
||||
mock_send_request.assert_called_with('DELETE', 'fake/uuid')
|
||||
|
||||
self.assertTrue(model.delete())
|
||||
self.assertIsNone(model._detail_uri)
|
||||
self.assertFalse(model.is_dirty)
|
||||
finally:
|
||||
if hasattr(Mutable, 'endpoint'):
|
||||
delattr(Mutable, 'endpoint')
|
||||
model = Mutable()
|
||||
model._resource_uri = 'fake/uuid'
|
||||
self.assertTrue(model.delete())
|
||||
self.assertIsNone(model._resource_uri)
|
||||
self.assertFalse(model.is_dirty)
|
||||
|
||||
@mock.patch('dockercloud.api.base.send_request')
|
||||
def test_mutable_save(self, mock_send_request):
|
||||
self.assertTrue(Mutable().save())
|
||||
|
||||
model = Mutable()
|
||||
model.key = 'value'
|
||||
try:
|
||||
self.assertTrue(Mutable().save())
|
||||
delattr(Immutable, 'endpoint')
|
||||
delattr(Immutable, 'subsystem')
|
||||
except:
|
||||
pass
|
||||
self.assertRaises(AssertionError, model.save)
|
||||
|
||||
model = Mutable()
|
||||
model.key = 'value'
|
||||
self.assertRaises(AssertionError, model.save)
|
||||
Mutable.endpoint = 'resource_uri'
|
||||
Mutable.subsystem = 'subsystem'
|
||||
mock_send_request.return_value = None
|
||||
result = model.save()
|
||||
mock_send_request.assert_called_with('POST', 'api/subsystem/%s/resource_uri' % Mutable._api_version,
|
||||
data=json.dumps({'key': 'value'}))
|
||||
self.assertFalse(result)
|
||||
|
||||
Mutable.endpoint = 'endpoint'
|
||||
Mutable.subsystem = 'subsystem'
|
||||
mock_send_request.return_value = None
|
||||
result = model.save()
|
||||
mock_send_request.assert_called_with('POST', 'api/subsystem/%s/endpoint' % Mutable._api_version,
|
||||
data=json.dumps({'key': 'value'}))
|
||||
self.assertFalse(result)
|
||||
mock_send_request.return_value = {'newkey': 'newvalue'}
|
||||
result = model.save()
|
||||
mock_send_request.assert_called_with('POST', 'api/subsystem/%s/resource_uri' % Mutable._api_version,
|
||||
data=json.dumps({'key': 'value'}))
|
||||
self.assertTrue(result)
|
||||
self.assertEqual('newvalue', model.newkey)
|
||||
|
||||
mock_send_request.return_value = {'newkey': 'newvalue'}
|
||||
result = model.save()
|
||||
mock_send_request.assert_called_with('POST', 'api/subsystem/%s/endpoint' % Mutable._api_version,
|
||||
data=json.dumps({'key': 'value'}))
|
||||
self.assertTrue(result)
|
||||
self.assertEqual('newvalue', model.newkey)
|
||||
|
||||
model.key = 'another value'
|
||||
mock_send_request.return_value = {'newkey2': 'newvalue2'}
|
||||
model._detail_uri = 'api/subsystem/%s/endpoint/uuid' % Immutable._api_version
|
||||
result = model.save()
|
||||
mock_send_request.assert_called_with('PATCH', 'api/subsystem/%s/endpoint/uuid' % Mutable._api_version,
|
||||
data=json.dumps({'key': 'another value'}))
|
||||
self.assertTrue(result)
|
||||
self.assertEqual('another value', model.key)
|
||||
self.assertEqual('newvalue2', model.newkey2)
|
||||
finally:
|
||||
if hasattr(Mutable, 'endpoint'):
|
||||
delattr(Mutable, 'endpoint')
|
||||
model.key = 'another value'
|
||||
mock_send_request.return_value = {'newkey2': 'newvalue2'}
|
||||
model._resource_uri = 'api/subsystem/%s/resource_uri/uuid' % Immutable._api_version
|
||||
result = model.save()
|
||||
mock_send_request.assert_called_with('PATCH', 'api/subsystem/%s/resource_uri/uuid' % Mutable._api_version,
|
||||
data=json.dumps({'key': 'another value'}))
|
||||
self.assertTrue(result)
|
||||
self.assertEqual('another value', model.key)
|
||||
self.assertEqual('newvalue2', model.newkey2)
|
||||
|
|
|
|||
|
|
@ -2,7 +2,10 @@ from __future__ import absolute_import
|
|||
|
||||
import unittest
|
||||
|
||||
import unittest.mock as mock
|
||||
try:
|
||||
import mock
|
||||
except ImportError:
|
||||
import unittest.mock as mock
|
||||
|
||||
import dockercloud
|
||||
from .fake_api import *
|
||||
|
|
|
|||
|
|
@ -1,9 +1,12 @@
|
|||
from __future__ import absolute_import
|
||||
|
||||
import requests
|
||||
import unittest
|
||||
|
||||
import requests
|
||||
import unittest.mock as mock
|
||||
try:
|
||||
import mock
|
||||
except ImportError:
|
||||
import unittest.mock as mock
|
||||
|
||||
import dockercloud
|
||||
from dockercloud.api.base import send_request
|
||||
|
|
|
|||
|
|
@ -2,7 +2,10 @@ from __future__ import absolute_import
|
|||
|
||||
import unittest
|
||||
|
||||
import unittest.mock as mock
|
||||
try:
|
||||
import mock
|
||||
except ImportError:
|
||||
import unittest.mock as mock
|
||||
|
||||
import dockercloud
|
||||
from .fake_api import *
|
||||
|
|
|
|||
|
|
@ -2,7 +2,10 @@ from __future__ import absolute_import
|
|||
|
||||
import unittest
|
||||
|
||||
import unittest.mock as mock
|
||||
try:
|
||||
import mock
|
||||
except ImportError:
|
||||
import unittest.mock as mock
|
||||
|
||||
import dockercloud
|
||||
from .fake_api import *
|
||||
|
|
@ -40,7 +43,7 @@ class NodeClusterTestCase(unittest.TestCase):
|
|||
)
|
||||
mock_send.return_value = fake_resp(fake_nodecluster_save)
|
||||
cluster = dockercloud.NodeCluster.create(name="my_cluster", region="/api/v1/region/digitalocean/lon1/",
|
||||
node_type="/api/v1/nodetype/digitalocean/1gb/")
|
||||
node_type="/api/v1/nodetype/digitalocean/1gb/")
|
||||
self.assertTrue(cluster.save())
|
||||
result = json.loads(json.dumps(cluster.get_all_attributes()))
|
||||
target = json.loads(json.dumps(attribute))
|
||||
|
|
@ -53,7 +56,7 @@ class NodeClusterTestCase(unittest.TestCase):
|
|||
)
|
||||
mock_send.side_effect = [fake_resp(fake_nodecluster_save), fake_resp(fake_nodecluster_deploy)]
|
||||
cluster = dockercloud.NodeCluster.create(name="my_cluster", region="/api/v1/region/digitalocean/lon1/",
|
||||
node_type="/api/v1/nodetype/digitalocean/1gb/")
|
||||
node_type="/api/v1/nodetype/digitalocean/1gb/")
|
||||
cluster.save()
|
||||
self.assertTrue(cluster.deploy())
|
||||
result = json.loads(json.dumps(cluster.get_all_attributes()))
|
||||
|
|
|
|||
|
|
@ -2,7 +2,10 @@ from __future__ import absolute_import
|
|||
|
||||
import unittest
|
||||
|
||||
import unittest.mock as mock
|
||||
try:
|
||||
import mock
|
||||
except ImportError:
|
||||
import unittest.mock as mock
|
||||
|
||||
import dockercloud
|
||||
from .fake_api import *
|
||||
|
|
|
|||
|
|
@ -2,7 +2,10 @@ from __future__ import absolute_import
|
|||
|
||||
import unittest
|
||||
|
||||
import unittest.mock as mock
|
||||
try:
|
||||
import mock
|
||||
except ImportError:
|
||||
import unittest.mock as mock
|
||||
|
||||
import dockercloud
|
||||
from .fake_api import *
|
||||
|
|
|
|||
|
|
@ -2,7 +2,10 @@ from __future__ import absolute_import
|
|||
|
||||
import unittest
|
||||
|
||||
import unittest.mock as mock
|
||||
try:
|
||||
import mock
|
||||
except ImportError:
|
||||
import unittest.mock as mock
|
||||
|
||||
import dockercloud
|
||||
from .fake_api import *
|
||||
|
|
|
|||
|
|
@ -2,7 +2,10 @@ from __future__ import absolute_import
|
|||
|
||||
import unittest
|
||||
|
||||
import unittest.mock as mock
|
||||
try:
|
||||
import mock
|
||||
except ImportError:
|
||||
import unittest.mock as mock
|
||||
|
||||
import dockercloud
|
||||
from .fake_api import *
|
||||
|
|
|
|||
|
|
@ -2,7 +2,10 @@ from __future__ import absolute_import
|
|||
|
||||
import unittest
|
||||
|
||||
import unittest.mock as mock
|
||||
try:
|
||||
import mock
|
||||
except ImportError:
|
||||
import unittest.mock as mock
|
||||
|
||||
import dockercloud
|
||||
from .fake_api import *
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
import unittest
|
||||
|
||||
import unittest.mock as mock
|
||||
try:
|
||||
import mock
|
||||
except ImportError:
|
||||
import unittest.mock as mock
|
||||
|
||||
import dockercloud
|
||||
from dockercloud.api.exceptions import ObjectNotFound, ApiError, NonUniqueIdentifier
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue