[
https://issues.apache.org/jira/browse/BEAM-14546?focusedWorklogId=777756&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-777756
]
ASF GitHub Bot logged work on BEAM-14546:
-----------------------------------------
Author: ASF GitHub Bot
Created on: 02/Jun/22 17:43
Start Date: 02/Jun/22 17:43
Worklog Time Spent: 10m
Work Description: damccorm commented on code in PR #17813:
URL: https://github.com/apache/beam/pull/17813#discussion_r888219278
##########
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:
I'd argue its worth doing since more/duplicated code => more opportunities
for bugs to slip in when updates are needed and more for a future developer
(maybe us) to understand ([code is a
liability](https://blog.devgenius.io/code-is-a-liability-to-developers-e6ffade2b7d0)).
I'm not going to block on it though, its not very important
Issue Time Tracking
-------------------
Worklog Id: (was: 777756)
Time Spent: 2h 40m (was: 2.5h)
> [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 40m
> 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)