You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@texera.apache.org by "justinsiek (via GitHub)" <gi...@apache.org> on 2026/06/14 05:39:18 UTC

[PR] test(workflow-operator): add URLFetchUtil unit tests [texera]

justinsiek opened a new pull request, #5710:
URL: https://github.com/apache/texera/pull/5710

   ### What changes were proposed in this PR?
   
   Adds `URLFetchUtilSpec`, a unit test for `URLFetchUtil.getInputStreamFromURL`. A stub `URLStreamHandler` scripts per attempt success/failure, so nothing hits the network. No production code changed.
   
   ### Any related issues, documentation, discussions?
   
   Closes #5661 
   
   ### How was this PR tested?
   
   No production code changed, just new unit tests for existing code.
   
   ### Was this PR authored or co-authored using generative AI tooling?
   
   Generated-by: Claude Code (Claude Opus 4.8)


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@texera.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] test(workflow-operator): add URLFetchUtil unit tests [texera]

Posted by "justinsiek (via GitHub)" <gi...@apache.org>.
justinsiek commented on PR #5710:
URL: https://github.com/apache/texera/pull/5710#issuecomment-4755857759

   /request-review


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@texera.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] test(workflow-operator): add URLFetchUtil unit tests [texera]

Posted by "Copilot (via GitHub)" <gi...@apache.org>.
Copilot commented on code in PR #5710:
URL: https://github.com/apache/texera/pull/5710#discussion_r3447893283


##########
common/workflow-operator/src/test/scala/org/apache/texera/amber/operator/source/fetcher/URLFetchUtilSpec.scala:
##########
@@ -0,0 +1,121 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.texera.amber.operator.source.fetcher
+
+import org.scalatest.flatspec.AnyFlatSpec
+
+import java.io.{ByteArrayInputStream, IOException, InputStream}
+import java.net.{URL, URLConnection, URLStreamHandler}
+
+class URLFetchUtilSpec extends AnyFlatSpec {
+
+  // Stub URLStreamHandler from the issue's hint, extended only to capture the
+  // User-Agent header (contract row 7). It drives URLFetchUtil with no network:
+  // getInputStream returns scripted bytes (Right) or throws (Left) per attempt.
+  // Injected per-URL via stubUrl so each test is isolated.
+  class StubHandler(behavior: (Int) => Either[IOException, Array[Byte]]) extends URLStreamHandler {
+    val attempts = new java.util.concurrent.atomic.AtomicInteger(0)
+    var userAgent: Option[String] = None
+    protected override def openConnection(u: URL): URLConnection =
+      new URLConnection(u) {
+        override def connect(): Unit = ()
+        override def setRequestProperty(key: String, value: String): Unit =
+          if (key == "User-Agent") userAgent = Some(value)
+        override def getInputStream: InputStream = {
+          val i = attempts.incrementAndGet()
+          behavior(i) match {
+            case Right(bytes) => new ByteArrayInputStream(bytes)
+            case Left(e)      => throw e
+          }
+        }
+      }
+  }
+
+  private def stubUrl(handler: StubHandler): URL =
+    new URL(null, "http://example.com/data", handler)
+
+  // Successful single attempt —
+  // returns Some(InputStream) on the first try and reads the body
+  "URLFetchUtil.getInputStreamFromURL" should
+    "return Some on the first try and read the body" in {
+    val body = "hello".getBytes("UTF-8")
+    val handler = new StubHandler(_ => Right(body))
+    val result = URLFetchUtil.getInputStreamFromURL(stubUrl(handler))
+    assert(result.isDefined)
+    assert(result.get.readAllBytes().sameElements(body))
+    assert(handler.attempts.get() == 1)

Review Comment:
   The test reads bytes from the returned InputStream but never closes it. Even in unit tests, closing the stream avoids leaking resources and keeps the test behavior closer to real usage.



##########
common/workflow-operator/src/test/scala/org/apache/texera/amber/operator/source/fetcher/URLFetchUtilSpec.scala:
##########
@@ -0,0 +1,121 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.texera.amber.operator.source.fetcher
+
+import org.scalatest.flatspec.AnyFlatSpec
+
+import java.io.{ByteArrayInputStream, IOException, InputStream}
+import java.net.{URL, URLConnection, URLStreamHandler}
+
+class URLFetchUtilSpec extends AnyFlatSpec {
+
+  // Stub URLStreamHandler from the issue's hint, extended only to capture the
+  // User-Agent header (contract row 7). It drives URLFetchUtil with no network:
+  // getInputStream returns scripted bytes (Right) or throws (Left) per attempt.
+  // Injected per-URL via stubUrl so each test is isolated.
+  class StubHandler(behavior: (Int) => Either[IOException, Array[Byte]]) extends URLStreamHandler {
+    val attempts = new java.util.concurrent.atomic.AtomicInteger(0)
+    var userAgent: Option[String] = None
+    protected override def openConnection(u: URL): URLConnection =
+      new URLConnection(u) {
+        override def connect(): Unit = ()
+        override def setRequestProperty(key: String, value: String): Unit =
+          if (key == "User-Agent") userAgent = Some(value)
+        override def getInputStream: InputStream = {
+          val i = attempts.incrementAndGet()
+          behavior(i) match {
+            case Right(bytes) => new ByteArrayInputStream(bytes)
+            case Left(e)      => throw e
+          }
+        }
+      }
+  }
+
+  private def stubUrl(handler: StubHandler): URL =
+    new URL(null, "http://example.com/data", handler)
+
+  // Successful single attempt —
+  // returns Some(InputStream) on the first try and reads the body
+  "URLFetchUtil.getInputStreamFromURL" should
+    "return Some on the first try and read the body" in {
+    val body = "hello".getBytes("UTF-8")
+    val handler = new StubHandler(_ => Right(body))
+    val result = URLFetchUtil.getInputStreamFromURL(stubUrl(handler))
+    assert(result.isDefined)
+    assert(result.get.readAllBytes().sameElements(body))
+    assert(handler.attempts.get() == 1)
+  }
+
+  // Default retries = 5 —
+  // up to 5 total attempts when every attempt fails
+  it should "make up to 5 total attempts when every attempt fails" in {
+    val handler = new StubHandler(_ => Left(new IOException("boom")))
+    val result = URLFetchUtil.getInputStreamFromURL(stubUrl(handler))
+    assert(result.isEmpty)
+    assert(handler.attempts.get() == 5)
+  }
+
+  // Explicit retries = 1 —
+  // exactly one attempt
+  it should "make exactly one attempt when retries = 1" in {
+    val handler = new StubHandler(_ => Left(new IOException("boom")))
+    val result = URLFetchUtil.getInputStreamFromURL(stubUrl(handler), retries = 1)
+    assert(result.isEmpty)
+    assert(handler.attempts.get() == 1)
+  }
+
+  // Explicit retries = 0 —
+  // returns None immediately (loop body never enters)
+  it should "return None immediately, never entering the loop body, when retries = 0" in {
+    val handler = new StubHandler(_ => Left(new IOException("boom")))
+    val result = URLFetchUtil.getInputStreamFromURL(stubUrl(handler), retries = 0)
+    assert(result.isEmpty)
+    assert(handler.attempts.get() == 0)
+  }
+
+  // All attempts fail —
+  // returns None (does NOT throw — the inner try/catch swallows exceptions)
+  it should "return None (does NOT throw — the inner try/catch swallows exceptions)" in {
+    val handler = new StubHandler(_ => Left(new IOException("boom")))
+    val result = URLFetchUtil.getInputStreamFromURL(stubUrl(handler), retries = 3)
+    assert(result.isEmpty)
+  }
+
+  // Stops at first success —
+  // when a later attempt succeeds, no further attempts are made
+  it should "make no further attempts when a later attempt succeeds" in {
+    val body = "third-time".getBytes("UTF-8")
+    val handler = new StubHandler(i => if (i < 3) Left(new IOException("fail")) else Right(body))
+    val result = URLFetchUtil.getInputStreamFromURL(stubUrl(handler), retries = 5)
+    assert(result.isDefined)
+    assert(result.get.readAllBytes().sameElements(body))
+    assert(handler.attempts.get() == 3)

Review Comment:
   This test also reads from the returned InputStream without closing it. Closing it avoids leaking resources across the suite and keeps the test deterministic on some JVMs.



##########
common/workflow-operator/src/test/scala/org/apache/texera/amber/operator/source/fetcher/URLFetchUtilSpec.scala:
##########
@@ -0,0 +1,121 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.texera.amber.operator.source.fetcher
+
+import org.scalatest.flatspec.AnyFlatSpec
+
+import java.io.{ByteArrayInputStream, IOException, InputStream}
+import java.net.{URL, URLConnection, URLStreamHandler}
+
+class URLFetchUtilSpec extends AnyFlatSpec {
+
+  // Stub URLStreamHandler from the issue's hint, extended only to capture the
+  // User-Agent header (contract row 7). It drives URLFetchUtil with no network:
+  // getInputStream returns scripted bytes (Right) or throws (Left) per attempt.
+  // Injected per-URL via stubUrl so each test is isolated.
+  class StubHandler(behavior: (Int) => Either[IOException, Array[Byte]]) extends URLStreamHandler {
+    val attempts = new java.util.concurrent.atomic.AtomicInteger(0)
+    var userAgent: Option[String] = None
+    protected override def openConnection(u: URL): URLConnection =
+      new URLConnection(u) {
+        override def connect(): Unit = ()
+        override def setRequestProperty(key: String, value: String): Unit =
+          if (key == "User-Agent") userAgent = Some(value)
+        override def getInputStream: InputStream = {
+          val i = attempts.incrementAndGet()
+          behavior(i) match {
+            case Right(bytes) => new ByteArrayInputStream(bytes)
+            case Left(e)      => throw e
+          }
+        }
+      }
+  }
+
+  private def stubUrl(handler: StubHandler): URL =
+    new URL(null, "http://example.com/data", handler)
+
+  // Successful single attempt —
+  // returns Some(InputStream) on the first try and reads the body
+  "URLFetchUtil.getInputStreamFromURL" should
+    "return Some on the first try and read the body" in {
+    val body = "hello".getBytes("UTF-8")
+    val handler = new StubHandler(_ => Right(body))
+    val result = URLFetchUtil.getInputStreamFromURL(stubUrl(handler))
+    assert(result.isDefined)
+    assert(result.get.readAllBytes().sameElements(body))
+    assert(handler.attempts.get() == 1)
+  }
+
+  // Default retries = 5 —
+  // up to 5 total attempts when every attempt fails
+  it should "make up to 5 total attempts when every attempt fails" in {
+    val handler = new StubHandler(_ => Left(new IOException("boom")))
+    val result = URLFetchUtil.getInputStreamFromURL(stubUrl(handler))
+    assert(result.isEmpty)
+    assert(handler.attempts.get() == 5)
+  }
+
+  // Explicit retries = 1 —
+  // exactly one attempt
+  it should "make exactly one attempt when retries = 1" in {
+    val handler = new StubHandler(_ => Left(new IOException("boom")))
+    val result = URLFetchUtil.getInputStreamFromURL(stubUrl(handler), retries = 1)
+    assert(result.isEmpty)
+    assert(handler.attempts.get() == 1)
+  }
+
+  // Explicit retries = 0 —
+  // returns None immediately (loop body never enters)
+  it should "return None immediately, never entering the loop body, when retries = 0" in {
+    val handler = new StubHandler(_ => Left(new IOException("boom")))
+    val result = URLFetchUtil.getInputStreamFromURL(stubUrl(handler), retries = 0)
+    assert(result.isEmpty)
+    assert(handler.attempts.get() == 0)
+  }
+
+  // All attempts fail —
+  // returns None (does NOT throw — the inner try/catch swallows exceptions)
+  it should "return None (does NOT throw — the inner try/catch swallows exceptions)" in {
+    val handler = new StubHandler(_ => Left(new IOException("boom")))
+    val result = URLFetchUtil.getInputStreamFromURL(stubUrl(handler), retries = 3)
+    assert(result.isEmpty)
+  }
+
+  // Stops at first success —
+  // when a later attempt succeeds, no further attempts are made
+  it should "make no further attempts when a later attempt succeeds" in {
+    val body = "third-time".getBytes("UTF-8")
+    val handler = new StubHandler(i => if (i < 3) Left(new IOException("fail")) else Right(body))
+    val result = URLFetchUtil.getInputStreamFromURL(stubUrl(handler), retries = 5)
+    assert(result.isDefined)
+    assert(result.get.readAllBytes().sameElements(body))
+    assert(handler.attempts.get() == 3)
+  }
+
+  // Sets User-Agent request property —
+  // the value comes from RandomUserAgent.getRandomUserAgent (use a URLStreamHandler to
+  // capture headers and pin that the header is set, without pinning its value)
+  it should "set the User-Agent request property (without pinning its value)" in {
+    val handler = new StubHandler(_ => Right("x".getBytes("UTF-8")))
+    URLFetchUtil.getInputStreamFromURL(stubUrl(handler))
+    assert(handler.userAgent.isDefined)
+    assert(handler.userAgent.get.nonEmpty)

Review Comment:
   This spec says it avoids pinning the User-Agent value; asserting `nonEmpty` still constrains the value. To keep the test aligned with the stated contract, only assert that the header was set (i.e., the Option is defined).



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@texera.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] test(workflow-operator): add URLFetchUtil unit tests [texera]

Posted by "chenlica (via GitHub)" <gi...@apache.org>.
chenlica commented on PR #5710:
URL: https://github.com/apache/texera/pull/5710#issuecomment-4760863763

   @mengw15 Please review it.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@texera.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] test(workflow-operator): add URLFetchUtil unit tests [texera]

Posted by "justinsiek (via GitHub)" <gi...@apache.org>.
justinsiek commented on PR #5710:
URL: https://github.com/apache/texera/pull/5710#issuecomment-4755878022

   /request-review


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@texera.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] test(workflow-operator): cover User-Agent header in URLFetchUtilSpec [texera]

Posted by "justinsiek (via GitHub)" <gi...@apache.org>.
justinsiek commented on PR #5710:
URL: https://github.com/apache/texera/pull/5710#issuecomment-4775739625

   What changes were proposed in this PR?
   #5798 added URLFetchUtilSpec covering the retry/attempt-count contract while this PR was open. Rather than duplicate it, I merged main and this PR now adds the one case that spec didn't cover: that getInputStreamFromURL sets a User-Agent request property (pinning only that the header is set, not its randomized value).
   
   Any related issues, documentation, discussions?
   Closes #5661 , Builds on #5798 
   
   How was this PR tested?
   sbt "WorkflowOperator/testOnly ...URLFetchUtilSpec" → 7/7 pass; sbt scalafmtCheckAll passes.
   
   Was this PR authored or co-authored using generative AI tooling?
   Generated-by: Claude Code (Claude Opus 4.8)


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@texera.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] test(workflow-operator): add URLFetchUtil unit tests [texera]

Posted by "mengw15 (via GitHub)" <gi...@apache.org>.
mengw15 commented on PR #5710:
URL: https://github.com/apache/texera/pull/5710#issuecomment-4760869672

   Please resolve conflict first


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@texera.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] test(workflow-operator): cover User-Agent header in URLFetchUtilSpec [texera]

Posted by "justinsiek (via GitHub)" <gi...@apache.org>.
justinsiek closed pull request #5710: test(workflow-operator): cover User-Agent header in URLFetchUtilSpec
URL: https://github.com/apache/texera/pull/5710


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@texera.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] test(workflow-operator): add URLFetchUtil unit tests [texera]

Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on PR #5710:
URL: https://github.com/apache/texera/pull/5710#issuecomment-4700837031

   <!-- texera-benchmarks-comment -->
   ## ⚠️ Benchmark changes need a look
   
   🟢 4 better · 🔴 1 worse · ⚪ 10 noise (<±5%) · 0 without baseline
   
   > Compared against main `b21540d` benchmarked on **this same runner**, so the delta is largely free of cross-runner hardware noise. The "7d avg" column still reflects the gh-pages dashboard. Treat <±5% as noise unless repeated.
   
   [Dashboard](https://apache.github.io/texera/dev/bench/) · [Run](https://github.com/apache/texera/actions/runs/27489684165)
   
   | | config | throughput | MB/s | latency | max Δ latest / 7d |
   |---|---|---:|---:|---:|---:|
   | 🔴 | bs=10 sw=10 sl=64 | 439 | 0.268 | 21,868/31,460/31,460 us | 🔴 +7.2% / 🟢 -10.1% |
   | 🟢 | bs=100 sw=10 sl=64 | 978 | 0.597 | 101,180/121,171/121,171 us | 🟢 -14.6% / 🟢 -13.3% |
   | ⚪ | bs=1000 sw=10 sl=64 | 1,114 | 0.68 | 899,002/942,872/942,872 us | ⚪ within ±5% / 🟢 -7.8% |
   
   <details><summary>Baseline details</summary>
   
   Latest main `b21540d` from same runner
   
   | config | metric | PR | latest main | 7d avg | Δ latest | Δ 7d |
   |---|---|---:|---:|---:|---:|---:|
   | bs=10 sw=10 sl=64 | throughput | 439 tuples/sec | 449 tuples/sec | 410.82 tuples/sec | -2.2% | +6.9% |
   | bs=10 sw=10 sl=64 | MB/s | 0.268 MB/s | 0.274 MB/s | 0.251 MB/s | -2.2% | +6.9% |
   | bs=10 sw=10 sl=64 | p50 | 21,868 us | 20,401 us | 23,785 us | +7.2% | -8.1% |
   | bs=10 sw=10 sl=64 | p95 | 31,460 us | 33,383 us | 34,980 us | -5.8% | -10.1% |
   | bs=10 sw=10 sl=64 | p99 | 31,460 us | 33,383 us | 34,980 us | -5.8% | -10.1% |
   | bs=100 sw=10 sl=64 | throughput | 978 tuples/sec | 982 tuples/sec | 891.94 tuples/sec | -0.4% | +9.6% |
   | bs=100 sw=10 sl=64 | MB/s | 0.597 MB/s | 0.599 MB/s | 0.544 MB/s | -0.3% | +9.7% |
   | bs=100 sw=10 sl=64 | p50 | 101,180 us | 98,103 us | 112,277 us | +3.1% | -9.9% |
   | bs=100 sw=10 sl=64 | p95 | 121,171 us | 141,807 us | 139,802 us | -14.6% | -13.3% |
   | bs=100 sw=10 sl=64 | p99 | 121,171 us | 141,807 us | 139,802 us | -14.6% | -13.3% |
   | bs=1000 sw=10 sl=64 | throughput | 1,114 tuples/sec | 1,123 tuples/sec | 1,041 tuples/sec | -0.8% | +7.0% |
   | bs=1000 sw=10 sl=64 | MB/s | 0.68 MB/s | 0.685 MB/s | 0.635 MB/s | -0.7% | +7.0% |
   | bs=1000 sw=10 sl=64 | p50 | 899,002 us | 882,140 us | 972,714 us | +1.9% | -7.6% |
   | bs=1000 sw=10 sl=64 | p95 | 942,872 us | 941,513 us | 1,023,057 us | +0.1% | -7.8% |
   | bs=1000 sw=10 sl=64 | p99 | 942,872 us | 941,513 us | 1,023,057 us | +0.1% | -7.8% |
   
   </details>
   
   <details><summary>Raw CSV</summary>
   
   ```csv
   config_idx,batch_size,schema_width,string_len,num_batches,total_ms,total_tuples,total_bytes,tuples_per_sec,mb_per_sec,lat_p50_us,lat_p95_us,lat_p99_us
   0,10,10,64,20,455.26,200,128000,439,0.268,21867.75,31460.17,31460.17
   1,100,10,64,20,2045.34,2000,1280000,978,0.597,101180.27,121171.38,121171.38
   2,1000,10,64,20,17953.40,20000,12800000,1114,0.680,899002.02,942871.66,942871.66
   ```
   
   </details>
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@texera.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] test(workflow-operator): add URLFetchUtil unit tests [texera]

Posted by "codecov-commenter (via GitHub)" <gi...@apache.org>.
codecov-commenter commented on PR #5710:
URL: https://github.com/apache/texera/pull/5710#issuecomment-4700830675

   ## [Codecov](https://app.codecov.io/gh/apache/texera/pull/5710?dropdown=coverage&src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) Report
   :white_check_mark: All modified and coverable lines are covered by tests.
   :white_check_mark: Project coverage is 53.23%. Comparing base ([`7ae9b35`](https://app.codecov.io/gh/apache/texera/commit/7ae9b35f12748616daf7bcc925fdde2e5def5187?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)) to head ([`68a1068`](https://app.codecov.io/gh/apache/texera/commit/68a106840b21a330282d7b6b9d877da89944754c?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)).
   :warning: Report is 14 commits behind head on main.
   
   <details><summary>Additional details and impacted files</summary>
   
   
   
   ```diff
   @@             Coverage Diff              @@
   ##               main    #5710      +/-   ##
   ============================================
   - Coverage     53.23%   53.23%   -0.01%     
   + Complexity     2561     2560       -1     
   ============================================
     Files          1075     1075              
     Lines         42388    42385       -3     
     Branches       4640     4640              
   ============================================
   - Hits          22566    22563       -3     
     Misses        18502    18502              
     Partials       1320     1320              
   ```
   
   | [Flag](https://app.codecov.io/gh/apache/texera/pull/5710/flags?src=pr&el=flags&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | Coverage Δ | | *Carryforward flag |
   |---|---|---|---|
   | [access-control-service](https://app.codecov.io/gh/apache/texera/pull/5710/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `74.78% <ø> (ø)` | | Carriedforward from [7ae9b35](https://app.codecov.io/gh/apache/texera/commit/7ae9b35f12748616daf7bcc925fdde2e5def5187?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
   | [agent-service](https://app.codecov.io/gh/apache/texera/pull/5710/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `34.36% <ø> (ø)` | | Carriedforward from [7ae9b35](https://app.codecov.io/gh/apache/texera/commit/7ae9b35f12748616daf7bcc925fdde2e5def5187?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
   | [amber](https://app.codecov.io/gh/apache/texera/pull/5710/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `54.20% <ø> (ø)` | | Carriedforward from [7ae9b35](https://app.codecov.io/gh/apache/texera/commit/7ae9b35f12748616daf7bcc925fdde2e5def5187?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
   | [computing-unit-managing-service](https://app.codecov.io/gh/apache/texera/pull/5710/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `1.65% <ø> (ø)` | | Carriedforward from [7ae9b35](https://app.codecov.io/gh/apache/texera/commit/7ae9b35f12748616daf7bcc925fdde2e5def5187?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
   | [config-service](https://app.codecov.io/gh/apache/texera/pull/5710/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `56.71% <ø> (-1.86%)` | :arrow_down: | |
   | [file-service](https://app.codecov.io/gh/apache/texera/pull/5710/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `57.06% <ø> (ø)` | | Carriedforward from [7ae9b35](https://app.codecov.io/gh/apache/texera/commit/7ae9b35f12748616daf7bcc925fdde2e5def5187?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
   | [frontend](https://app.codecov.io/gh/apache/texera/pull/5710/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `47.50% <ø> (ø)` | | Carriedforward from [7ae9b35](https://app.codecov.io/gh/apache/texera/commit/7ae9b35f12748616daf7bcc925fdde2e5def5187?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
   | [pyamber](https://app.codecov.io/gh/apache/texera/pull/5710/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `90.79% <ø> (ø)` | | Carriedforward from [7ae9b35](https://app.codecov.io/gh/apache/texera/commit/7ae9b35f12748616daf7bcc925fdde2e5def5187?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
   | [python](https://app.codecov.io/gh/apache/texera/pull/5710/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `90.74% <ø> (ø)` | | Carriedforward from [7ae9b35](https://app.codecov.io/gh/apache/texera/commit/7ae9b35f12748616daf7bcc925fdde2e5def5187?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
   | [workflow-compiling-service](https://app.codecov.io/gh/apache/texera/pull/5710/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `58.69% <ø> (ø)` | | Carriedforward from [7ae9b35](https://app.codecov.io/gh/apache/texera/commit/7ae9b35f12748616daf7bcc925fdde2e5def5187?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
   
   *This pull request uses carry forward flags. [Click here](https://docs.codecov.io/docs/carryforward-flags?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) to find out more.
   </details>
   
   [:umbrella: View full report in Codecov by Harness](https://app.codecov.io/gh/apache/texera/pull/5710?dropdown=coverage&src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache).   
   :loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache).
   <details><summary> :rocket: New features to boost your workflow: </summary>
   
   - :package: [JS Bundle Analysis](https://docs.codecov.com/docs/javascript-bundle-analysis): Save yourself from yourself by tracking and limiting bundle sizes in JS merges.
   </details>


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@texera.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] test(workflow-operator): add URLFetchUtil unit tests [texera]

Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on PR #5710:
URL: https://github.com/apache/texera/pull/5710#issuecomment-4775720784

   <!-- texera-reviewer-suggestion -->
   ### Automated Reviewer Suggestions
   
   Based on the `git blame` history of the changed files, we recommend the following reviewers:
   
   - **Contributors with relevant context:** `@aglinxinyuan`
     You can notify them by mentioning `@aglinxinyuan` in a comment.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@texera.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org