[ 
https://issues.apache.org/jira/browse/BEAM-14546?focusedWorklogId=777748&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-777748
 ]

ASF GitHub Bot logged work on BEAM-14546:
-----------------------------------------

                Author: ASF GitHub Bot
            Created on: 02/Jun/22 17:37
            Start Date: 02/Jun/22 17:37
    Worklog Time Spent: 10m 
      Work Description: jrmccluskey commented on code in PR #17813:
URL: https://github.com/apache/beam/pull/17813#discussion_r888216256


##########
sdks/go/pkg/beam/testing/passert/count_test.go:
##########
@@ -22,24 +22,62 @@ import (
        "github.com/apache/beam/sdks/v2/go/pkg/beam/testing/ptest"
 )
 
-func TestCount_Good(t *testing.T) {
-       p, s := beam.NewPipelineWithRoot()
-       col := beam.Create(s, "a", "b", "c", "d", "e")
-       count := 5
+func TestCount(t *testing.T) {
+       var tests = []struct {
+               name     string
+               elements []string
+               count    int
+       }{
+               {
+                       "full",
+                       []string{"a", "b", "c", "d", "e"},
+                       5,
+               },
+               {
+                       "empty",
+                       []string{},
+                       0,
+               },
+       }
+       for _, test := range tests {
+               t.Run(test.name, func(t *testing.T) {
+                       p, s := beam.NewPipelineWithRoot()
+                       col := beam.CreateList(s, test.elements)
 
-       Count(s, col, "TestCount_Good", count)
-       if err := ptest.Run(p); err != nil {
-               t.Errorf("Pipeline failed: %v", err)
+                       Count(s, col, test.name, test.count)
+                       if err := ptest.Run(p); err != nil {
+                               t.Errorf("Pipeline failed: %v", err)
+                       }
+               })
        }
 }
 
 func TestCount_Bad(t *testing.T) {

Review Comment:
   We could, although I don't see too much value in bundling them into one 
suite. The setup isn't particularly long or complicated to test the function, 
so deduplicating it doesn't add much value IMO. Totally cool doing it if you 
feel strongly though. 





Issue Time Tracking
-------------------

    Worklog Id:     (was: 777748)
    Time Spent: 2h 20m  (was: 2h 10m)

> [Go SDK] passert.Count succeeds for empty PCollections.
> -------------------------------------------------------
>
>                 Key: BEAM-14546
>                 URL: https://issues.apache.org/jira/browse/BEAM-14546
>             Project: Beam
>          Issue Type: Improvement
>          Components: sdk-go
>            Reporter: Robert Burke
>            Assignee: Jack McCluskey
>            Priority: P3
>          Time Spent: 2h 20m
>  Remaining Estimate: 0h
>
> https://github.com/apache/beam/blob/sdks/v2.39.0/sdks/go/pkg/beam/testing/passert/count.go#L28
> Since it's using a Combine to do the count, it never executes for empty 
> Pcollections, and is unable to fail.
> The fix is: when count > 0, plumb the pcollection through as a side input to 
> a DoFn that requires the side input to be non-empty. This would catch the 
> empty PCollection case.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

Reply via email to