Scott Moser has proposed merging ~smoser/cloud-init:fix/freebsd-test-failure 
into cloud-init:master.

Requested reviews:
  cloud-init commiters (cloud-init-dev)

For more details, see:
https://code.launchpad.net/~smoser/cloud-init/+git/cloud-init/+merge/325771
-- 
Your team cloud-init commiters is requested to review the proposed merge of 
~smoser/cloud-init:fix/freebsd-test-failure into cloud-init:master.
diff --git a/cloudinit/sources/DataSourceAzure.py b/cloudinit/sources/DataSourceAzure.py
index ebb53d0..e5514ad 100644
--- a/cloudinit/sources/DataSourceAzure.py
+++ b/cloudinit/sources/DataSourceAzure.py
@@ -803,18 +803,22 @@ def encrypt_pass(password, salt_id="$6$"):
     return crypt.crypt(password, salt_id + util.rand_str(strlen=16))
 
 
+def _check_freebsd_cdrom(cdrom_dev):
+    """Return boolean indicating path to cdrom device has content."""
+    try:
+        with open(cdrom_dev) as fp:
+            fp.read(1024)
+            devlist.append(cdrom_dev)
+    except IOError:
+        LOG.debug("cdrom (%s) is not configured", cdrom_dev)
+
+
 def list_possible_azure_ds_devs():
     devlist = []
     if util.is_FreeBSD():
-        # add '/dev/cd0' to devlist if it is configured
-        # here wants to test whether '/dev/cd0' is available
         cdrom_dev = "/dev/cd0"
-        try:
-            with open(cdrom_dev) as fp:
-                fp.read(1024)
-                devlist.append(cdrom_dev)
-        except IOError:
-            LOG.debug("cdrom (%s) is not configured", cdrom_dev)
+        if _check_freebsd_cdrom(cdrom_dev):
+            return [cdrom_dev]
     else:
         for fstype in ("iso9660", "udf"):
             devlist.extend(util.find_devs_with("TYPE=%s" % fstype))
diff --git a/tests/unittests/test_datasource/test_azure.py b/tests/unittests/test_datasource/test_azure.py
index 114b1a5..8ee07d7 100644
--- a/tests/unittests/test_datasource/test_azure.py
+++ b/tests/unittests/test_datasource/test_azure.py
@@ -544,14 +544,16 @@ fdescfs            /dev/fd          fdescfs rw              0 0
         ds.get_data()
         self.assertEqual(self.instance_id, ds.metadata['instance-id'])
 
-    def test_list_possible_azure_ds_devs(self):
+    @patch("cloudinit.sources.DataSourceAzure.util.is_FreeBSD")
+    @patch("cloudinit.sources.DataSourceAzure._check_freebsd_cdrom")
+    def test_list_possible_azure_ds_devs(self, m_check_fbsd_cdrom,
+                                         m_is_FreeBSD):
         devlist = []
-        with patch('platform.platform',
-                   mock.MagicMock(return_value="FreeBSD")):
-            name = 'builtins.open' if PY3 else '__builtin__.open'
-            with patch(name, mock_open(read_data="data")):
-                devlist.extend(dsaz.list_possible_azure_ds_devs())
-                self.assertEqual(devlist, ['/dev/cd0'])
+        m_is_FreeBSD.return_value = True
+        m_check_fbsd_cdrom.return_value = True
+        self.assertEqual(dsaz.list_possible_azure_ds_devs(), ['/dev/cd0'])
+        self.assertEqual(
+            [mock.call("/dev/cd0")], m_check_fbsd_cdrom.call_args_list)
 
 
 class TestAzureBounce(TestCase):
_______________________________________________
Mailing list: https://launchpad.net/~cloud-init-dev
Post to     : cloud-init-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~cloud-init-dev
More help   : https://help.launchpad.net/ListHelp

Reply via email to