Example #1
0
    def test_activate(self, project):
        Project.deactivate()
        assert Project._default is None

        Project.activate(project)

        assert Project._default is project
        assert Project.find() is project
Example #2
0
    def test_activate(self, project):
        assert os.getenv("MELTANO_PROJECT") is None

        with open(".env", "w") as env:
            env.write(f"MELTANO_PROJECT={project.root}")

        # `Project.find()` always return the default instance
        Project.activate(project)
        assert os.getenv("MELTANO_PROJECT") == str(project.root)
        assert Project.find() is project
Example #3
0
def project(test_dir, project_init_service):
    project = project_init_service.init()
    logging.debug(f"Created new project at {project.root}")

    # empty out the `plugins`
    with project.meltano_update() as meltano:
        meltano["plugins"] = {}

    # not setting the project as default to limit
    # the side effect in tests
    Project.activate(project)

    # cd into the new project root
    os.chdir(project.root)

    yield project

    # clean-up
    Project._default = None
    os.chdir(test_dir)
    shutil.rmtree(project.root)
    logging.debug(f"Cleaned project at {project.root}")
Example #4
0
def deactivate_project(project):
    Project.deactivate()
    yield
    Project.activate(project)
Example #5
0
    def test_incompatible(self, project):
        with project.meltano_update() as meltano:
            meltano["version"] += 1

        with pytest.raises(IncompatibleVersionError):
            Project.activate(project)