Beispiel #1
0
    def get_dag_params(self) -> Dict[str, Any]:
        """
        Merges default config with dag config, sets dag_id, and extropolates dag_start_date

        :returns: dict of dag parameters
        """
        try:
            dag_params: Dict[str, Any] = utils.merge_configs(
                self.dag_config, self.default_config)
        except Exception as err:
            raise Exception(
                f"Failed to merge config with default config, err: {err}")
        dag_params["dag_id"]: str = self.dag_name
        try:
            # ensure that default_args dictionary contains key "start_date"
            # with "datetime" value in specified timezone
            dag_params["default_args"][
                "start_date"]: datetime = utils.get_start_date(
                    date_value=dag_params["default_args"]["start_date"],
                    timezone=dag_params["default_args"].get("timezone", "UTC"),
                )
        except KeyError as err:
            raise Exception(
                f"{self.dag_name} config is missing start_date, err: {err}")
        return dag_params
Beispiel #2
0
    def get_dag_params(self):
        """
        Merges default config with dag config, sets dag_id, and extropolates dag_start_date

        :returns: dict of dag parameters
        """
        try:
            dag_params = utils.merge_configs(self.dag_config, self.default_config)
        except Exception as e:
            raise Exception(f"Failed to merge config with default config, err: {e}")
        dag_params["dag_id"] = self.dag_name
        try:
            dag_params["default_args"]["start_date"] = utils.get_start_date(
                dag_params["default_args"]["start_date"],
                dag_params["default_args"].get("timezone", "UTC"),
            )
        except KeyError as e:
            raise Exception(f"{self.dag_name} config is missing start_date, err: {e}")

        return dag_params
Beispiel #3
0
def test_get_start_date_bad_date():
    with pytest.raises(Exception):
        utils.get_start_date("bad_date")
Beispiel #4
0
def test_get_start_date_bad_timezone():
    with pytest.raises(Exception):
        utils.get_start_date(datetime.datetime(2018, 2, 1), "bad_timezone")
Beispiel #5
0
def test_get_start_date_relative_time_timezone():
    expected = NOW.replace(tzinfo=CET) - datetime.timedelta(days=1)
    actual = utils.get_start_date("1 day", "Europe/Amsterdam")
    assert actual == expected
Beispiel #6
0
def test_get_start_date_datetime_timezone():
    expected = datetime.datetime(2018, 2, 1, 0, 0, tzinfo=CET)
    actual = utils.get_start_date(datetime.datetime(2018, 2, 1),
                                  "Europe/Amsterdam")
    assert actual == expected
Beispiel #7
0
def test_get_start_date_relative_time_no_timezone():
    expected = NOW.replace(tzinfo=UTC) - datetime.timedelta(days=1)
    actual = utils.get_start_date("1 day")
    assert actual == expected
Beispiel #8
0
def test_get_start_date_datetime_no_timezone():
    expected = datetime.datetime(2018, 2, 1, 0, 0, tzinfo=UTC)
    actual = utils.get_start_date(datetime.datetime(2018, 2, 1))
    assert actual == expected
Beispiel #9
0
 def test_relative_time_timezone(self):
     expected = self.now.replace(tzinfo=self.cet) - datetime.timedelta(days=1)
     actual = utils.get_start_date("1 day", "Europe/Amsterdam")
     assert actual == expected
Beispiel #10
0
 def test_relative_time_no_timezone(self):
     expected = self.now.replace(tzinfo=self.utc) - datetime.timedelta(days=1)
     actual = utils.get_start_date("1 day")
     assert actual == expected
Beispiel #11
0
 def test_datetime_no_timezone(self):
     expected = datetime.datetime(2018, 2, 1, 0, 0, tzinfo=self.utc)
     actual = utils.get_start_date(datetime.datetime(2018, 2, 1))
     assert actual == expected