1# Copyright 2017, Google LLC 2# 3# Licensed under the Apache License, Version 2.0 (the "License"); 4# you may not use this file except in compliance with the License. 5# You may obtain a copy of the License at 6# 7# http://www.apache.org/licenses/LICENSE-2.0 8# 9# Unless required by applicable law or agreed to in writing, software 10# distributed under the License is distributed on an "AS IS" BASIS, 11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12# See the License for the specific language governing permissions and 13# limitations under the License. 14 15from unittest import mock 16 17from google.api_core.future import _helpers 18 19 20@mock.patch("threading.Thread", autospec=True) 21def test_start_deamon_thread(unused_thread): 22 deamon_thread = _helpers.start_daemon_thread(target=mock.sentinel.target) 23 assert deamon_thread.daemon is True 24 25 26def test_safe_invoke_callback(): 27 callback = mock.Mock(spec=["__call__"], return_value=42) 28 result = _helpers.safe_invoke_callback(callback, "a", b="c") 29 assert result == 42 30 callback.assert_called_once_with("a", b="c") 31 32 33def test_safe_invoke_callback_exception(): 34 callback = mock.Mock(spec=["__call__"], side_effect=ValueError()) 35 result = _helpers.safe_invoke_callback(callback, "a", b="c") 36 assert result is None 37 callback.assert_called_once_with("a", b="c") 38