| # 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. | |
| import mock | |
| import pytest | |
| from api.v1.api_pb2 import SDK_JAVA | |
| from ci_cd import _check_envs, _run_ci_cd | |
| from config import Origin, Config | |
| @pytest.mark.parametrize("step", ["CI", "CD"]) | |
| @mock.patch("ci_cd.DatastoreClient") | |
| @mock.patch("ci_cd.find_examples") | |
| @mock.patch("verify.Verifier._run_and_verify") | |
| def test_ci_step( | |
| mock_run_and_verify, mock_find_examples, mock_datastore, create_test_example, step | |
| ): | |
| mock_find_examples.return_value = [ | |
| create_test_example(tag_meta=dict(name="Default", default_example=True)), | |
| create_test_example(tag_meta=dict(name="Single", multifile=False)), | |
| create_test_example(is_multifile=True, tag_meta=dict(name="Multi")), | |
| ] | |
| _run_ci_cd( | |
| step, | |
| "SDK_JAVA", | |
| Origin.PG_EXAMPLES, | |
| "test", | |
| Config.DEFAULT_NAMESPACE, | |
| [ | |
| "../../examples", | |
| ], | |
| ) | |
| mock_run_and_verify.assert_called_once() | |
| if step == "CD": | |
| mock_datastore.assert_called_once() | |
| def test__check_envs(): | |
| with pytest.raises(KeyError): | |
| _check_envs() |