Esempio n. 1
0
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
Esempio n. 2
0
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'
Esempio n. 3
0
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
Esempio n. 4
0
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'
Esempio n. 5
0
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
Esempio n. 6
0
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
Esempio n. 7
0
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
Esempio n. 8
0
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
Esempio n. 9
0
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
Esempio n. 10
0
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
Esempio n. 11
0
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)
Esempio n. 12
0
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
Esempio n. 13
0
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