From 3ce5b184c4bc61c6891b8cab63f3a61c5ec291ed Mon Sep 17 00:00:00 2001 From: Chenyu Li Date: Tue, 23 Apr 2024 16:30:13 -0700 Subject: [PATCH 1/4] change port bind and add a unittest --- core/dbt/task/docs/serve.py | 2 +- tests/unit/task/docs/__init__.py | 0 tests/unit/task/docs/test_serve.py | 22 ++++++++++++++++++++++ 3 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 tests/unit/task/docs/__init__.py create mode 100644 tests/unit/task/docs/test_serve.py diff --git a/core/dbt/task/docs/serve.py b/core/dbt/task/docs/serve.py index b6aca15190c..c0cd4e570ac 100644 --- a/core/dbt/task/docs/serve.py +++ b/core/dbt/task/docs/serve.py @@ -20,7 +20,7 @@ def run(self): if self.args.browser: webbrowser.open_new_tab(f"http://localhost:{port}") - with socketserver.TCPServer(("", port), SimpleHTTPRequestHandler) as httpd: + with socketserver.TCPServer(("127.0.0.1", port), SimpleHTTPRequestHandler) as httpd: click.echo(f"Serving docs at {port}") click.echo(f"To access from your browser, navigate to: http://localhost:{port}") click.echo("\n\n") diff --git a/tests/unit/task/docs/__init__.py b/tests/unit/task/docs/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tests/unit/task/docs/test_serve.py b/tests/unit/task/docs/test_serve.py new file mode 100644 index 00000000000..a7436672b8f --- /dev/null +++ b/tests/unit/task/docs/test_serve.py @@ -0,0 +1,22 @@ +import pytest +from unittest.mock import patch, MagicMock + +from dbt.task.docs.serve import ServeTask +from http.server import SimpleHTTPRequestHandler + + +@pytest.fixture +def serve_task(): + # Set up + task = ServeTask(config=MagicMock(), args=MagicMock()) + task.config.project_target_path = "." + task.args.port = 8000 + return task + + +def test_serve_bind_to_127(serve_task): + serve_task.args.browser = False + with patch("dbt.task.docs.serve.socketserver.TCPServer") as patched_TCPServer: + patched_TCPServer.return_value = MagicMock() + serve_task.run() + patched_TCPServer.assert_called_once_with(("127.0.0.1", 8000), SimpleHTTPRequestHandler) From edc37e77a934db478de3b7b17ff923a096c63721 Mon Sep 17 00:00:00 2001 From: Michelle Ark Date: Tue, 21 May 2024 22:12:13 -0400 Subject: [PATCH 2/4] changelog entry --- .changes/unreleased/Fixes-20240521-221208.yaml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .changes/unreleased/Fixes-20240521-221208.yaml diff --git a/.changes/unreleased/Fixes-20240521-221208.yaml b/.changes/unreleased/Fixes-20240521-221208.yaml new file mode 100644 index 00000000000..4f363c596dc --- /dev/null +++ b/.changes/unreleased/Fixes-20240521-221208.yaml @@ -0,0 +1,6 @@ +kind: Fixes +body: Explicitly bind to localhost in docs serve +time: 2024-05-21T22:12:08.000661-04:00 +custom: + Author: michelleark + Issue: "10209" From 94dfb1d58c7e5f8b056eee0739652be73ef3da3f Mon Sep 17 00:00:00 2001 From: Michelle Ark Date: Tue, 21 May 2024 22:17:07 -0400 Subject: [PATCH 3/4] linting --- tests/unit/task/docs/test_serve.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/unit/task/docs/test_serve.py b/tests/unit/task/docs/test_serve.py index a7436672b8f..cedb234a205 100644 --- a/tests/unit/task/docs/test_serve.py +++ b/tests/unit/task/docs/test_serve.py @@ -1,8 +1,9 @@ +from http.server import SimpleHTTPRequestHandler +from unittest.mock import MagicMock, patch + import pytest -from unittest.mock import patch, MagicMock from dbt.task.docs.serve import ServeTask -from http.server import SimpleHTTPRequestHandler @pytest.fixture From 00b12111e6475819b77a2a43f2d25e284c5d18b0 Mon Sep 17 00:00:00 2001 From: Michelle Ark Date: Wed, 22 May 2024 09:46:09 -0400 Subject: [PATCH 4/4] changelog entry --- .changes/unreleased/Fixes-20240521-221208.yaml | 6 ------ .changes/unreleased/Security-20240522-094540.yaml | 6 ++++++ 2 files changed, 6 insertions(+), 6 deletions(-) delete mode 100644 .changes/unreleased/Fixes-20240521-221208.yaml create mode 100644 .changes/unreleased/Security-20240522-094540.yaml diff --git a/.changes/unreleased/Fixes-20240521-221208.yaml b/.changes/unreleased/Fixes-20240521-221208.yaml deleted file mode 100644 index 4f363c596dc..00000000000 --- a/.changes/unreleased/Fixes-20240521-221208.yaml +++ /dev/null @@ -1,6 +0,0 @@ -kind: Fixes -body: Explicitly bind to localhost in docs serve -time: 2024-05-21T22:12:08.000661-04:00 -custom: - Author: michelleark - Issue: "10209" diff --git a/.changes/unreleased/Security-20240522-094540.yaml b/.changes/unreleased/Security-20240522-094540.yaml new file mode 100644 index 00000000000..b35f96dc084 --- /dev/null +++ b/.changes/unreleased/Security-20240522-094540.yaml @@ -0,0 +1,6 @@ +kind: Security +body: Explicitly bind to localhost in docs serve +time: 2024-05-22T09:45:40.748185-04:00 +custom: + Author: ChenyuLInx michelleark + Issue: "10209"