2018-12-13 04:05:35 +00:00
|
|
|
"""
|
|
|
|
Test if labels are supplied correctly to the container
|
|
|
|
"""
|
|
|
|
from repo2docker.app import Repo2Docker
|
2018-12-13 19:34:57 +00:00
|
|
|
from repo2docker.buildpacks import BuildPack
|
2018-12-13 04:05:35 +00:00
|
|
|
from repo2docker import __version__
|
|
|
|
import pytest
|
2018-12-13 23:12:09 +00:00
|
|
|
from unittest.mock import Mock
|
|
|
|
|
|
|
|
|
|
|
|
URL = "https://github.com/binderhub-ci-repos/repo2docker-ci-clone-depth"
|
2018-12-13 04:05:35 +00:00
|
|
|
|
|
|
|
|
2018-12-13 19:34:57 +00:00
|
|
|
def test_buildpack_labels_rendered():
|
|
|
|
bp = BuildPack()
|
2019-05-31 09:10:17 +00:00
|
|
|
assert "LABEL" not in bp.render()
|
|
|
|
bp.labels["first_label"] = "firstlabel"
|
2018-12-13 19:34:57 +00:00
|
|
|
assert 'LABEL first_label="firstlabel"\n' in bp.render()
|
2019-05-31 09:10:17 +00:00
|
|
|
bp.labels["second_label"] = "anotherlabel"
|
2018-12-13 19:34:57 +00:00
|
|
|
assert 'LABEL second_label="anotherlabel"\n' in bp.render()
|
|
|
|
|
|
|
|
|
2019-05-31 09:10:17 +00:00
|
|
|
@pytest.mark.parametrize(
|
|
|
|
"ref, repo, expected_repo_label",
|
|
|
|
[(None, URL, URL), ("some-ref", None, "local"), (None, None, "local")],
|
|
|
|
)
|
2018-12-13 23:12:09 +00:00
|
|
|
def test_Repo2Docker_labels(ref, repo, expected_repo_label, tmpdir):
|
2018-12-17 12:11:45 +00:00
|
|
|
app = Repo2Docker(dry_run=True)
|
2018-12-13 22:40:39 +00:00
|
|
|
# Add mock BuildPack to app
|
|
|
|
mock_buildpack = Mock()
|
|
|
|
mock_buildpack.return_value.labels = {}
|
|
|
|
app.buildpacks = [mock_buildpack]
|
|
|
|
|
2018-12-17 12:11:45 +00:00
|
|
|
if repo is None:
|
|
|
|
repo = str(tmpdir)
|
|
|
|
app.repo = repo
|
|
|
|
if ref is not None:
|
|
|
|
app.ref = ref
|
|
|
|
|
|
|
|
app.initialize()
|
2018-12-13 18:43:45 +00:00
|
|
|
app.start()
|
2018-12-13 04:05:35 +00:00
|
|
|
expected_labels = {
|
2019-05-31 09:10:17 +00:00
|
|
|
"repo2docker.ref": ref,
|
|
|
|
"repo2docker.repo": expected_repo_label,
|
|
|
|
"repo2docker.version": __version__,
|
2018-12-13 04:05:35 +00:00
|
|
|
}
|
|
|
|
|
2018-12-13 22:40:39 +00:00
|
|
|
assert mock_buildpack().labels == expected_labels
|