def test_writes_content_to_a_file(self, os_, log, getgrnam, getpwnam):
# Curly brackets here demonstrate that we are *not* rendering
# these strings with Python's string formatting. This is a
# change from the original behavior per Bug #1195634.
uid = 123
gid = 234
owner = 'some-user-{foo}'
group = 'some-group-{bar}'
path = '/some/path/{baz}'
contents = b'what is {juju}'
perms = 0o644
fileno = 'some-fileno'
getpwnam.return_value.pw_uid = uid
getgrnam.return_value.gr_gid = gid
with patch_open() as (mock_open, mock_file):
mock_file.fileno.return_value = fileno
host.write_file(path, contents, owner=owner, group=group,
perms=perms)
getpwnam.assert_called_with('some-user-{foo}')
getgrnam.assert_called_with('some-group-{bar}')
mock_open.assert_called_with('/some/path/{baz}', 'wb')
os_.fchown.assert_called_with(fileno, uid, gid)
os_.fchmod.assert_called_with(fileno, perms)
mock_file.write.assert_called_with(b'what is {juju}')
评论列表
文章目录