repo2docker/tests/unit/test_buildpack.py

49 wiersze
1.5 KiB
Python
Czysty Zwykły widok Historia

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()