56 lines
2.1 KiB
Python
56 lines
2.1 KiB
Python
|
import os
|
||
|
import sys
|
||
|
from urllib import request
|
||
|
from urllib.error import HTTPError
|
||
|
|
||
|
import pytest
|
||
|
import toml
|
||
|
|
||
|
import check_docker as module
|
||
|
from check_docker import check_swarm, check_docker
|
||
|
|
||
|
|
||
|
def test_versions_match():
|
||
|
assert check_docker.__version__ == check_swarm.__version__
|
||
|
|
||
|
|
||
|
def test_module_version_matches():
|
||
|
assert module.__version__ == check_docker.__version__
|
||
|
|
||
|
|
||
|
def test_project_version_matches():
|
||
|
project_config = toml.load("pyproject.toml")
|
||
|
project_version = project_config['tool']['poetry']['version']
|
||
|
|
||
|
assert project_version == check_docker.__version__
|
||
|
|
||
|
|
||
|
@pytest.mark.skipif('isolated' in os.environ and os.environ['isolated'].lower != 'false',
|
||
|
reason="Can not reach Python packge index when isolated")
|
||
|
@pytest.mark.skipif(sys.version_info[0:2] != (3, 8), reason="Only check on python 3.8, not {}".
|
||
|
format(sys.version_info[0:2]))
|
||
|
def test_package_present():
|
||
|
req = request.Request("https://pypi.org/project/check_docker/", method="HEAD")
|
||
|
with request.urlopen(req) as resp:
|
||
|
assert resp.getcode() == 200
|
||
|
|
||
|
|
||
|
@pytest.mark.xfail('TRAVIS_BRANCH' in os.environ and os.environ['TRAVIS_BRANCH'].lower != 'master',
|
||
|
reason="Ignore version check outside of master")
|
||
|
@pytest.mark.xfail('GITHUB_HEAD_REF' in os.environ and os.environ['GITHUB_HEAD_REF'].lower != 'master',
|
||
|
reason="Ignore version check outside of master")
|
||
|
@pytest.mark.skipif('isolated' in os.environ and os.environ['isolated'].lower != 'false',
|
||
|
reason="Can not reach Python package index when isolated")
|
||
|
@pytest.mark.skipif(sys.version_info[0:2] != (3, 8), reason="Only check on python 3.8")
|
||
|
def test_ensure_new_version():
|
||
|
version = check_docker.__version__
|
||
|
req = request.Request("https://pypi.org/project/check_docker/{version}/".
|
||
|
format(version=version), method="HEAD")
|
||
|
|
||
|
try:
|
||
|
with request.urlopen(req) as resp:
|
||
|
http_code = resp.getcode()
|
||
|
except HTTPError as e:
|
||
|
http_code = e.code
|
||
|
assert http_code == 404, "Version already exists. Ignore this if you are working on a PR"
|