Get this test working again.

This commit is contained in:
Joshua Harlow 2012-06-21 17:54:53 -07:00
parent f60d2e26aa
commit 052605c0f1

View File

@ -1,14 +1,11 @@
from tempfile import mkdtemp
from shutil import rmtree
import os import os
from StringIO import StringIO from StringIO import StringIO
from copy import copy from copy import copy
from cloudinit.DataSourceMAAS import (
MAASSeedDirNone, from cloudinit import util
MAASSeedDirMalformed, from cloudinit import url_helper
read_maas_seed_dir, from cloudinit.sources import DataSourceMAAS
read_maas_seed_url,
)
from mocker import MockerTestCase from mocker import MockerTestCase
@ -17,12 +14,7 @@ class TestMAASDataSource(MockerTestCase):
def setUp(self): def setUp(self):
super(TestMAASDataSource, self).setUp() super(TestMAASDataSource, self).setUp()
# Make a temp directoy for tests to use. # Make a temp directoy for tests to use.
self.tmp = mkdtemp(prefix="unittest_") self.tmp = self.makeDir()
def tearDown(self):
super(TestMAASDataSource, self).tearDown()
# Clean up temp directory
rmtree(self.tmp)
def test_seed_dir_valid(self): def test_seed_dir_valid(self):
"""Verify a valid seeddir is read as such""" """Verify a valid seeddir is read as such"""
@ -35,7 +27,7 @@ class TestMAASDataSource(MockerTestCase):
my_d = os.path.join(self.tmp, "valid") my_d = os.path.join(self.tmp, "valid")
populate_dir(my_d, data) populate_dir(my_d, data)
(userdata, metadata) = read_maas_seed_dir(my_d) (userdata, metadata) = DataSourceMAAS.read_maas_seed_dir(my_d)
self.assertEqual(userdata, data['user-data']) self.assertEqual(userdata, data['user-data'])
for key in ('instance-id', 'local-hostname'): for key in ('instance-id', 'local-hostname'):
@ -54,7 +46,7 @@ class TestMAASDataSource(MockerTestCase):
my_d = os.path.join(self.tmp, "valid_extra") my_d = os.path.join(self.tmp, "valid_extra")
populate_dir(my_d, data) populate_dir(my_d, data)
(userdata, metadata) = read_maas_seed_dir(my_d) (userdata, metadata) = DataSourceMAAS.read_maas_seed_dir(my_d)
self.assertEqual(userdata, data['user-data']) self.assertEqual(userdata, data['user-data'])
for key in ('instance-id', 'local-hostname'): for key in ('instance-id', 'local-hostname'):
@ -76,24 +68,28 @@ class TestMAASDataSource(MockerTestCase):
invalid_data = copy(valid) invalid_data = copy(valid)
del invalid_data['local-hostname'] del invalid_data['local-hostname']
populate_dir(my_d, invalid_data) populate_dir(my_d, invalid_data)
self.assertRaises(MAASSeedDirMalformed, read_maas_seed_dir, my_d) self.assertRaises(DataSourceMAAS.MAASSeedDirMalformed,
DataSourceMAAS.read_maas_seed_dir, my_d)
# missing 'instance-id' # missing 'instance-id'
my_d = "%s-02" % my_based my_d = "%s-02" % my_based
invalid_data = copy(valid) invalid_data = copy(valid)
del invalid_data['instance-id'] del invalid_data['instance-id']
populate_dir(my_d, invalid_data) populate_dir(my_d, invalid_data)
self.assertRaises(MAASSeedDirMalformed, read_maas_seed_dir, my_d) self.assertRaises(DataSourceMAAS.MAASSeedDirMalformed,
DataSourceMAAS.read_maas_seed_dir, my_d)
def test_seed_dir_none(self): def test_seed_dir_none(self):
"""Verify that empty seed_dir raises MAASSeedDirNone""" """Verify that empty seed_dir raises MAASSeedDirNone"""
my_d = os.path.join(self.tmp, "valid_empty") my_d = os.path.join(self.tmp, "valid_empty")
self.assertRaises(MAASSeedDirNone, read_maas_seed_dir, my_d) self.assertRaises(DataSourceMAAS.MAASSeedDirNone,
DataSourceMAAS.read_maas_seed_dir, my_d)
def test_seed_dir_missing(self): def test_seed_dir_missing(self):
"""Verify that missing seed_dir raises MAASSeedDirNone""" """Verify that missing seed_dir raises MAASSeedDirNone"""
self.assertRaises(MAASSeedDirNone, read_maas_seed_dir, self.assertRaises(DataSourceMAAS.MAASSeedDirNone,
DataSourceMAAS.read_maas_seed_dir,
os.path.join(self.tmp, "nonexistantdirectory")) os.path.join(self.tmp, "nonexistantdirectory"))
def test_seed_url_valid(self): def test_seed_url_valid(self):
@ -102,30 +98,30 @@ class TestMAASDataSource(MockerTestCase):
'meta-data/local-hostname': 'test-hostname', 'meta-data/local-hostname': 'test-hostname',
'meta-data/public-keys': 'test-hostname', 'meta-data/public-keys': 'test-hostname',
'user-data': 'foodata'} 'user-data': 'foodata'}
valid_order = [
'meta-data/local-hostname',
'meta-data/instance-id',
'meta-data/public-keys',
'user-data',
]
my_seed = "http://example.com/xmeta" my_seed = "http://example.com/xmeta"
my_ver = "1999-99-99" my_ver = "1999-99-99"
my_headers = {'header1': 'value1', 'header2': 'value2'} my_headers = {'header1': 'value1', 'header2': 'value2'}
def my_headers_cb(url): def my_headers_cb(url):
return(my_headers) return my_headers
mock_request = self.mocker.replace("urllib2.Request", mock_request = self.mocker.replace(url_helper.readurl,
passthrough=False)
mock_urlopen = self.mocker.replace("urllib2.urlopen",
passthrough=False) passthrough=False)
for (key, val) in valid.iteritems(): for key in valid_order:
mock_request("%s/%s/%s" % (my_seed, my_ver, key), url = "%s/%s/%s" % (my_seed, my_ver, key)
data=None, headers=my_headers) mock_request(url, headers=my_headers, timeout=None)
self.mocker.nospec() resp = valid.get(key)
self.mocker.result("fake-request-%s" % key) self.mocker.result(url_helper.UrlResponse(200, resp))
mock_urlopen("fake-request-%s" % key, timeout=None)
self.mocker.result(StringIO(val))
self.mocker.replay() self.mocker.replay()
(userdata, metadata) = read_maas_seed_url(my_seed, (userdata, metadata) = DataSourceMAAS.read_maas_seed_url(my_seed,
header_cb=my_headers_cb, version=my_ver) header_cb=my_headers_cb, version=my_ver)
self.assertEqual("foodata", userdata) self.assertEqual("foodata", userdata)