def test_click_done(self): view = self.make_view() CRYPTED = '<crypted>' with mock.patch('subiquity.ui.views.identity.crypt_password') as cp: cp.side_effect = lambda p: CRYPTED view_helpers.enter_data(view.form, valid_data) done_btn = view_helpers.find_button_matching(view, "^Done$") view_helpers.click(done_btn) expected = IdentityData( realname=valid_data['realname'], username=valid_data['username'], hostname=valid_data['hostname'], crypted_password=CRYPTED) view.controller.done.assert_called_once_with(expected)
def test_create_partition(self): valid_data = { 'size': "1M", 'fstype': "ext4", } model, disk = make_model_and_disk() view, stretchy = make_partition_view(model, disk) view_helpers.enter_data(stretchy.form, valid_data) view_helpers.click(stretchy.form.done_btn.base_widget) valid_data['mount'] = '/' valid_data['size'] = dehumanize_size(valid_data['size']) valid_data['use_swap'] = False view.controller.partition_disk_handler.assert_called_once_with( stretchy.disk, None, valid_data)
def test_click_done(self): # The ugliness of this test is probably an indication that the # view is doing too much... view = self.make_view() view_helpers.enter_data(view.form, valid_data) expected = valid_data.copy() expected['nameservers'] = [expected['nameservers']] expected['searchdomains'] = [expected['searchdomains']] expected['network'] = expected.pop('subnet') but = view_helpers.find_button_matching(view, "^Save$") view_helpers.click(but) view.dev.remove_ip_networks_for_version.assert_called_once_with(4) view.dev.remove_nameservers.assert_called_once_with() view.dev.add_network.assert_called_once_with(4, expected)
def test_edit_boot_partition(self): form_data = { 'size': "256M", } model, disk = make_model_and_disk() partition = model.add_partition(disk, 512 * (2**20), "boot") fs = model.add_filesystem(partition, "fat32") model.add_mount(fs, '/boot/efi') view, stretchy = make_view(model, disk, partition) view_helpers.enter_data(stretchy.form, form_data) view_helpers.click(stretchy.form.done_btn.base_widget) expected_data = { 'size': dehumanize_size(form_data['size']), 'fstype': FilesystemModel.fs_by_name["fat32"], 'mount': '/boot/efi', } view.controller.partition_disk_handler.assert_called_once_with( stretchy.disk, stretchy.partition, expected_data)
def test_create_vg(self): model, disk = make_model_and_disk() part1 = model.add_partition(disk, 10*(2**30)) part2 = model.add_partition(disk, 10*(2**30)) view, stretchy = make_view(model) form_data = { 'name': 'vg1', 'devices': {part1: 'active', part2: 'active'}, } expected_data = { 'name': 'vg1', 'devices': {part1, part2}, 'encrypt': False, } view_helpers.enter_data(stretchy.form, form_data) view_helpers.click(stretchy.form.done_btn.base_widget) view.controller.volgroup_handler.assert_called_once_with( None, expected_data)
def test_edit_partition(self): form_data = { 'size': "256M", 'fstype': FilesystemModel.fs_by_name['xfs'], } model, disk = make_model_and_disk() partition = model.add_partition(disk, 512 * (2**20)) model.add_filesystem(partition, "ext4") view, stretchy = make_view(model, disk, partition) self.assertTrue(stretchy.form.done_btn.enabled) view_helpers.enter_data(stretchy.form, form_data) view_helpers.click(stretchy.form.done_btn.base_widget) expected_data = { 'size': dehumanize_size(form_data['size']), 'fstype': FilesystemModel.fs_by_name['xfs'], 'mount': None, } view.controller.partition_disk_handler.assert_called_once_with( stretchy.disk, stretchy.partition, expected_data)
def test_edit_existing_partition(self): form_data = { 'fstype': "xfs", } model, disk = make_model_and_disk() partition = model.add_partition(disk, 512 * (2**20)) partition.preserve = True model.add_filesystem(partition, "ext4") view, stretchy = make_partition_view(model, disk, partition) self.assertFalse(stretchy.form.size.enabled) self.assertTrue(stretchy.form.done_btn.enabled) view_helpers.enter_data(stretchy.form, form_data) view_helpers.click(stretchy.form.done_btn.base_widget) expected_data = { 'fstype': 'xfs', 'mount': None, 'use_swap': False, } view.controller.partition_disk_handler.assert_called_once_with( stretchy.disk, stretchy.partition, expected_data)
def test_edit_raid(self): model, disk = make_model_and_disk() part1 = model.add_partition(disk, 10*(2**30)) part2 = model.add_partition(disk, 10*(2**30)) raid = model.add_raid("md0", "raid1", {part1, part2}, set()) view, stretchy = make_view(model, raid) form_data = { 'name': 'md1', 'level': raidlevels_by_value["raid0"], } expected_data = { 'name': 'md1', 'devices': {part1, part2}, 'spare_devices': set(), 'level': raidlevels_by_value["raid0"], } view_helpers.enter_data(stretchy.form, form_data) view_helpers.click(stretchy.form.done_btn.base_widget) view.controller.raid_handler.assert_called_once_with( raid, expected_data)
def test_create_raid(self): model, disk = make_model_and_disk() part1 = model.add_partition(disk, 10*(2**30)) part2 = model.add_partition(disk, 10*(2**30)) part3 = model.add_partition(disk, 10*(2**30)) view, stretchy = make_view(model) form_data = { 'name': 'md0', 'devices': {part1: 'active', part2: 'active', part3: 'spare'}, } expected_data = { 'name': 'md0', 'devices': {part1, part2}, 'spare_devices': {part3}, 'level': raidlevels_by_value["raid1"], } view_helpers.enter_data(stretchy.form, form_data) view_helpers.click(stretchy.form.done_btn.base_widget) view.controller.raid_handler.assert_called_once_with( None, expected_data)
def test_edit_existing_unused_boot_partition(self): model, disk = make_model_and_disk() partition = model.add_partition(disk, 512 * (2**20), "boot") fs = model.add_filesystem(partition, "fat32") model._orig_config = model._render_actions() disk.preserve = partition.preserve = fs.preserve = True view, stretchy = make_partition_view(model, disk, partition) self.assertTrue(stretchy.form.fstype.enabled) self.assertEqual(stretchy.form.fstype.value, None) self.assertFalse(stretchy.form.mount.enabled) self.assertEqual(stretchy.form.mount.value, None) view_helpers.click(stretchy.form.done_btn.base_widget) expected_data = { 'fstype': None, 'mount': None, 'use_swap': False, } view.controller.partition_disk_handler.assert_called_once_with( stretchy.disk, stretchy.partition, expected_data)
def test_click_delete_button(self): partition = Partition(size=50 * (2**20)) view = self.make_view(partition) but = view_helpers.find_button_matching(view, "Delete") view_helpers.click(but) view.controller.delete_partition.assert_called_once_with(partition)
def test_click_back(self): view = self.make_view() button = view_helpers.find_button_matching(view, "^Back$") view_helpers.click(button) view.controller.cancel.assert_called_once_with()
def test_click_manual(self): view = self.make_view() button = view_helpers.find_button_matching(view, "^Manual$") view_helpers.click(button) view.controller.manual.assert_called_once_with()
def test_click_guided(self): view = self.make_view() button = view_helpers.find_button_matching(view, "^Use An Entire Disk$") view_helpers.click(button) view.controller.guided.assert_called_once_with()