@@ -165,11 +165,14 @@ def default_resource(
165
165
root_dataset : libzfs .ZFSDataset ,
166
166
zfs : libzfs .ZFS ,
167
167
) -> 'libioc.Resource.DefaultResource' :
168
- return libioc .Resource .DefaultResource (
168
+ default_resource = libioc .Resource .DefaultResource (
169
169
dataset = root_dataset ,
170
170
logger = logger ,
171
171
zfs = zfs
172
172
)
173
+ yield default_resource
174
+ if os .path .isfile (default_resource .config_handler .file ):
175
+ os .remove (default_resource .config_handler .file )
173
176
174
177
def test_default_config_path (
175
178
self ,
@@ -225,6 +228,28 @@ def test_fail_to_read_unknown_property(
225
228
default_resource .config ["user.valid-property" ] = "ok"
226
229
assert default_resource .config .data ["user.valid-property" ] == "ok"
227
230
231
+ def test_can_set_default_config (
232
+ self ,
233
+ default_resource : 'libioc.Resource.DefaultResource'
234
+ ) -> None :
235
+ defaults_config_path = default_resource .config_handler .file
236
+
237
+ default_resource .config .set ("vnet" , True );
238
+ default_resource .save ()
239
+ with open (defaults_config_path , "r" , encoding = "UTF-8" ) as f :
240
+ data = json .load (f )
241
+ assert data ["vnet" ] == "yes"
242
+ assert len (data .keys ()) == 1
243
+
244
+ default_resource .config .set ("user.comment" , "hi there!" );
245
+ default_resource .save ()
246
+ with open (defaults_config_path , "r" , encoding = "UTF-8" ) as f :
247
+ data = json .load (f )
248
+ assert "user" in data .keys ()
249
+ assert "comment" in data ["user" ].keys ()
250
+ assert data ["user" ]["comment" ] == "hi there!"
251
+ assert len (data .keys ()) == 2
252
+
228
253
229
254
class TestBrokenConfig (object ):
230
255
"""Test the behavior of jails with invalid config."""
0 commit comments