def test_format_full_image_name_without_tag(): expected = "\x1b[4mpierone.example.org/team/image\x1b[0m" image_with_http = DockerImage("https://pierone.example.org", "team", "image", None) image_simple = DockerImage("pierone.example.org", "team", "image", None) assert format_full_image_name(image_with_http) == expected assert format_full_image_name(image_simple) == expected
def test_get_image_tag(monkeypatch): response = MagicMock() response.status_code = 200 response.json.return_value = [{ 'created': '2015-06-01T14:12:03.276+0000', 'created_by': 'foobar', 'name': '0.17' }, { 'created': '2015-06-11T16:13:29.152+0000', 'created_by': 'foobar', 'name': '0.22' }] monkeypatch.setattr('pierone.api.session.get', MagicMock(return_value=response)) image = DockerImage(registry='registry', team='foo', artifact='bar', tag='0.22') tag = get_image_tag(image) assert tag['team'] == 'foo' assert tag['artifact'] == 'bar' assert tag['tag'] == '0.22' assert tag['created_by'] == 'foobar' assert tag['severity_fix_available'] == 'TOO_OLD' assert tag['severity_no_fix_available'] == 'TOO_OLD'
def test_get_latest_tag_IOException(monkeypatch): response = MagicMock() response.status_code = 200 response.json.return_value = [{'created': '2015-06-01T14:12:03.276+0000', 'created_by': 'foobar', 'name': '0.17'}, {'created': '2015-06-11T15:27:34.672+0000', 'created_by': 'foobar', 'name': '0.18'}, {'created': '2015-06-11T16:13:29.152+0000', 'created_by': 'foobar', 'name': '0.22'}, {'created': '2015-06-11T15:36:55.033+0000', 'created_by': 'foobar', 'name': '0.19'}, {'created': '2015-06-11T15:45:50.225+0000', 'created_by': 'foobar', 'name': '0.20'}, {'created': '2015-06-11T15:51:49.307+0000', 'created_by': 'foobar', 'name': '0.21'}] monkeypatch.setattr('requests.get', MagicMock(side_effect=Exception(IOError), return_value=response)) monkeypatch.setattr('pierone.api.get_existing_token', MagicMock(return_value={'access_token': 'tok123'})) token_name = 'dummy' image = DockerImage(registry='registry', team='foo', artifact='bar', tag='latest') data = get_latest_tag(token_name, image) assert data is None
def test_get_latest_tag(monkeypatch): response = MagicMock() response.status_code = 200 response.json.return_value = [{'created': '2015-06-01T14:12:03.276+0000', 'created_by': 'foobar', 'name': '0.17'}, {'created': '2015-06-11T15:27:34.672+0000', 'created_by': 'foobar', 'name': '0.18'}, {'created': '2015-06-11T16:13:29.152+0000', 'created_by': 'foobar', 'name': '0.22'}, {'created': '2015-06-11T15:36:55.033+0000', 'created_by': 'foobar', 'name': '0.19'}, {'created': '2015-06-11T15:45:50.225+0000', 'created_by': 'foobar', 'name': '0.20'}, {'created': '2015-06-11T15:51:49.307+0000', 'created_by': 'foobar', 'name': '0.21'}] monkeypatch.setattr('pierone.api.session.get', MagicMock(return_value=response)) image = DockerImage(registry='registry', team='foo', artifact='bar', tag='latest') data = get_latest_tag(image) assert data == '0.22'
def test_get_latest_tag_IOException(monkeypatch): monkeypatch.setattr('pierone.api.session.get', MagicMock(side_effect=IOError)) image = DockerImage(registry='registry', team='foo', artifact='bar', tag='latest') try: get_latest_tag(image) assert False except IOError as e: pass # Expected
def test_image_not_exists(monkeypatch): response = MagicMock() response.status_code = 404 response.json.return_value = {} monkeypatch.setattr('pierone.api.session.get', MagicMock(return_value=response)) image = DockerImage(registry='registry', team='foo', artifact='bar', tag='latest') data = image_exists(image, 'tok123') assert data is False
def test_get_latest_tag_non_json(monkeypatch): response = MagicMock() response.status_code = 200 response.json.return_value = None monkeypatch.setattr('pierone.api.session.get', MagicMock(return_value=response)) image = DockerImage(registry='registry', team='foo', artifact='bar', tag='latest') data = get_latest_tag(image) assert data is None
def test_get_image_tag_that_does_not_exist(monkeypatch): response = MagicMock() response.status_code = 200 response.json.return_value = [{'created': '2015-06-01T14:12:03.276+0000', 'created_by': 'foobar', 'name': '0.17'}] monkeypatch.setattr('pierone.api.session.get', MagicMock(return_value=response)) image = DockerImage(registry='registry', team='foo', artifact='bar', tag='1.22') assert get_image_tag(image) is None
def test_image_exists_but_other_version(monkeypatch): response = MagicMock() response.status_code = 200 response.json.return_value = {'0.1': 'chksum', '0.2': 'chksum'} monkeypatch.setattr('pierone.api.session.get', MagicMock(return_value=response)) image = DockerImage(registry='registry', team='foo', artifact='bar', tag='latest') data = image_exists(image) assert data is False
def test_image_not_exists(monkeypatch): response = MagicMock() response.status_code = 404 response.json.return_value = {} monkeypatch.setattr('requests.get', MagicMock(return_value=response)) monkeypatch.setattr('pierone.api.get_existing_token', MagicMock(return_value={'access_token': 'tok123'})) token_name = 'dummy' image = DockerImage(registry='registry', team='foo', artifact='bar', tag='latest') data = image_exists(token_name, image) assert data is False
def test_unauthorized(monkeypatch): monkeypatch.setattr('pierone.api.get_existing_token', MagicMock(return_value=None)) token_name = 'dummy' image = DockerImage(registry='registry', team='foo', artifact='bar', tag='latest') with pytest.raises(Unauthorized) as excinfo: get_latest_tag(token_name, image) assert 'Unauthorized: token missing or invalid' in str(excinfo.value) with pytest.raises(Unauthorized) as excinfo: image_exists(token_name, image) assert 'Unauthorized: token missing or invalid' in str(excinfo.value)
def test_image_exists_IOException(monkeypatch): response = MagicMock() response.status_code = 200 response.json.return_value = {'0.1': 'chksum', '0.2': 'chksum'} monkeypatch.setattr('requests.get', MagicMock(side_effect=Exception(IOError), return_value=response)) monkeypatch.setattr('pierone.api.get_existing_token', MagicMock(return_value={'access_token': 'tok123'})) token_name = 'dummy' image = DockerImage(registry='registry', team='foo', artifact='bar', tag='0.2') data = image_exists(token_name, image) assert data is False
def test_image_exists_IOException(monkeypatch): response = MagicMock() response.status_code = 200 response.json.return_value = {'0.1': 'chksum', '0.2': 'chksum'} monkeypatch.setattr('pierone.api.session.get', MagicMock(side_effect=IOError(), return_value=response)) image = DockerImage(registry='registry', team='foo', artifact='bar', tag='0.2') try: image_exists(image) assert False except IOError as e: pass # Expected
def test_get_latest_tag_non_json(monkeypatch): response = MagicMock() response.status_code = 200 response.json.return_value = None monkeypatch.setattr('pierone.api.session.get', MagicMock(return_value=response)) monkeypatch.setattr('pierone.api.get_existing_token', MagicMock(return_value={'access_token': 'tok123'})) token_name = 'dummy' image = DockerImage(registry='registry', team='foo', artifact='bar', tag='latest') data = get_latest_tag(token_name, image) assert data is None