GitHub user markflyhigh reopened a pull request:
https://github.com/apache/incubator-beam/pull/1639
[BEAM-1112] Python E2E Test Framework And Wordcount E2E Test
Be sure to do all of the following to help us incorporate your contribution
quickly and easily:
- [x] Make sure the PR title is formatted like:
`[BEAM-<Jira issue #>] 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 `<Jira issue #>` 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).
---
- E2e test framework that supports TestRunner start and verify pipeline
job.
- add `TestOptions` which defined `on_success_matcher` that is used to
verify state/output of pipeline job.
- validate `on_success_matcher` before pipeline execution to make sure
it's unpicklable to a subclass of BaseMatcher.
- create a `TestDataflowRunner` which provide functionalities of
`DataflowRunner` plus result verification.
- provide a test verifier `PipelineStateMatcher` that can verify
pipeline job finished in DONE or not.
- Add wordcount_it (it = integration test) that build e2e test based on
existing wordcount pipeline.
- include wordcount_it to nose collector, so that wordcount_it can be
collected and run by nose.
- skip ITs when running unit tests from tox in precommit and postcommit.
Current changes will not change behavior of existing pre/postcommit.
Test is done by running `tox -e py27 -c sdks/python/tox.ini` for unit test
and running wordcount_it with `TestDataflowRunner` on service
([link](https://pantheon.corp.google.com/dataflow/job/2016-12-15_17_36_16-3857167705491723621?project=google.com:clouddfe)).
TODO:
- Output data verifier that verify pipeline output that stores in
filesystem.
- Add wordcount_it to precommit and replace existing wordcount execution
command in postcommit with a better structured nose command.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/markflyhigh/incubator-beam e2e-testrunner
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/incubator-beam/pull/1639.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 #1639
----
commit e1e1fa3a60e1fe234829432d144d6689e240b6f0
Author: Mark Liu <[email protected]>
Date: 2016-12-16T01:41:20Z
[BEAM-1112] Python E2E Test Framework And Wordcount E2E Test
commit 0e7007879ee082e3afe5db36107f51c03274f3f5
Author: Mark Liu <[email protected]>
Date: 2016-12-16T02:55:53Z
fixup! Fix Code Style
commit d6d71a717e8ed7ab32ffa02621c837c797f66cd7
Author: Mark Liu <[email protected]>
Date: 2016-12-20T19:15:59Z
fixup! Address Ahmet comments
----
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---