You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by je...@apache.org on 2022/01/28 21:25:14 UTC
[airflow] 01/17: Return to the same place when triggering a DAG (#20955)
This is an automated email from the ASF dual-hosted git repository.
jedcunningham pushed a commit to branch v2-2-test
in repository https://gitbox.apache.org/repos/asf/airflow.git
commit ba17fa34358971a78493d73f62a5992e65cbbf2f
Author: Mark Norman Francis <no...@201created.com>
AuthorDate: Thu Jan 20 08:15:37 2022 +0000
Return to the same place when triggering a DAG (#20955)
(cherry picked from commit 928dafe6c495bbf3e03d14473753fce915134a46)
---
airflow/www/templates/airflow/dag.html | 4 ++--
tests/www/views/test_views_tasks.py | 24 ++++++++++++++++++++----
2 files changed, 22 insertions(+), 6 deletions(-)
diff --git a/airflow/www/templates/airflow/dag.html b/airflow/www/templates/airflow/dag.html
index a88e3d43..d69f42f 100644
--- a/airflow/www/templates/airflow/dag.html
+++ b/airflow/www/templates/airflow/dag.html
@@ -148,11 +148,11 @@
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}">
<input type="hidden" name="dag_id" value="{{ dag.dag_id }}">
<input type="hidden" name="unpause" value="True">
- <input type="hidden" name="origin" value="{{ url_for('Airflow.' + dag.default_view, dag_id=dag.dag_id) }}">
+ <input type="hidden" name="origin" value="{{ url_for(request.endpoint, dag_id=dag.dag_id) }}">
<button type="submit" class="dropdown-form-btn">Trigger DAG</button>
</form>
</li>
- <li><a href="{{ url_for('Airflow.trigger', dag_id=dag.dag_id, origin=url_for('Airflow.' + dag.default_view, dag_id=dag.dag_id)) }}">Trigger DAG w/ config</a></li>
+ <li><a href="{{ url_for('Airflow.trigger', dag_id=dag.dag_id, origin=url_for(request.endpoint, dag_id=dag.dag_id)) }}">Trigger DAG w/ config</a></li>
</ul>
</div>
<a href="{{ url_for('Airflow.delete', dag_id=dag.dag_id) }}" title="Delete DAG" class="btn btn-default btn-icon-only{{ ' disabled' if not dag.can_delete }}"
diff --git a/tests/www/views/test_views_tasks.py b/tests/www/views/test_views_tasks.py
index e4336c5..ed0466e 100644
--- a/tests/www/views/test_views_tasks.py
+++ b/tests/www/views/test_views_tasks.py
@@ -278,7 +278,7 @@ def test_escape_in_tree_view(app, admin_client, test_str, expected_text):
check_content_in_response(expected_text, resp)
-def test_dag_details_trigger_origin_tree_view(app, admin_client):
+def test_tree_trigger_origin_tree_view(app, admin_client):
app.dag_bag.get_dag('test_tree_view').create_dagrun(
run_type=DagRunType.SCHEDULED,
execution_date=DEFAULT_DATE,
@@ -286,14 +286,30 @@ def test_dag_details_trigger_origin_tree_view(app, admin_client):
state=State.RUNNING,
)
- url = 'dag_details?dag_id=test_tree_view'
+ url = 'tree?dag_id=test_tree_view'
resp = admin_client.get(url, follow_redirects=True)
params = {'dag_id': 'test_tree_view', 'origin': '/tree?dag_id=test_tree_view'}
href = f"/trigger?{html.escape(urllib.parse.urlencode(params))}"
check_content_in_response(href, resp)
-def test_dag_details_trigger_origin_graph_view(app, admin_client):
+def test_graph_trigger_origin_graph_view(app, admin_client):
+ app.dag_bag.get_dag('test_tree_view').create_dagrun(
+ run_type=DagRunType.SCHEDULED,
+ execution_date=DEFAULT_DATE,
+ data_interval=(DEFAULT_DATE, DEFAULT_DATE),
+ start_date=timezone.utcnow(),
+ state=State.RUNNING,
+ )
+
+ url = 'graph?dag_id=test_tree_view'
+ resp = admin_client.get(url, follow_redirects=True)
+ params = {'dag_id': 'test_tree_view', 'origin': '/graph?dag_id=test_tree_view'}
+ href = f"/trigger?{html.escape(urllib.parse.urlencode(params))}"
+ check_content_in_response(href, resp)
+
+
+def test_dag_details_trigger_origin_dag_details_view(app, admin_client):
app.dag_bag.get_dag('test_graph_view').create_dagrun(
run_type=DagRunType.SCHEDULED,
execution_date=DEFAULT_DATE,
@@ -303,7 +319,7 @@ def test_dag_details_trigger_origin_graph_view(app, admin_client):
url = 'dag_details?dag_id=test_graph_view'
resp = admin_client.get(url, follow_redirects=True)
- params = {'dag_id': 'test_graph_view', 'origin': '/graph?dag_id=test_graph_view'}
+ params = {'dag_id': 'test_graph_view', 'origin': '/dag_details?dag_id=test_graph_view'}
href = f"/trigger?{html.escape(urllib.parse.urlencode(params))}"
check_content_in_response(href, resp)