Improvements to unit tests; prepared for new Network model
This commit is contained in:
parent
cfe9d1acdb
commit
c195bb5d68
@ -8,8 +8,9 @@
|
||||
"description": "Essex release description",
|
||||
"networks_metadata": [
|
||||
{"name": "floating", "access": "public"},
|
||||
{"name": "fixed", "access": "private"},
|
||||
{"name": "admin", "access": "private"}
|
||||
{"name": "fixed", "access": "private10"},
|
||||
{"name": "management", "access": "private172"},
|
||||
{"name": "storage", "access": "private192"}
|
||||
]
|
||||
}
|
||||
},
|
||||
@ -158,15 +159,15 @@
|
||||
"vlan_id": 300,
|
||||
"address": "172.18.0.2"
|
||||
},
|
||||
"admin": {
|
||||
"access": "private",
|
||||
"management": {
|
||||
"access": "private172",
|
||||
"device": "eth0",
|
||||
"netmask": "255.255.255.0",
|
||||
"vlan_id": 100,
|
||||
"address": "10.0.0.2"
|
||||
},
|
||||
"storage": {
|
||||
"access": "private",
|
||||
"access": "private192",
|
||||
"device": "eth0",
|
||||
"netmask": "255.255.255.0",
|
||||
"vlan_id": 200,
|
||||
|
@ -4,6 +4,13 @@ DATABASE_PATH = 'nailgun.sqlite'
|
||||
DATABASE_ENGINE = 'sqlite:///%s' % DATABASE_PATH
|
||||
|
||||
NETWORK_POOLS = {
|
||||
'public': ['172.18.0.0/16'],
|
||||
'private': ['10.1.0.0/16']
|
||||
'public': ['240.0.0.0/24'], # reserved
|
||||
# private nets according to RFC-5735
|
||||
'private10': ['10.0.0.0/8'],
|
||||
'private172': ['172.16.0.0/12'],
|
||||
'private192': ['192.168.0.0/16']
|
||||
}
|
||||
|
||||
NET_EXCLUDE = ['10.20.0.0/24']
|
||||
|
||||
VLANS = range(100, 1000)
|
||||
|
@ -62,6 +62,14 @@ class BaseHandlers(TestCase):
|
||||
release = Release()
|
||||
release.version = randint(0, 100000000)
|
||||
release.name = u"release_name_" + str(release.version)
|
||||
release.description = u"release_desc" + str(release.version)
|
||||
release.networks_metadata = [
|
||||
{"name": "floating", "access": "public"},
|
||||
{"name": "fixed", "access": "private10"},
|
||||
{"name": "storage", "access": "private192"},
|
||||
{"name": "management", "access": "private172"},
|
||||
{"name": "other_172", "access": "private172"}
|
||||
]
|
||||
self.db.add(release)
|
||||
self.db.commit()
|
||||
return release
|
||||
|
@ -25,3 +25,18 @@ class TestHandlers(BaseHandlers):
|
||||
self.assertEquals(200, resp.status)
|
||||
response = json.loads(resp.body)
|
||||
self.assertEquals(100, len(response))
|
||||
|
||||
def test_cluster_create(self):
|
||||
release_id = self.create_default_release().id
|
||||
resp = self.app.post(
|
||||
reverse('ClusterCollectionHandler'),
|
||||
json.dumps({
|
||||
'name': 'cluster-name',
|
||||
'release': release_id,
|
||||
}),
|
||||
headers=self.default_headers
|
||||
)
|
||||
self.assertEquals(201, resp.status)
|
||||
|
||||
#def test_if_cluster_creates_correct_networks(self):
|
||||
#pass
|
||||
|
@ -1,24 +1,12 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
import unittest
|
||||
import json
|
||||
from paste.fixture import TestApp
|
||||
from api.models import Release
|
||||
|
||||
from base import BaseHandlers
|
||||
from base import reverse
|
||||
|
||||
|
||||
class TestHandlers(BaseHandlers):
|
||||
def test_release_creation(self):
|
||||
resp = self.app.post(
|
||||
'/api/releases',
|
||||
params=json.dumps({
|
||||
'name': 'Another test release',
|
||||
'version': '1.0'
|
||||
}),
|
||||
headers=self.default_headers
|
||||
)
|
||||
self.assertEquals(resp.status, 201)
|
||||
|
||||
def test_all_api_urls_404_or_405(self):
|
||||
urls = {
|
||||
'ClusterHandler': {'cluster_id': 1},
|
||||
@ -36,79 +24,3 @@ class TestHandlers(BaseHandlers):
|
||||
self.assertTrue(resp.status in [404, 405])
|
||||
resp = self.app.post(test_url, expect_errors=True)
|
||||
self.assertTrue(resp.status in [404, 405])
|
||||
|
||||
def test_release_create(self):
|
||||
release_name = "OpenStack"
|
||||
release_version = "1.0.0"
|
||||
release_description = "This is test release"
|
||||
resp = self.app.post(
|
||||
reverse('ReleaseCollectionHandler'),
|
||||
json.dumps({
|
||||
'name': release_name,
|
||||
'version': release_version,
|
||||
'description': release_description,
|
||||
'networks_metadata': [
|
||||
{"name": "floating", "access": "public"},
|
||||
{"name": "fixed", "access": "private"},
|
||||
{"name": "storage", "access": "private"}
|
||||
]
|
||||
}),
|
||||
headers=self.default_headers
|
||||
)
|
||||
self.assertEquals(resp.status, 201)
|
||||
|
||||
resp = self.app.post(
|
||||
reverse('ReleaseCollectionHandler'),
|
||||
json.dumps({
|
||||
'name': release_name,
|
||||
'version': release_version,
|
||||
'description': release_description,
|
||||
'networks_metadata': [
|
||||
{"name": "fixed", "access": "private"}
|
||||
]
|
||||
}),
|
||||
headers=self.default_headers,
|
||||
expect_errors=True
|
||||
)
|
||||
self.assertEquals(resp.status, 409)
|
||||
|
||||
release_from_db = self.db.query(Release).filter(
|
||||
Release.name == release_name,
|
||||
Release.version == release_version,
|
||||
Release.description == release_description
|
||||
).all()
|
||||
self.assertEquals(len(release_from_db), 1)
|
||||
|
||||
@unittest.skip("obsolete")
|
||||
def test_network_create(self):
|
||||
network_data = {
|
||||
"name": "test_network",
|
||||
"network": "10.0.0.0/24",
|
||||
"range_l": "10.0.0.5",
|
||||
"range_h": "10.0.0.10",
|
||||
"gateway": "10.0.0.1",
|
||||
"vlan_id": 100,
|
||||
"release": 1,
|
||||
"access": "public"
|
||||
}
|
||||
resp = self.app.post(
|
||||
reverse('NetworkCollectionHandler'),
|
||||
json.dumps(network_data),
|
||||
headers=self.default_headers
|
||||
)
|
||||
self.assertEquals(resp.status, 201)
|
||||
resp = self.app.post(
|
||||
reverse('NetworkCollectionHandler'),
|
||||
json.dumps(network_data),
|
||||
headers=self.default_headers,
|
||||
expect_errors=True
|
||||
)
|
||||
self.assertEquals(resp.status, 409)
|
||||
network_data["network"] = "test_fail"
|
||||
resp = self.app.post(
|
||||
reverse('NetworkCollectionHandler'),
|
||||
json.dumps(network_data),
|
||||
headers=self.default_headers,
|
||||
expect_errors=True
|
||||
)
|
||||
self.assertEqual(resp.status, 400)
|
||||
|
@ -1,6 +1,8 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
import json
|
||||
from paste.fixture import TestApp
|
||||
|
||||
from api.models import Release
|
||||
from base import BaseHandlers
|
||||
from base import reverse
|
||||
|
||||
@ -25,3 +27,97 @@ class TestHandlers(BaseHandlers):
|
||||
self.assertEquals(200, resp.status)
|
||||
response = json.loads(resp.body)
|
||||
self.assertEquals(100, len(response))
|
||||
|
||||
def test_release_creation(self):
|
||||
resp = self.app.post(
|
||||
'/api/releases',
|
||||
params=json.dumps({
|
||||
'name': 'Another test release',
|
||||
'version': '1.0'
|
||||
}),
|
||||
headers=self.default_headers
|
||||
)
|
||||
self.assertEquals(resp.status, 201)
|
||||
|
||||
def test_release_create(self):
|
||||
release_name = "OpenStack"
|
||||
release_version = "1.0.0"
|
||||
release_description = "This is test release"
|
||||
resp = self.app.post(
|
||||
reverse('ReleaseCollectionHandler'),
|
||||
json.dumps({
|
||||
'name': release_name,
|
||||
'version': release_version,
|
||||
'description': release_description,
|
||||
'networks_metadata': [
|
||||
{"name": "floating", "access": "public"},
|
||||
{"name": "fixed", "access": "private10"},
|
||||
{"name": "storage", "access": "private192"}
|
||||
]
|
||||
}),
|
||||
headers=self.default_headers
|
||||
)
|
||||
self.assertEquals(resp.status, 201)
|
||||
|
||||
resp = self.app.post(
|
||||
reverse('ReleaseCollectionHandler'),
|
||||
json.dumps({
|
||||
'name': release_name,
|
||||
'version': release_version,
|
||||
'description': release_description,
|
||||
'networks_metadata': [
|
||||
{"name": "fixed", "access": "private10"}
|
||||
]
|
||||
}),
|
||||
headers=self.default_headers,
|
||||
expect_errors=True
|
||||
)
|
||||
self.assertEquals(resp.status, 409)
|
||||
|
||||
release_from_db = self.db.query(Release).filter(
|
||||
Release.name == release_name,
|
||||
Release.version == release_version,
|
||||
Release.description == release_description
|
||||
).all()
|
||||
self.assertEquals(len(release_from_db), 1)
|
||||
|
||||
def test_release_create_already_exist(self):
|
||||
release_name = "OpenStack"
|
||||
release_version = "1.0.0"
|
||||
release_description = "This is test release"
|
||||
resp = self.app.post(
|
||||
reverse('ReleaseCollectionHandler'),
|
||||
json.dumps({
|
||||
'name': release_name,
|
||||
'version': release_version,
|
||||
'description': release_description,
|
||||
'networks_metadata': [
|
||||
{"name": "floating", "access": "public"},
|
||||
{"name": "fixed", "access": "private10"},
|
||||
{"name": "storage", "access": "private192"}
|
||||
]
|
||||
}),
|
||||
headers=self.default_headers
|
||||
)
|
||||
self.assertEquals(resp.status, 201)
|
||||
|
||||
resp = self.app.post(
|
||||
reverse('ReleaseCollectionHandler'),
|
||||
json.dumps({
|
||||
'name': release_name,
|
||||
'version': release_version,
|
||||
'description': release_description,
|
||||
'networks_metadata': [
|
||||
{"name": "fixed", "access": "private10"}
|
||||
]
|
||||
}),
|
||||
headers=self.default_headers,
|
||||
expect_errors=True
|
||||
)
|
||||
self.assertEquals(resp.status, 409)
|
||||
|
||||
release_from_db = self.db.query(Release).filter(
|
||||
Release.name == release_name,
|
||||
Release.version == release_version,
|
||||
Release.description == release_description
|
||||
).one()
|
||||
|
@ -46,55 +46,3 @@ class TestHandlers(BaseHandlers):
|
||||
)
|
||||
self.assertEquals(204, resp.status)
|
||||
self.assertEquals('', resp.body)
|
||||
|
||||
def test_release_create(self):
|
||||
resp = self.app.post(
|
||||
reverse('ReleaseCollectionHandler'),
|
||||
params=json.dumps({
|
||||
'name': 'Another test release',
|
||||
'version': '1.0'
|
||||
}),
|
||||
headers=self.default_headers
|
||||
)
|
||||
self.assertEquals(resp.status, 201)
|
||||
|
||||
def test_release_create_already_exist(self):
|
||||
release_name = "OpenStack"
|
||||
release_version = "1.0.0"
|
||||
release_description = "This is test release"
|
||||
resp = self.app.post(
|
||||
reverse('ReleaseCollectionHandler'),
|
||||
json.dumps({
|
||||
'name': release_name,
|
||||
'version': release_version,
|
||||
'description': release_description,
|
||||
'networks_metadata': [
|
||||
{"name": "floating", "access": "public"},
|
||||
{"name": "fixed", "access": "private"},
|
||||
{"name": "storage", "access": "private"}
|
||||
]
|
||||
}),
|
||||
headers=self.default_headers
|
||||
)
|
||||
self.assertEquals(resp.status, 201)
|
||||
|
||||
resp = self.app.post(
|
||||
reverse('ReleaseCollectionHandler'),
|
||||
json.dumps({
|
||||
'name': release_name,
|
||||
'version': release_version,
|
||||
'description': release_description,
|
||||
'networks_metadata': [
|
||||
{"name": "fixed", "access": "private"}
|
||||
]
|
||||
}),
|
||||
headers=self.default_headers,
|
||||
expect_errors=True
|
||||
)
|
||||
self.assertEquals(resp.status, 409)
|
||||
|
||||
release_from_db = self.db.query(Release).filter(
|
||||
Release.name == release_name,
|
||||
Release.version == release_version,
|
||||
Release.description == release_description
|
||||
).one()
|
||||
|
Loading…
Reference in New Issue
Block a user