### Discussed in https://github.com/apache/airflow/discussions/33345

<div type='discussions-op-text'>

<sup>Originally posted by **vuphamcs** August 11, 2023</sup>
### Description

Is there a variable similar to `prev_start_date_success` but for the previous DAG run’s completion date? The value I’m hoping to retrieve to use within the next DAG run is `2023-08-10 16:04:30`

![image](https://github.com/apache/airflow/assets/1600760/9e2af349-4c3e-47e1-8a1a-9d8827b56f57)


### Use case/motivation

One particular use case is to help guarantee that the next DAG run only queries data that was inserted during the existing DAG run, and not the past DAG run.

```python
prev_ts = context['prev_end_date_success']

sql = f"SELECT * FROM results WHERE created_at > {context['prev_end_date_success']}"
```

### Related issues

_No response_

### Are you willing to submit a PR?

- [ ] Yes I am willing to submit a PR!

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)
</div>
def f():
            return False
        task = self.run_as_task(f)
        assert task.execute_callable() is False
    def test_lambda(self):
        with pytest.raises(AirflowException):
            PythonVirtualenvOperator(python_callable=lambda x: 4, task_id=self.task_id)
    def test_nonimported_as_arg(self):
        def f(_):
            return None
        self.run_as_task(f, op_args=[datetime.utcnow()])
    def test_context(self):
        def f(templates_dict):
            return templates_dict["ds"]
        task = self.run_as_task(f, templates_dict={"ds": "{{ ds }}"})
        assert task.templates_dict == {"ds": self.ds_templated}
    def test_deepcopy(self):
        """Test that PythonVirtualenvOperator are deep-copyable."""
        def f():
            return 1
        task = PythonVirtualenvOperator(python_callable=f, task_id="task")
        copy.deepcopy(task)
    def test_virtualenv_serializable_context_fields(self, create_task_instance):
        """Ensure all template context fields are listed in the operator.
        This exists mainly so when a field is added to the context, we remember to
        also add it to PythonVirtualenvOperator.
        """