def test_can_copy_directory(self, mock_close, mock_add):
class DummyGuest(Guest):
name = 'dummy'
guest = DummyGuest(FakeContainer())
guest.lxd_container.files.put.return_value = True
with tempfile.TemporaryDirectory() as d:
os.mkdir('{}/d1'.format(d))
os.mkdir('{}/d1/d2'.format(d))
with open('{}/d1/f1'.format(d), 'wb') as f1:
f1.write(b'dummy f1')
with open('{}/d1/d2/f2'.format(d), 'wb') as f2:
f2.write(b'dummy f2')
with open('{}/f3'.format(d), 'wb') as f3:
f3.write(b'dummy f3')
guest.copy_directory(pathlib.Path(d), pathlib.PurePosixPath('/a/b/c'))
assert mock_add.call_count == 1
assert mock_add.call_args[0][0] == str(pathlib.Path(d))
assert mock_add.call_args[1]['arcname'] == '.'
assert mock_close.call_count == 1
assert guest.lxd_container.execute.call_count == 4
assert guest.lxd_container.execute.call_args_list[0][0] == (['mkdir', '-p', '/a/b/c'], )
assert guest.lxd_container.execute.call_args_list[1][0] == ([
'mkdir', '-p', str(pathlib.PurePosixPath(guest._guest_temporary_tar_path).parent)], )
assert guest.lxd_container.execute.call_args_list[2][0] == ([
'tar', '-xf', guest._guest_temporary_tar_path, '-C', '/a/b/c'], )
assert guest.lxd_container.execute.call_args_list[3][0] == ([
'rm', '-f', guest._guest_temporary_tar_path], )
assert guest.lxd_container.files.put.call_count == 1
assert guest.lxd_container.files.put.call_args[0][0] == guest._guest_temporary_tar_path
评论列表
文章目录