ASF GitHub Bot logged work on BEAM-8575:

                Author: ASF GitHub Bot
            Created on: 08/Nov/19 21:40
            Start Date: 08/Nov/19 21:40
    Worklog Time Spent: 10m 
      Work Description: lukecwik commented on pull request #9957: [BEAM-8575] 
Add validates runner tests for 1. Custom window fn: Test a customized window fn 
work as expected; 2. Windows idempotency: Applying the same window fn (or 
window fn + GBK) to the input multiple times will have the same effect as 
applying it once.
URL: https://github.com/apache/beam/pull/9957#discussion_r344377337

 File path: sdks/python/apache_beam/transforms/window_test.py
 @@ -65,6 +76,44 @@ def process(self, element, window=core.DoFn.WindowParam):
 reify_windows = core.ParDo(ReifyWindowsFn())
+class TestCustomWindows(NonMergingWindowFn):
+  """A custom non merging window fn which assigns elements into interval 
+  based on the element timestamps.
+  """
+  def __init__(self, first_window_end, second_window_end):
+    self.first_window_end = Timestamp.of(first_window_end)
+    self.second_window_end = Timestamp.of(second_window_end)
+  def assign(self, context):
+    timestamp = context.timestamp
+    if timestamp < self.first_window_end:
+      return [IntervalWindow(0, self.first_window_end)]
+    elif timestamp < self.second_window_end:
+      return [IntervalWindow(self.first_window_end, self.second_window_end)]
+    else:
+      return [IntervalWindow(self.second_window_end, timestamp)]
+  def get_window_coder(self):
+    return IntervalWindowCoder()
+  def to_runner_api_parameter(self, context):
 Review comment:
   It doesn't seem like there is a good way for custom user window fns to 
return a python dict or some other structure and you currently need to 
translate the data you want to store in the window fn into some proto. Instead 
of defining a test windowfn proto, use one of the well known protobuf types 
such as 
 and embed the information within those objects yourself instead of defining 
your own within StandardWindowFns.
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.
For queries about this service, please contact Infrastructure at:

Issue Time Tracking

    Worklog Id:     (was: 340757)
    Time Spent: 1h 40m  (was: 1.5h)

> Add more Python validates runner tests
> --------------------------------------
>                 Key: BEAM-8575
>                 URL: https://issues.apache.org/jira/browse/BEAM-8575
>             Project: Beam
>          Issue Type: Test
>          Components: sdk-py-core, testing
>            Reporter: wendy liu
>            Assignee: wendy liu
>            Priority: Major
>          Time Spent: 1h 40m
>  Remaining Estimate: 0h
> This is the umbrella issue to track the work of adding more Python tests to 
> improve test coverage.

This message was sent by Atlassian Jira

Reply via email to