blob: b525cae34a5e2357d5f7278c753bd4aadd9470c8 [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from test_helper import run_common_tests, failed, passed, \
get_answer_placeholders, get_file_output
def test_dofn_process_method():
placeholders = get_answer_placeholders()
placeholder = placeholders[0]
if 'pvalue.TaggedOutput' in placeholder:
passed()
else:
failed('Use pvalue.TaggedOutput')
def test_pardo():
placeholders = get_answer_placeholders()
placeholder = placeholders[1]
if all(['beam.ParDo(ProcessNumbersDoFn())', '.with_outputs,']) in placeholder:
passed()
else:
failed('Use beam.ParDo that outputs multiple outputs')
def test_output():
output = get_file_output()
numbers_below_100 = ['0', '10', '20', '50']
numbers_above_100 = ['120', '200']
answers = []
for num in numbers_below_100:
answers.append('Number <= 100: ' + num)
for num in numbers_above_100:
answers.append('Number > 100: ' + num)
if all(num in output for num in answers):
passed()
else:
failed("Incorrect output. Output the numbers to the output tags accordingly.")
if __name__ == '__main__':
run_common_tests()
test_dofn_process_method()
test_pardo()
test_output()