repo2docker/tests/unit/test_labels.py

50 wiersze
1.3 KiB
Python
Czysty Zwykły widok Historia

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()
assert 'LABEL' not in bp.render()
bp.labels['first_label'] = 'firstlabel'
assert 'LABEL first_label="firstlabel"\n' in bp.render()
bp.labels['second_label'] = 'anotherlabel'
assert 'LABEL second_label="anotherlabel"\n' in bp.render()
2018-12-13 23:12:09 +00:00
@pytest.mark.parametrize('ref, repo, expected_repo_label', [
(None, URL, URL),
('some-ref', None, 'local'),
(None, None, 'local'),
])
def test_Repo2Docker_labels(ref, repo, expected_repo_label, tmpdir):
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]
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 = {
2018-12-13 18:43:45 +00:00
'repo2docker.ref': ref,
2018-12-13 23:12:09 +00:00
'repo2docker.repo': expected_repo_label,
2018-12-13 04:05:35 +00:00
'repo2docker.version': __version__,
}
2018-12-13 22:40:39 +00:00
assert mock_buildpack().labels == expected_labels