def test_create_public_key(self, pwnam, isfile, chown): fake_user = MagicMock() fake_user.pw_uid = 3133 pwnam.return_value = fake_user create_cmd = ['ssh-keygen', '-y', '-f', '/home/foo/.ssh/id_rsa'] def _ensure_perms(): chown.assert_called_with('/home/foo/.ssh/id_rsa.pub', 3133, -1) isfile.return_value = True unison.create_public_key(user='******', priv_key_path='/home/foo/.ssh/id_rsa', pub_key_path='/home/foo/.ssh/id_rsa.pub') self.assertNotIn(call(create_cmd), self.check_output.call_args_list) _ensure_perms() isfile.return_value = False with patch_open() as (_open, _file): self.check_output.return_value = b'fookey' unison.create_public_key(user='******', priv_key_path='/home/foo/.ssh/id_rsa', pub_key_path='/home/foo/.ssh/id_rsa.pub') self.assertIn(call(create_cmd), self.check_output.call_args_list) _ensure_perms() _open.assert_called_with('/home/foo/.ssh/id_rsa.pub', 'wb') _file.write.assert_called_with(b'fookey')
def generate_ssh_key(): status_set("maintenance", "generating ssh key") user = "******" folder = "/home/%s/.ssh" % user mkdir(folder, owner=user, group=user, perms=0o775) private_path = "%s/id_rsa" % folder public_path = "%s.pub" % private_path create_private_key(user, private_path) create_public_key(user, private_path, public_path)
def test_create_public_key(self, isfile): create_cmd = ['ssh-keygen', '-y', '-f', '/home/foo/.ssh/id_rsa'] isfile.return_value = True unison.create_public_key(user='******', priv_key_path='/home/foo/.ssh/id_rsa', pub_key_path='/home/foo/.ssh/id_rsa.pub') self.assertNotIn(call(create_cmd), self.check_output.call_args_list) isfile.return_value = False with patch_open() as (_open, _file): self.check_output.return_value = b'fookey' unison.create_public_key(user='******', priv_key_path='/home/foo/.ssh/id_rsa', pub_key_path='/home/foo/.ssh/id_rsa.pub') self.assertIn(call(create_cmd), self.check_output.call_args_list) _open.assert_called_with('/home/foo/.ssh/id_rsa.pub', 'wb') _file.write.assert_called_with(b'fookey')