def test_method_validation_root_dockerfile(root_image): """Uploading two images in a tar archive should fail.""" method = MethodFactory(image__from_path=root_image) assert method.ready is False validate_docker_image( pk=method.pk, app_label=method._meta.app_label, model_name=method._meta.model_name, ) method = Method.objects.get(pk=method.pk) assert method.ready is False assert "runs as root" in method.status
def test_method_validation_not_a_docker_tar(submission_file): """Upload something that isn't a docker file should be invalid.""" method = MethodFactory(image__from_path=submission_file) assert method.ready is False validate_docker_image( pk=method.pk, app_label=method._meta.app_label, model_name=method._meta.model_name, ) method = Method.objects.get(pk=method.pk) assert method.ready is False assert "manifest.json not found" in method.status
def test_method_validation_invalid_dockerfile(alpine_images): """Uploading two images in a tar archive should fail.""" method = MethodFactory(image__from_path=alpine_images) assert method.ready is False validate_docker_image( pk=method.pk, app_label=method._meta.app_label, model_name=method._meta.model_name, ) method = Method.objects.get(pk=method.pk) assert method.ready is False assert "should only have 1 image" in method.status
def test_method_validation(evaluation_image): """The validator should set the correct sha256 and set the ready bit.""" container, sha256 = evaluation_image method = MethodFactory(image__from_path=container) # The method factory fakes the sha256 on creation assert method.image_sha256 != sha256 assert method.ready is False validate_docker_image( pk=method.pk, app_label=method._meta.app_label, model_name=method._meta.model_name, ) method = Method.objects.get(pk=method.pk) assert method.image_sha256 == sha256 assert method.ready is True