# This file is part of cloud-init. See LICENSE file for license information. import os from cloudinit.util import find_freebsd_part, get_path_dev_freebsd from tests.unittests.helpers import CiTestCase, mock class TestDeviceLookUp(CiTestCase): @mock.patch("cloudinit.subp.subp") def test_find_freebsd_part_label(self, mock_subp): glabel_out = """ gptid/fa52d426-c337-11e6-8911-00155d4c5e47 N/A da0p1 label/rootfs N/A da0p2 label/swap N/A da0p3 """ mock_subp.return_value = (glabel_out, "") res = find_freebsd_part("/dev/label/rootfs") self.assertEqual("da0p2", res) @mock.patch("cloudinit.subp.subp") def test_find_freebsd_part_gpt(self, mock_subp): glabel_out = """ gpt/bootfs N/A vtbd0p1 gptid/3f4cbe26-75da-11e8-a8f2-002590ec6166 N/A vtbd0p1 gpt/swapfs N/A vtbd0p2 gpt/rootfs N/A vtbd0p3 iso9660/cidata N/A vtbd2 """ mock_subp.return_value = (glabel_out, "") res = find_freebsd_part("/dev/gpt/rootfs") self.assertEqual("vtbd0p3", res) def test_get_path_dev_freebsd_label(self): mnt_list = """ /dev/label/rootfs / ufs rw 1 1 devfs /dev devfs rw,multilabel 0 0 fdescfs /dev/fd fdescfs rw 0 0 /dev/da1s1 /mnt/resource ufs rw 2 2 """ with mock.patch.object(os.path, "exists", return_value=True): res = get_path_dev_freebsd("/etc", mnt_list) self.assertIsNotNone(res)