kopia lustrzana https://github.com/jupyterhub/repo2docker
53 wiersze
1.4 KiB
Python
53 wiersze
1.4 KiB
Python
"""
|
|
Test if labels are supplied correctly to the container
|
|
"""
|
|
from repo2docker.app import Repo2Docker
|
|
from repo2docker.buildpacks import BuildPack
|
|
from repo2docker import __version__
|
|
import pytest
|
|
from unittest.mock import Mock
|
|
|
|
|
|
URL = "https://github.com/binderhub-ci-repos/repo2docker-ci-clone-depth"
|
|
|
|
|
|
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()
|
|
|
|
|
|
@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):
|
|
if repo is None:
|
|
repo = str(tmpdir)
|
|
if ref is not None:
|
|
argv = ['--ref', ref, repo]
|
|
else:
|
|
argv = [repo]
|
|
|
|
app = Repo2Docker()
|
|
# Add mock BuildPack to app
|
|
mock_buildpack = Mock()
|
|
mock_buildpack.return_value.labels = {}
|
|
app.buildpacks = [mock_buildpack]
|
|
|
|
app.initialize(argv)
|
|
app.build = False
|
|
app.run = False
|
|
app.start()
|
|
expected_labels = {
|
|
'repo2docker.ref': ref,
|
|
'repo2docker.repo': expected_repo_label,
|
|
'repo2docker.version': __version__,
|
|
}
|
|
|
|
assert mock_buildpack().labels == expected_labels
|