mirror of https://github.com/zulip/zulip.git
tools: Verify that all integrations have bot avatars.
This commit is contained in:
parent
18ae06404b
commit
d5f5a99b07
|
@ -21,6 +21,7 @@ set -x
|
||||||
|
|
||||||
./tools/test-migrations
|
./tools/test-migrations
|
||||||
./tools/setup/optimize-svg
|
./tools/setup/optimize-svg
|
||||||
|
./tools/setup/generate_integration_bots_avatars.py --check-missing
|
||||||
# In CI, we only test links we control in test-documentation to avoid flakes
|
# In CI, we only test links we control in test-documentation to avoid flakes
|
||||||
./tools/test-documentation --skip-external-links
|
./tools/test-documentation --skip-external-links
|
||||||
./tools/test-help-documentation --skip-external-links
|
./tools/test-help-documentation --skip-external-links
|
||||||
|
|
|
@ -14,7 +14,9 @@ import django
|
||||||
|
|
||||||
django.setup()
|
django.setup()
|
||||||
|
|
||||||
|
import argparse
|
||||||
import io
|
import io
|
||||||
|
|
||||||
import cairosvg
|
import cairosvg
|
||||||
from PIL import Image
|
from PIL import Image
|
||||||
|
|
||||||
|
@ -53,12 +55,27 @@ def create_integration_bot_avatar(logo_path: str) -> None:
|
||||||
with open(bot_avatar_path, 'wb') as f:
|
with open(bot_avatar_path, 'wb') as f:
|
||||||
f.write(avatar)
|
f.write(avatar)
|
||||||
|
|
||||||
def generate_integration_bots_avatars() -> None:
|
def generate_integration_bots_avatars(check_missing: bool=False) -> None:
|
||||||
|
missing = set()
|
||||||
for webhook in WEBHOOK_INTEGRATIONS:
|
for webhook in WEBHOOK_INTEGRATIONS:
|
||||||
logo_path = webhook.get_logo_path()
|
logo_path = webhook.get_logo_path()
|
||||||
if not logo_path:
|
if not logo_path:
|
||||||
continue
|
continue
|
||||||
|
if check_missing:
|
||||||
|
bot_avatar_path = static_path(webhook.DEFAULT_BOT_AVATAR_PATH.format(name=webhook.name))
|
||||||
|
if not os.path.isfile(bot_avatar_path):
|
||||||
|
missing.add(webhook.name)
|
||||||
|
else:
|
||||||
create_integration_bot_avatar(static_path(logo_path))
|
create_integration_bot_avatar(static_path(logo_path))
|
||||||
|
|
||||||
|
if missing:
|
||||||
|
print('Bot avatars are missing for these webhooks: {}.\n'
|
||||||
|
'Run ./tools/setup/generate_integration_bots_avatars.py '
|
||||||
|
'to generate them.'.format(', '.join(missing)))
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
generate_integration_bots_avatars()
|
parser = argparse.ArgumentParser()
|
||||||
|
parser.add_argument('--check-missing', action='store_true')
|
||||||
|
options = parser.parse_args()
|
||||||
|
generate_integration_bots_avatars(options.check_missing)
|
||||||
|
|
|
@ -45,6 +45,8 @@ run ./tools/test-backend --include-webhooks $FORCEARG
|
||||||
run ./tools/test-migrations
|
run ./tools/test-migrations
|
||||||
# Not running SVG optimizing since it's low-churn
|
# Not running SVG optimizing since it's low-churn
|
||||||
# run ./tools/setup/optimize-svg
|
# run ./tools/setup/optimize-svg
|
||||||
|
# Not running missing bot avatar detection since it's low churn
|
||||||
|
# ./tools/setup/generate_integration_bots_avatars.py --check-missing
|
||||||
# Not running documentation tests since it takes 20s and only tests documentation
|
# Not running documentation tests since it takes 20s and only tests documentation
|
||||||
# run ./tools/test-documentation
|
# run ./tools/test-documentation
|
||||||
run ./tools/test-help-documentation $FORCEARG
|
run ./tools/test-help-documentation $FORCEARG
|
||||||
|
|
Loading…
Reference in New Issue