Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id A56BF2009C6 for ; Tue, 31 May 2016 23:08:18 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id A4315160A44; Tue, 31 May 2016 21:08:18 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id ED6631609AD for ; Tue, 31 May 2016 23:08:17 +0200 (CEST) Received: (qmail 8426 invoked by uid 500); 31 May 2016 21:08:17 -0000 Mailing-List: contact commits-help@beam.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@beam.incubator.apache.org Delivered-To: mailing list commits@beam.incubator.apache.org Received: (qmail 8417 invoked by uid 99); 31 May 2016 21:08:17 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd1-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 31 May 2016 21:08:17 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id C415ECAF20 for ; Tue, 31 May 2016 21:08:16 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -4.646 X-Spam-Level: X-Spam-Status: No, score=-4.646 tagged_above=-999 required=6.31 tests=[KAM_ASCII_DIVIDERS=0.8, KAM_LAZY_DOMAIN_SECURITY=1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-1.426] autolearn=disabled Received: from mx2-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024) with ESMTP id vu61jnTbpvKz for ; Tue, 31 May 2016 21:08:14 +0000 (UTC) Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx2-lw-eu.apache.org (ASF Mail Server at mx2-lw-eu.apache.org) with SMTP id E1B4C5F236 for ; Tue, 31 May 2016 21:08:13 +0000 (UTC) Received: (qmail 8285 invoked by uid 99); 31 May 2016 21:08:13 -0000 Received: from arcas.apache.org (HELO arcas) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 31 May 2016 21:08:13 +0000 Received: from arcas.apache.org (localhost [127.0.0.1]) by arcas (Postfix) with ESMTP id EA4212C1F5D for ; Tue, 31 May 2016 21:08:12 +0000 (UTC) Date: Tue, 31 May 2016 21:08:12 +0000 (UTC) From: "ASF GitHub Bot (JIRA)" To: commits@beam.incubator.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (BEAM-155) Support asserting the contents of windows and panes in PAssert MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 archived-at: Tue, 31 May 2016 21:08:18 -0000 [ https://issues.apache.org/jira/browse/BEAM-155?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15308622#comment-15308622 ] ASF GitHub Bot commented on BEAM-155: ------------------------------------- GitHub user tgroh opened a pull request: https://github.com/apache/incubator-beam/pull/406 [BEAM-155] Use custom Assertions in Spark Streaming Tests Be sure to do all of the following to help us incorporate your contribution quickly and easily: - [ ] Make sure the PR title is formatted like: `[BEAM-] Description of pull request` - [ ] Make sure tests pass via `mvn clean verify`. (Even better, enable Travis-CI on your fork and ensure the whole test matrix passes). - [ ] Replace `` in the title with the actual Jira issue number, if there is one. - [ ] If this contribution is large, please file an Apache [Individual Contributor License Agreement](https://www.apache.org/licenses/icla.txt). --- Spark Streaming Side Inputs behave differently than the Beam Model. As the underlying implementation of PAssert is based on side inputs, this means that Streaming Spark Tests that use SideInputs as the actuals are non-portable. More specifically, this enables pipeline-construction time enforcement that a Preexisting Side Input must be in a window compatible with the Global Window (otherwise the side input WindowFn should throw an exception, e.g. in [PartitioningWindowFn](https://github.com/apache/incubator-beam/blob/master/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/windowing/PartitioningWindowFn.java#L46) Modify FlattenStreamingTest, KafkaStreamingTest, and SimpleStreamingWordCountTest to group all of the contents of the asserted PCollection into a single key, and assert the contents of that concatenation, rather than doing so via PAssert and Side Input. You can merge this pull request into a Git repository by running: $ git pull https://github.com/tgroh/incubator-beam spark_custom_streaming_assertions Alternatively you can review and apply these changes as the patch at: https://github.com/apache/incubator-beam/pull/406.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #406 ---- commit ccf3412b06862dddaabbd0869aa0aefca3c77156 Author: Thomas Groh Date: 2016-05-31T20:27:43Z Use custom Assertions in Spark Streaming Tests Spark Streaming Side Inputs behave differently than the Beam Model. As the underlying implementation of PAssert is based on side inputs, this means that Streaming Spark Tests that use SideInputs as the actuals are non-portable. Modify FlattenStreamingTest, KafkaStreamingTest, and SimpleStreamingWordCountTest to group all of the contents of the asserted PCollection into a single key, and assert the contents of that concatenation, rather than doing so via PAssert and Side Input. ---- > Support asserting the contents of windows and panes in PAssert > -------------------------------------------------------------- > > Key: BEAM-155 > URL: https://issues.apache.org/jira/browse/BEAM-155 > Project: Beam > Issue Type: Improvement > Components: sdk-java-core > Reporter: Thomas Groh > Assignee: Thomas Groh > > This consists of reifying the output windows and panes, and running asserts per-window about the contents of panes. > This includes aggregated matching and final pane matching, e.g. > PAssert.that(output).byOnTimePane().hasOutputElements(foo, bar); > // For discarding mode - could have emitted (say) [spam, eggs], [spam], [], [sausage], [] > PAssert.that(output).byFinalPane().hasOutputElements(spam, eggs, sausage, spam); > // For accumulating mode without late data > PAssert.that(output).finalPane().containsInAnyOrder(spam, eggs, sausage, spam); > // For accumulating mode with late data > PAssert.that(output).finalPane().containsInAnyOrder(foo, bar).mayAlsoContain(baz, rab); > See also: https://docs.google.com/document/d/1fZUUbG2LxBtqCVabQshldXIhkMcXepsbv2vuuny8Ix4/edit# -- This message was sent by Atlassian JIRA (v6.3.4#6332)