HEX
Server: Apache/2.4.46 (Win64) OpenSSL/1.1.1j PHP/8.4.25
System: Windows NT DESKTOP-4TAV2RJ 10.0 build 19045 (Windows 10) AMD64
User: fred (0)
PHP: 8.4.25
Disabled: NONE
Upload Files
File: C:/Users/fred/anaconda3/Lib/site-packages/anaconda_project/test/test_docker.py
# -*- coding: utf-8 -*-
# -----------------------------------------------------------------------------
# Copyright (c) 2021, Anaconda, Inc. All rights reserved.
#
# Licensed under the terms of the BSD 3-Clause License.
# The full license is in the file LICENSE.txt, distributed with this software.
# -----------------------------------------------------------------------------
from __future__ import absolute_import, print_function

import subprocess

from anaconda_project.docker import build_image

try:
    FileNotFoundError  # noqa
except NameError:
    # python 2
    FileNotFoundError = OSError


def test_build_image_pass(monkeypatch):
    def mock_check_call(*args, **kwargs):
        return

    monkeypatch.setattr('subprocess.check_call', mock_check_call)

    status = build_image('.', 'tag', 'default')
    assert status


def test_build_image_extra_args(monkeypatch):
    def mock_check_call(*args, **kwargs):
        return

    monkeypatch.setattr('subprocess.check_call', mock_check_call)

    status = build_image('.', 'tag', 'default', build_args={'-f': 'Dockerfile'})
    assert status


def test_build_image_failed(monkeypatch):
    def mock_check_call(*args, **kwargs):
        raise subprocess.CalledProcessError(1, 's2i', 'failed to build')

    monkeypatch.setattr('subprocess.check_call', mock_check_call)

    status = build_image('.', 'tag', 'default')
    assert len(status.errors) == 1


def test_build_image_not_found(monkeypatch):
    def mock_check_call(*args, **kwargs):
        raise FileNotFoundError

    monkeypatch.setattr('subprocess.check_call', mock_check_call)

    status = build_image('.', 'tag', 'default')
    assert len(status.errors) == 1