repo2docker/tests/unit/test_buildpack.py

49 wiersze
1.5 KiB
Python

from os.path import join as pjoin
from tempfile import TemporaryDirectory
import pytest
from repo2docker.buildpacks import LegacyBinderDockerBuildPack, PythonBuildPack
from repo2docker.utils import chdir
def test_legacy_raises():
# check legacy buildpack raises on a repo that triggers it
with TemporaryDirectory() as repodir:
with open(pjoin(repodir, "Dockerfile"), "w") as d:
d.write("FROM andrewosh/binder-base")
with chdir(repodir):
bp = LegacyBinderDockerBuildPack()
with pytest.raises(RuntimeError):
bp.detect()
def test_legacy_doesnt_detect():
# check legacy buildpack doesn't trigger
with TemporaryDirectory() as repodir:
with open(pjoin(repodir, "Dockerfile"), "w") as d:
d.write("FROM andrewosh/some-image")
with chdir(repodir):
bp = LegacyBinderDockerBuildPack()
assert not bp.detect()
def test_legacy_on_repo_without_dockerfile():
# check legacy buildpack doesn't trigger on a repo w/o Dockerfile
with TemporaryDirectory() as repodir:
with chdir(repodir):
bp = LegacyBinderDockerBuildPack()
assert not bp.detect()
@pytest.mark.parametrize("python_version", ["2.6", "3.0", "4.10", "3.99"])
def test_unsupported_python(tmpdir, python_version):
tmpdir.chdir()
bp = PythonBuildPack()
bp._python_version = python_version
assert bp.python_version == python_version
with pytest.raises(ValueError):
bp.render()