docker_image = test_project_docker_image() if not IS_BUILDKITE: try: client = docker.from_env() client.images.get(docker_image) print( # pylint: disable=print-call "Found existing image tagged {image}, skipping image build. To rebuild, first run: " "docker rmi {image}".format(image=docker_image)) except docker.errors.ImageNotFound: build_and_tag_test_image(docker_image) return docker_image cluster_provider = define_cluster_provider_fixture() # See: https://stackoverflow.com/a/31526934/324449 def pytest_addoption(parser): # We catch the ValueError to support cases where we are loading multiple test suites, e.g., in # the VSCode test explorer. When pytest tries to add an option twice, we get, e.g. # # ValueError: option names {'--cluster-provider'} already added # Use kind or some other cluster provider? try: parser.addoption("--cluster-provider", action="store", default="kind") except ValueError: pass
from dagster_test.test_project import build_and_tag_test_image, test_project_docker_image IS_BUILDKITE = os.getenv('BUILDKITE') is not None @pytest.fixture(scope='session', autouse=True) def dagster_home(): old_env = os.getenv('DAGSTER_HOME') os.environ['DAGSTER_HOME'] = '/opt/dagster/dagster_home' yield if old_env is not None: os.environ['DAGSTER_HOME'] = old_env cluster_provider = define_cluster_provider_fixture(additional_kind_images=[ 'docker.io/bitnami/rabbitmq', 'docker.io/bitnami/postgresql' ]) @pytest.fixture(scope='session') def run_launcher(cluster_provider, helm_namespace): # pylint: disable=redefined-outer-name,unused-argument return K8sRunLauncher( image_pull_secrets=[{ 'name': 'element-dev-key' }], service_account_name='dagit-admin', instance_config_map='dagster-instance', postgres_password_secret='dagster-postgresql-secret', dagster_home='/opt/dagster/dagster_home', job_image=test_project_docker_image(),