Skip to content

Commit 8fa7ddf

Browse files
committed
Add handler for internal feature
For: QubesOS/qubes-issues#1512
1 parent 9acc13c commit 8fa7ddf

File tree

2 files changed

+190
-106
lines changed

2 files changed

+190
-106
lines changed

qubes_menu/tests/test_vmmanager.py

Lines changed: 63 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -28,67 +28,91 @@
2828
def test_vm_manager(test_qapp):
2929
dispatcher = qubesadmin.events.EventsDispatcher(test_qapp)
3030
vm_manager = VMManager(test_qapp, dispatcher)
31+
vm_name = "test-vm"
32+
template_name = "fedora-36"
3133

32-
entry_test = vm_manager.load_vm_from_name('test-vm')
34+
entry_test = vm_manager.load_vm_from_name(vm_name)
3335
assert entry_test
34-
assert entry_test.vm_name == 'test-vm'
35-
assert entry_test.vm_icon_name == 'appvm-green'
36-
entry_template = vm_manager.load_vm_from_name('fedora-36')
36+
assert entry_test.vm_name == vm_name
37+
assert entry_test.vm_icon_name == "appvm-green"
38+
entry_template = vm_manager.load_vm_from_name(template_name)
3739
assert entry_template
3840
assert not entry_template.has_network
41+
assert not entry_template.internal
3942
assert not entry_test.is_dispvm_template
4043
assert not entry_test.service_vm
44+
assert not entry_test.internal
4145

42-
test_qapp._qubes['fedora-36'].properties['netvm'] = \
43-
Property('sys-firewall', 'vm', False)
44-
test_qapp._qubes['fedora-36'].update_calls()
46+
test_qapp._qubes["fedora-36"].properties["netvm"] = \
47+
Property("sys-firewall", "vm", False)
48+
test_qapp._qubes["fedora-36"].update_calls()
4549

46-
vm_manager._update_domain_property('fedora-36',
47-
'property-set:netvm', name='netvm',
48-
newvalue='sys-firewall',
50+
vm_manager._update_domain_property("fedora-36",
51+
"property-set:netvm", name="netvm",
52+
newvalue="sys-firewall",
4953
oldvalue=None)
5054
assert entry_template.has_network
5155

52-
test_qapp._qubes['test-vm'].properties['label'] = \
53-
Property('red', 'label', False)
54-
test_qapp._qubes['test-vm'].properties['icon'] = \
55-
Property('appvm-red', 'str', False)
56-
test_qapp._qubes['test-vm'].update_calls()
57-
58-
vm_manager._update_domain_property('test-vm',
59-
'property-set:label', name='label',
60-
newvalue='red',
61-
oldvalue='blue')
62-
assert entry_test.vm_icon_name == 'appvm-red'
63-
64-
test_qapp._qubes['test-vm'].properties['template_for_dispvms'] = \
65-
Property('True', 'bool', False)
66-
test_qapp._qubes['test-vm'].update_calls()
67-
68-
vm_manager._update_domain_property('test-vm',
69-
'property-set:template_for_dispvms',
70-
name='template_for_dispvms',
56+
test_qapp._qubes[vm_name].properties["label"] = \
57+
Property("red", "label", False)
58+
test_qapp._qubes[vm_name].properties["icon"] = \
59+
Property("appvm-red", "str", False)
60+
test_qapp._qubes[vm_name].update_calls()
61+
vm_manager._update_domain_property(vm_name,
62+
"property-set:label", name="label",
63+
newvalue="red",
64+
oldvalue="blue")
65+
assert entry_test.vm_icon_name == "appvm-red"
66+
67+
test_qapp._qubes[vm_name].properties["template_for_dispvms"] = \
68+
Property("True", "bool", False)
69+
test_qapp._qubes[vm_name].update_calls()
70+
vm_manager._update_domain_property(vm_name,
71+
"property-set:template_for_dispvms",
72+
name="template_for_dispvms",
7173
newvalue=True)
7274
assert entry_test.is_dispvm_template
7375

74-
test_qapp._qubes['test-vm'].features['servicevm'] = 1
75-
test_qapp._qubes['test-vm'].update_calls()
76-
77-
vm_manager._update_domain_feature('test-vm',
78-
'feature-set:servicevm',
79-
feature='servicevm',
76+
test_qapp._qubes[vm_name].features["servicevm"] = 1
77+
test_qapp._qubes[vm_name].update_calls()
78+
vm_manager._update_domain_feature(vm_name,
79+
"feature-set:servicevm",
80+
feature="servicevm",
8081
value=1)
8182
assert entry_test.service_vm
8283

84+
test_qapp._qubes[vm_name].features["internal"] = 1
85+
test_qapp._qubes[vm_name].update_calls()
86+
vm_manager._update_domain_feature(vm_name,
87+
"feature-set:internal",
88+
feature="internal",
89+
value=1)
90+
assert entry_test.internal
91+
92+
del test_qapp._qubes[vm_name].features["internal"]
93+
test_qapp._qubes[vm_name].update_calls()
94+
vm_manager._update_domain_feature(vm_name,
95+
"feature-delete:internal",
96+
feature="internal")
97+
assert not entry_test.internal
98+
99+
test_qapp._qubes[template_name].features["internal"] = 1
100+
test_qapp._qubes[vm_name].update_calls()
101+
vm_manager._update_domain_feature(vm_name,
102+
"feature-set:internal",
103+
feature="internal",
104+
value=1)
105+
assert entry_test.internal
106+
83107

84108
def test_filter(test_qapp):
85109
dispatcher = qubesadmin.events.EventsDispatcher(test_qapp)
86110
vm_manager = VMManager(test_qapp, dispatcher)
87111

88-
entry_test = vm_manager.load_vm_from_name('test-vm')
89-
entry_template = vm_manager.load_vm_from_name('fedora-36')
90-
entry_service = vm_manager.load_vm_from_name('sys-net')
91-
entry_dvm_template = vm_manager.load_vm_from_name('default-dvm')
112+
entry_test = vm_manager.load_vm_from_name("test-vm")
113+
entry_template = vm_manager.load_vm_from_name("fedora-36")
114+
entry_service = vm_manager.load_vm_from_name("sys-net")
115+
entry_dvm_template = vm_manager.load_vm_from_name("default-dvm")
92116
assert entry_test
93117
assert entry_template
94118
assert entry_service

0 commit comments

Comments
 (0)