github.com/apache/beam/sdks/v2@v2.48.2/python/conftest.py (about) 1 # 2 # Licensed to the Apache Software Foundation (ASF) under one or more 3 # contributor license agreements. See the NOTICE file distributed with 4 # this work for additional information regarding copyright ownership. 5 # The ASF licenses this file to You under the Apache License, Version 2.0 6 # (the "License"); you may not use this file except in compliance with 7 # the License. You may obtain a copy of the License at 8 # 9 # http://www.apache.org/licenses/LICENSE-2.0 10 # 11 # Unless required by applicable law or agreed to in writing, software 12 # distributed under the License is distributed on an "AS IS" BASIS, 13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 # See the License for the specific language governing permissions and 15 # limitations under the License. 16 # 17 18 """Pytest configuration and custom hooks.""" 19 20 import sys 21 22 from apache_beam.options import pipeline_options 23 from apache_beam.testing.test_pipeline import TestPipeline 24 25 MAX_SUPPORTED_PYTHON_VERSION = (3, 8) 26 27 28 def pytest_addoption(parser): 29 parser.addoption( 30 '--test-pipeline-options', 31 help='Options to use in test pipelines. NOTE: Tests may ' 32 'ignore some or all of these options.') 33 34 35 # See pytest.ini for main collection rules. 36 collect_ignore_glob = [ 37 '*_py3%d.py' % minor for minor in range( 38 sys.version_info.minor + 1, MAX_SUPPORTED_PYTHON_VERSION[1] + 1) 39 ] 40 41 42 def pytest_configure(config): 43 """Saves options added in pytest_addoption for later use. 44 This is necessary since pytest-xdist workers do not have the same sys.argv as 45 the main pytest invocation. xdist does seem to pickle TestPipeline 46 """ 47 TestPipeline.pytest_test_pipeline_options = config.getoption( 48 'test_pipeline_options', default='') 49 # Enable optional type checks on all tests. 50 pipeline_options.enable_all_additional_type_checks()