diff --git a/tests/test_skyreach.py b/tests/test_skyreach.py new file mode 100755 index 0000000000000000000000000000000000000000..0e9a9f4b02645d0aaee4e3347a7d476890f1837c --- /dev/null +++ b/tests/test_skyreach.py @@ -0,0 +1,53 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +''' +Check that the skyreach server is reachable. +''' +import os +import re +import requests +import sys + + +# SkyReach APT file test +apt_source = '/etc/apt/sources.list.d/skyreach.list' +if not os.path.exists(apt_source): + print('The file "%s" does not exists.' % apt_source) + sys.exit(1) + +with open(apt_source, 'r') as fo: + content = fo.read() + +# content hould be something like: +# # skyreach repo +# deb https://panel.ubicast.eu packaging/apt/s0000000000000000000000000000000/ + +expected = r'^deb (http[s]{0,1}://[A-Za-z0-9\.\-\_]+) packaging/apt/([A-Za-z0-9]+)/$' +url = None +api_key = None +if content: + for line in content.split('\n'): + m = re.match(expected, line) + if m: + url, api_key = m.groups() + +if not url or not api_key: + print('The file "%s" is not correct: skyreach url not found.' % apt_source) + sys.exit(1) +print('SkyReach url is %s and API key is %s.' % (url, api_key)) + +# Test SkyReach responses +req = requests.get(url) +if not req.ok: + print('Request to %s failed (%s):' % (url, req.status_code)) + print(req.text) +else: + print('Request to %s: OK.' % url) + +apt_url = '%s/packaging/apt/%s/Packages' % (url, api_key) +req = requests.get(apt_url) +if not req.ok: + print('Request to %s failed (%s):' % (apt_url, req.status_code)) + print(req.text) +else: + print('Request to %s: OK.' % apt_url)