summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/unittests/test_handler/test_handler_apt_configure_sources_list.py49
1 files changed, 44 insertions, 5 deletions
diff --git a/tests/unittests/test_handler/test_handler_apt_configure_sources_list.py b/tests/unittests/test_handler/test_handler_apt_configure_sources_list.py
index 5255c5b9..8777d2a9 100644
--- a/tests/unittests/test_handler/test_handler_apt_configure_sources_list.py
+++ b/tests/unittests/test_handler/test_handler_apt_configure_sources_list.py
@@ -26,6 +26,24 @@ from .. import helpers as t_help
LOG = logging.getLogger(__name__)
+YAML_TEXT_CUSTOM_SL = """
+apt_mirror: http://archive.ubuntu.com/ubuntu/
+apt_custom_sources_list: |
+ ## template:jinja
+ ## Note, this file is written by cloud-init on first boot of an instance
+ ## modifications made here will not survive a re-bundle.
+ ## if you wish to make changes you can:
+ ## a.) add 'apt_preserve_sources_list: true' to /etc/cloud/cloud.cfg
+ ## or do the same in user-data
+ ## b.) add sources in /etc/apt/sources.list.d
+ ## c.) make changes to template file /etc/cloud/templates/sources.list.tmpl
+
+ # See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
+ # newer versions of the distribution.
+ deb {{mirror}} {{codename}} main restricted
+ deb-src {{mirror}} {{codename}} main restricted
+ # FIND_SOMETHING_SPECIAL
+"""
def load_tfile_or_url(*args, **kwargs):
""" load_tfile_or_url
@@ -53,11 +71,6 @@ class TestAptSourceConfigSourceList(t_help.FilesystemMockingTestCase):
myds.metadata.update(metadata)
return cloud.Cloud(myds, paths, {}, mydist, None)
-# TODO - Ubuntu template
-# TODO - Debian template
-# TODO Later - custom template filename
-# TODO Later - custom template raw
-
def apt_source_list(self, distro, mirror, mirrorcheck=None):
""" apt_source_list
Test rendering of a source.list from template for a given distro
@@ -124,4 +137,30 @@ class TestAptSourceConfigSourceList(t_help.FilesystemMockingTestCase):
'http://archive.ubuntu.com/ubuntu/')
+ def test_apt_srcl_custom(self):
+ """ test_apt_srcl_custom
+ Test rendering from a custom source.list template
+ """
+ self.patchOS(self.new_root)
+ self.patchUtils(self.new_root)
+
+ cfg = util.load_yaml(YAML_TEXT_CUSTOM_SL)
+ mycloud = self._get_cloud('ubuntu')
+ mirrorcheck = 'http://archive.ubuntu.com/ubuntu/'
+
+ with mock.patch.object(templater, 'render_to_file') as mocktmpl:
+ with mock.patch.object(os.path, 'isfile',
+ return_value=True) as mockisfile:
+ cc_apt_configure.handle("notimportant", cfg, mycloud,
+ LOG, None)
+
+ mockisfile.assert_any_call(('/etc/cloud/templates/sources.list.ubuntu.tmpl'))
+ mocktmpl.assert_called_once_with(('/etc/cloud/templates/sources.list.ubuntu.tmpl'),
+ '/etc/apt/sources.list',
+ {'codename': '',
+ 'primary':
+ mirrorcheck,
+ 'mirror':
+ mirrorcheck})
+
# vi: ts=4 expandtab