def is_docker_image_valid(self): # type: () -> bool docker_image_validator = DockerImageValidator(self.file_path, is_modified_file=True, is_integration=True) if not docker_image_validator.is_docker_image_valid(): return True self.is_valid = False return False
def test_parse_docker_image(): assert 'demisto/python', '1.3-alpine' == DockerImageValidator.parse_docker_image( 'demisto/python:1.3-alpine') assert 'demisto/slack', '1.2.3.4' == DockerImageValidator.parse_docker_image( 'demisto/slack:1.2.3.4') assert 'demisto/python', '' == DockerImageValidator.parse_docker_image( 'demisto/python/1.2.3.4') assert ('', '') == DockerImageValidator.parse_docker_image('blah/blah:1.2.3.4')
def test_get_docker_image_from_yml(): with patch.object(DockerImageValidator, '__init__', lambda x, y, z, w: None): # Test integration case docker_validator = DockerImageValidator(None, None, None) docker_validator.yml_file = get_yaml(TEST_INTEGRATION_FILE) docker_validator.is_integration = True docker_image = docker_validator.get_docker_image_from_yml() assert docker_image == "demisto/pyjwt:1.0" # Test script case docker_validator.yml_file = get_yaml(TEST_SCRIPT_FILE) docker_validator.is_integration = False docker_image = docker_validator.get_docker_image_from_yml() assert docker_image == "demisto/stix2:1.0.0.204"
def test_get_docker_image_latest_tag(image): tag = DockerImageValidator.get_docker_image_latest_tag( 'demisto/' + image, '') # current latest tag is 2.7.16.2728 or 3.7.2.2728 disable-secrets-detection assert int(tag.split('.')[3]) >= 2728
def test_is_docker_image_latest_tag(): with patch.object(DockerImageValidator, '__init__', lambda x, y, z, w: None): docker_image_validator = DockerImageValidator(None, None, None) docker_image_validator.yml_file = {} docker_image_validator.docker_image_latest_tag = 'latest_tag' docker_image_validator.docker_image_name = 'demisto/python' docker_image_validator.from_version = '5.0.0' # ===== Added File Tests ===== # default docker image docker_image_validator.is_latest_tag = True docker_image_validator.is_modified_file = False docker_image_validator.docker_image_tag = '1.3-alpine' assert docker_image_validator.is_docker_image_latest_tag() is False # regular docker image, not latest tag docker_image_validator.is_latest_tag = True docker_image_validator.docker_image_tag = 'not_latest_tag' assert docker_image_validator.is_docker_image_latest_tag() is False # regular docker image, latest tag docker_image_validator.is_latest_tag = True docker_image_validator.docker_image_tag = 'latest_tag' assert docker_image_validator.is_docker_image_latest_tag() is True # ===== Modified File Tests ===== # from version 4.1.0 docker_image_validator.is_latest_tag = True docker_image_validator.is_modified_file = True docker_image_validator.from_version = '4.1.0' assert docker_image_validator.is_docker_image_latest_tag() is True # from version 5.0.0 - regular docker image, latest tag docker_image_validator.is_latest_tag = True docker_image_validator.from_version = '5.0.0' assert docker_image_validator.is_docker_image_latest_tag() is True # from version 5.0.0 - regular docker image, not latest tag docker_image_validator.is_latest_tag = True docker_image_validator.from_version = '5.0.0' docker_image_validator.docker_image_tag = 'not_latest_tag' assert docker_image_validator.is_docker_image_latest_tag() is False # from version 5.0.0 - default docker image docker_image_validator.is_latest_tag = True docker_image_validator.docker_image_tag = '1.3-alpine' assert docker_image_validator.is_docker_image_latest_tag() is True
def test_clear_non_numbered_tags(input_tags, output_tags): assert sorted(output_tags) == sorted( DockerImageValidator.clear_non_numbered_tags(input_tags))
def test_parse_www_auth(www_auth, expected): assert expected == DockerImageValidator.parse_www_auth(www_auth)
def test_find_latest_tag_by_date(): tag = DockerImageValidator.find_latest_tag_by_date(MOCK_TAG_LIST) assert tag == "1.0.0.2876"
def test_lexical_find_latest_tag(): tag_list = ["2.0.2000", "2.1.2700", "2.1.373", "latest"] tag = DockerImageValidator.lexical_find_latest_tag(tag_list) assert tag == "2.1.2700"