Ejemplo n.º 1
0
    def test_deploy_schedule_cloudrun(self, monkeypatch):
        monkeypatch.setenv("GOOGLE_PROJECT", "goblet")
        monkeypatch.setenv("GOOGLE_LOCATION", "us-central1")
        monkeypatch.setenv("GOBLET_TEST_NAME", "schedule-deploy-cloudrun")
        monkeypatch.setenv("GOBLET_HTTP_TEST", "REPLAY")

        scheduler = Scheduler("goblet", backend="cloudrun")
        cloudrun_url = "https://goblet-12345.a.run.app"
        service_account = "*****@*****.**"
        scheduler.register_job(
            "test-job",
            None,
            kwargs={
                "schedule": "* * * * *",
                "timezone": "UTC",
                "kwargs": {}
            },
        )
        scheduler._deploy(
            config={"scheduler": {
                "serviceAccount": service_account
            }})

        responses = get_responses("schedule-deploy-cloudrun")

        assert responses[0]["body"]["status"]["url"] == cloudrun_url
        assert (responses[1]["body"]["httpTarget"]["oidcToken"]
                ["serviceAccountEmail"] == service_account)
        assert (responses[1]["body"]["httpTarget"]["oidcToken"]["audience"] ==
                cloudrun_url)
        assert responses[1]["body"]["schedule"] == "* * * * *"
Ejemplo n.º 2
0
    def test_deploy_schedule(self, monkeypatch):
        monkeypatch.setenv("GOOGLE_PROJECT", "goblet")
        monkeypatch.setenv("GOOGLE_LOCATION", "us-central1")
        monkeypatch.setenv("GOBLET_TEST_NAME", "schedule-deploy")
        monkeypatch.setenv("GOBLET_HTTP_TEST", "REPLAY")

        goblet_name = "goblet_example"
        scheduler = Scheduler(goblet_name)
        scheduler.register_job(
            "test-job",
            None,
            kwargs={
                "schedule": "* * * * *",
                "timezone": "UTC",
                "kwargs": {}
            },
        )
        scheduler.deploy()

        responses = get_responses("schedule-deploy")

        assert goblet_name in responses[0]["body"]["name"]
        assert (responses[1]["body"]["httpTarget"]["headers"]["X-Goblet-Name"]
                == "test-job")
        assert (responses[1]["body"]["httpTarget"]["headers"]["X-Goblet-Type"]
                == "schedule")
        assert responses[1]["body"]["schedule"] == "* * * * *"
Ejemplo n.º 3
0
    def test_destroy_schedule(self, monkeypatch):
        monkeypatch.setenv("GOOGLE_PROJECT", "goblet")
        monkeypatch.setenv("GOOGLE_LOCATION", "us-central1")
        monkeypatch.setenv("GOBLET_TEST_NAME", "schedule-destroy")
        monkeypatch.setenv("GOBLET_HTTP_TEST", "REPLAY")

        goblet_name = "goblet_example"
        scheduler = Scheduler(goblet_name)
        scheduler.register_job("test-job",
                               None,
                               kwargs={
                                   "schedule": "* * * * *",
                                   "kwargs": {}
                               })
        scheduler.destroy()

        responses = get_responses("schedule-destroy")

        assert len(responses) == 1
        assert responses[0]["body"] == {}
Ejemplo n.º 4
0
    def test_sync_schedule(self, monkeypatch):
        monkeypatch.setenv("GOOGLE_PROJECT", "goblet")
        monkeypatch.setenv("GOOGLE_LOCATION", "us-central1")
        monkeypatch.setenv("GOBLET_TEST_NAME", "schedule-sync")
        monkeypatch.setenv("GOBLET_HTTP_TEST", "REPLAY")

        goblet_name = "goblet"
        scheduler = Scheduler(goblet_name)
        scheduler.register_job("scheduled_job",
                               None,
                               kwargs={
                                   "schedule": "* * * * *",
                                   "kwargs": {}
                               })
        scheduler.sync(dryrun=True)
        scheduler.sync(dryrun=False)

        responses = get_responses("schedule-sync")
        assert len(responses) == 3
        assert responses[1] == responses[2]
        assert responses[0]["body"] == {}
Ejemplo n.º 5
0
    def test_deploy_multiple_schedule(self, monkeypatch):
        monkeypatch.setenv("GOOGLE_PROJECT", "goblet")
        monkeypatch.setenv("GOOGLE_LOCATION", "us-central1")
        monkeypatch.setenv("GOBLET_TEST_NAME", "schedule-deploy-multiple")
        monkeypatch.setenv("GOBLET_HTTP_TEST", "REPLAY")

        goblet_name = "goblet-test-schedule"
        scheduler = Scheduler(goblet_name)
        scheduler.register_job("test-job",
                               None,
                               kwargs={
                                   "schedule": "* * 1 * *",
                                   "kwargs": {}
                               })
        scheduler.register_job(
            "test-job",
            None,
            kwargs={
                "schedule": "* * 2 * *",
                "kwargs": {
                    "httpMethod": "POST"
                }
            },
        )
        scheduler.register_job(
            "test-job",
            None,
            kwargs={
                "schedule": "* * 3 * *",
                "kwargs": {
                    "headers": {
                        "X-HEADER": "header"
                    }
                },
            },
        )
        scheduler.deploy()

        post_job_1 = get_response(
            "schedule-deploy-multiple",
            "post-v1-projects-goblet-locations-us-central1-jobs_1.json",
        )
        post_job_2 = get_response(
            "schedule-deploy-multiple",
            "post-v1-projects-goblet-locations-us-central1-jobs_2.json",
        )
        post_job_3 = get_response(
            "schedule-deploy-multiple",
            "post-v1-projects-goblet-locations-us-central1-jobs_3.json",
        )

        assert (post_job_1["body"]["httpTarget"]["headers"]["X-Goblet-Name"] ==
                "test-job")
        assert (post_job_2["body"]["httpTarget"]["headers"]["X-Goblet-Name"] ==
                "test-job-2")
        assert post_job_2["body"]["httpTarget"]["httpMethod"] == "POST"
        assert (post_job_3["body"]["httpTarget"]["headers"]["X-Goblet-Name"] ==
                "test-job-3")
        assert post_job_3["body"]["httpTarget"]["headers"][
            "X-HEADER"] == "header"