#!/usr/bin/env bash # /**************************************************************************** # * # * Copyright (c) 2001 Novell, Inc. All Rights Reserved. # * # * This program is free software; you can redistribute it and/or # * modify it under the terms of version 2 of the GNU General Public License # * as published by the Free Software Foundation. # * # * This program is distributed in the hope that it will be useful, # * but WITHOUT ANY WARRANTY; without even the implied warranty of # * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # * GNU General Public License for more details. # * # * You should have received a copy of the GNU General Public License # * along with this program; if not, contact Novell, Inc. # * # * To contact Novell about this file by physical or electronic mail, you # * may find current contact information at www.novell.com. # * # ****************************************************************************/ set -euo pipefail temporary=$(mktemp -d "${TMPDIR:-/tmp}/bongo-python-runtime.XXXXXX") trap 'rm -rf -- "$temporary"' EXIT export PYTHONPYCACHEPREFIX="${temporary}/pycache" python3 -m compileall -q \ "$(python3 -c 'import sysconfig; print(sysconfig.get_path("purelib"))')/bongo" \ "$(python3 -c 'import sysconfig; print(sysconfig.get_path("purelib"))')/bongo_web" python3 - <<'PY' import io from bongo import table from bongo.Console import wrap from bongo.configuration.cli import main_admin, main_setup from bongo.configuration.spamassassin_update import main as sa_update_main from bongo.external.simpletal import simpleTAL, simpleTALES from bongo.external.simpletal.simpleElementTree import parseFile from bongo.storetool import BackupCommands, CalendarCommands, MailCommands assert callable(main_admin) assert callable(main_setup) assert callable(sa_update_main) assert isinstance(wrap("Grüße 世界", width=8), str) assert "Müller" in table.format_table(["Name"], [["Müller"]]) context = simpleTALES.Context() context.addGlobal("name", "A&B") template = simpleTAL.compileHTMLTemplate( '

placeholder

') output = io.StringIO() template.expand(context, output) assert output.getvalue() == "

A&B

" root = parseFile(io.StringIO("value")) assert root.find("child").text == "value" PY bongo-admin --help >"${temporary}/bongo-admin.help" bongo-storetool --help >"${temporary}/bongo-storetool.help" bongo-queuetool --help >"${temporary}/bongo-queuetool.help" bongo-web --help >"${temporary}/bongo-web.help" bongodirector --help >"${temporary}/bongodirector.help" /usr/libexec/bongo/bongo-sa-update --help \ >"${temporary}/bongo-sa-update.help" set +e /usr/libexec/bongo/bongo-acme-dns-provider \ --config "${temporary}/missing.json" --provider audit --type nsupdate \ --operation present --record _acme-challenge.example.test \ --value audit --ttl 60 >"${temporary}/bongo-acme.json" status=$? set -e test "${status}" -eq 1 grep -q '"ok":false' "${temporary}/bongo-acme.json" echo "PYTHON-3 PASS compileall=installed imports=config,storetool,template,xml cli=7"