예제 #1
0
 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)
예제 #2
0
 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)
예제 #4
0
 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)
예제 #5
0
 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)
예제 #6
0
 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)
예제 #7
0
 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)
예제 #8
0
 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)
예제 #9
0
 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)
예제 #10
0
    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)
예제 #11
0
 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)
예제 #12
0
 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()
예제 #13
0
 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()
예제 #14
0
 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()