| /* |
| * 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. |
| */ |
| |
| |
| apply plugin: org.apache.beam.gradle.BeamModulePlugin |
| applyPythonNature() |
| |
| dependencies { |
| distTarBall project(path: ":sdks:python", configuration: "distTarBall") |
| } |
| |
| pythonVersion = '2.7' |
| |
| description = "Apache Beam :: SDKs :: Python :: Load Tests" |
| |
| def mainClassProperty = "loadTest.mainClass" |
| def mainClass = project.findProperty(mainClassProperty) |
| |
| def loadTestArgsProperty = "loadTest.args" |
| |
| def runnerProperty = "runner" |
| |
| task run(type: Exec, dependsOn: installGcpTest) { |
| def loadTestArgs = project.findProperty(loadTestArgsProperty) ?: "" |
| |
| def runnerArg = project.findProperty(runnerProperty) ?: "" |
| if (runnerArg == 'DataflowRunner' || runnerArg == 'TestDataflowRunner') { |
| dependsOn ':sdks:python:sdist' |
| loadTestArgs +=" --sdk_location=${files(configurations.distTarBall.files).singleFile}" |
| } |
| |
| environment "LOAD_TEST_ENABLED", 'true' |
| setWorkingDir "${project.rootDir}/sdks/python" |
| |
| commandLine 'sh', '-c', "${project.ext.envdir}/bin/python setup.py nosetests --test-pipeline-options=\"${parseOptions(loadTestArgs)}\" --tests ${mainClass} --ignore-files \'.*py3\\d?\\.py\$\'" |
| ignoreExitValue true |
| |
| doLast { |
| if (execResult.exitValue != 0) { |
| throw new GradleException('error occurred') |
| } |
| } |
| } |
| |
| def parseOptions(String option) { |
| option.replace('\"', '\\"') |
| } |