beam-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Work logged] (BEAM-3377) assert_that not working for streaming
Date Fri, 01 Jun 2018 22:21:00 GMT

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

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

                Author: ASF GitHub Bot
            Created on: 01/Jun/18 22:20
            Start Date: 01/Jun/18 22:20
    Worklog Time Spent: 10m 
      Work Description: robertwb commented on a change in pull request #5279: [BEAM-3377]
Call assert_that per window via custom_windowing (flag)
URL: https://github.com/apache/beam/pull/5279#discussion_r192528285
 
 

 ##########
 File path: sdks/python/apache_beam/testing/util.py
 ##########
 @@ -100,7 +125,8 @@ def _empty(actual):
   return _empty
 
 
-def assert_that(actual, matcher, label='assert_that', reify_windows=False):
+def assert_that(actual, matcher, custom_windowing=None,
 
 Review comment:
   Adding an argument in the middle of existing arguments is backwards incompatible (in this
case, it  breaks anyone passing label positionally rather than a as a keyword argument). Also,
custom_windowing is probably less common then specifying label, and better belongs next to
reify_windows (though it seems redundant with that, is the intent to deprecate it?)

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


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

    Worklog Id:     (was: 108219)
    Time Spent: 6h  (was: 5h 50m)

> assert_that not working for streaming
> -------------------------------------
>
>                 Key: BEAM-3377
>                 URL: https://issues.apache.org/jira/browse/BEAM-3377
>             Project: Beam
>          Issue Type: Bug
>          Components: sdk-py-core
>    Affects Versions: 2.2.0
>            Reporter: MarĂ­a GH
>            Priority: Major
>              Labels: starter
>          Time Spent: 6h
>  Remaining Estimate: 0h
>
> assert_that does not work for AfterWatermark timers.
> Easy way to reproduce: modify test_gbk_execution [1] in this form:
>  
> {code:java}
>  def test_this(self):
>     test_stream = (TestStream()
>                    .add_elements(['a', 'b', 'c'])
>                    .advance_watermark_to(20))
>     def fnc(x):
>       print 'fired_elem:', x
>       return x
>     options = PipelineOptions()
>     options.view_as(StandardOptions).streaming = True
>     p = TestPipeline(options=options)
>     records = (p
>                | test_stream
>                | beam.WindowInto(
>                    FixedWindows(15),
>                    trigger=trigger.AfterWatermark(early=trigger.AfterCount(2)),
>                    accumulation_mode=trigger.AccumulationMode.ACCUMULATING)
>                | beam.Map(lambda x: ('k', x))
>                | beam.GroupByKey())
>     assert_that(records, equal_to([
>         ('k', ['a', 'b', 'c'])]))
>     p.run()
> {code}
> This test will pass, but if the .advance_watermark_to(20) is removed, the test will fail.
However, both cases fire the same elements:
> 	fired_elem: ('k', ['a', 'b', 'c'])
> 	fired_elem: ('k', ['a', 'b', 'c'])
> In the passing case, they correspond to the sorted_actual inside the assert_that. In
the failing case:
> 	sorted_actual: [('k', ['a', 'b', 'c']), ('k', ['a', 'b', 'c'])]
> 	sorted_actual: []
> [1] https://github.com/mariapython/incubator-beam/blob/direct-timers-show/sdks/python/apache_beam/testing/test_stream_test.py#L120



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Mime
View raw message