def test_variables_sent_correctly(self): class Item: def __init__(self, key, val): self.key = key self.val = val class Session: def query(self, mock): return self def filter(self, mock): self.mock = mock return self def __iter__(self): for env in variable.key.in_.call_args[0][0]: yield Item(env, env.upper()) session = Session() with patch("airflow_docker.ext.environment_preset.Variable", new=MagicMock()) as variable: result = collect_environment_preset(session, self.Operator(), None, { "env": "ENV_VAR", "bar": "BAR_VAR" }) assert sorted(variable.key.in_.call_args[0][0]) == ["bar", "env"] assert result == {"ENV_VAR": "ENV", "BAR_VAR": "BAR"}
def test_keys_no_variables(self): with patch( "airflow_docker.ext.environment_preset.collect_variable_values", return_value={}, ): result = collect_environment_preset( None, self.Operator(), { "dag": self.Dag(), "run_id": "run" }, { "docker_image_name": "DI", "docker_image_tag": "DT", "docker_image": "D", "dagrun_id": "DR", "task_name": "TN", }, ) assert result == { "DI": "foo/bar", "DT": "latest", "D": "foo/bar", "DR": "run", "TN": "bar__foo", }
def test_null_variables(self): with patch( "airflow_docker.ext.environment_preset.collect_variable_values", return_value={"env": None}, ): result = collect_environment_preset(None, self.Operator(), None, {"env": "ENV"}) assert result == {}
def test_invalid_keys(self): with patch( "airflow_docker.ext.environment_preset.collect_variable_values", return_value={"meow": "meow"}, ): result = collect_environment_preset(None, self.Operator(), None, {}) assert result == {}
def test_keys_variables(self): with patch( "airflow_docker.ext.environment_preset.collect_variable_values", return_value={"env": "prod"}, ): result = collect_environment_preset(None, self.Operator(), None, { "docker_image_name": "DI", "env": "ENV" }) assert result == {"DI": "foo/bar", "ENV": "prod"}