diff options
Diffstat (limited to 'tests/unittests/sources')
-rw-r--r-- | tests/unittests/sources/test_azure.py | 41 |
1 files changed, 39 insertions, 2 deletions
diff --git a/tests/unittests/sources/test_azure.py b/tests/unittests/sources/test_azure.py index df1c289b..02083184 100644 --- a/tests/unittests/sources/test_azure.py +++ b/tests/unittests/sources/test_azure.py @@ -784,7 +784,13 @@ scbus-1 on xpt0 bus 0 return dsaz def _get_ds( - self, data, distro="ubuntu", apply_network=None, instance_id=None + self, + data, + distro="ubuntu", + apply_network=None, + instance_id=None, + write_ovf_to_data_dir: bool = False, + write_ovf_to_seed_dir: bool = True, ): def _wait_for_files(flist, _maxwait=None, _naplen=None): data["waited"] = flist @@ -798,9 +804,12 @@ scbus-1 on xpt0 bus 0 yield cache_dir seed_dir = os.path.join(self.paths.seed_dir, "azure") - if data.get("ovfcontent") is not None: + if write_ovf_to_seed_dir and data.get("ovfcontent") is not None: populate_dir(seed_dir, {"ovf-env.xml": data["ovfcontent"]}) + if write_ovf_to_data_dir and data.get("ovfcontent") is not None: + populate_dir(self.waagent_d, {"ovf-env.xml": data["ovfcontent"]}) + dsaz.BUILTIN_DS_CONFIG["data_dir"] = self.waagent_d self.m_is_platform_viable = mock.MagicMock(autospec=True) @@ -1006,6 +1015,34 @@ scbus-1 on xpt0 bus 0 "seed-dir (%s/seed/azure)" % self.tmp, dsrc.subplatform ) + def test_data_dir_without_imds_data(self): + odata = {"HostName": "myhost", "UserName": "myuser"} + data = { + "ovfcontent": construct_valid_ovf_env(data=odata), + "sys_cfg": {}, + } + dsrc = self._get_ds( + data, write_ovf_to_data_dir=True, write_ovf_to_seed_dir=False + ) + + self.m_get_metadata_from_imds.return_value = {} + with mock.patch(MOCKPATH + "util.mount_cb") as m_mount_cb: + m_mount_cb.side_effect = [ + MountFailedError("fail"), + ({"local-hostname": "me"}, "ud", {"cfg": ""}, {}), + ] + ret = dsrc.get_data() + + self.assertTrue(ret) + self.assertEqual(dsrc.userdata_raw, "") + self.assertEqual(dsrc.metadata["local-hostname"], odata["HostName"]) + self.assertTrue( + os.path.isfile(os.path.join(self.waagent_d, "ovf-env.xml")) + ) + self.assertEqual("azure", dsrc.cloud_name) + self.assertEqual("azure", dsrc.platform_type) + self.assertEqual("seed-dir (%s)" % self.waagent_d, dsrc.subplatform) + def test_basic_dev_file(self): """When a device path is used, present that in subplatform.""" data = {"sys_cfg": {}, "dsdevs": ["/dev/cd0"]} |