Coverage for osmclient/common/test/test_utils.py: 100%

36 statements  

« prev     ^ index     » next       coverage.py v7.3.1, created at 2024-06-22 09:01 +0000

1# Copyright 2017 Sandvine 

2# 

3# All Rights Reserved. 

4# 

5# Licensed under the Apache License, Version 2.0 (the "License"); you may 

6# not use this file except in compliance with the License. You may obtain 

7# 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, WITHOUT 

13# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 

14# License for the specific language governing permissions and limitations 

15# under the License. 

16 

17 

18import unittest 

19from osmclient.common import utils 

20 

21 

22class TestUtil(unittest.TestCase): 

23 def test_wait_for_method_basic(self): 

24 def foobar(): 

25 return True 

26 

27 assert utils.wait_for_value(lambda: foobar()) 

28 

29 def test_wait_for_method_timeout(self): 

30 def foobar(): 

31 return False 

32 

33 assert not utils.wait_for_value(lambda: foobar(), wait_time=0) 

34 

35 def test_wait_for_method_paramter(self): 

36 def foobar(input): 

37 return input 

38 

39 assert not utils.wait_for_value(lambda: foobar(False), wait_time=0) 

40 assert utils.wait_for_value(lambda: foobar(True), wait_time=0) 

41 

42 def test_wait_for_method_wait_for_change(self): 

43 def foobar(): 

44 if foobar.counter == 0: 

45 return True 

46 foobar.counter -= 1 

47 return False 

48 

49 foobar.counter = 1 

50 assert utils.wait_for_value(lambda: foobar(), wait_time=1) 

51 

52 def test_wait_for_method_exception(self): 

53 def foobar(): 

54 raise Exception("send exception") 

55 

56 assert not utils.wait_for_value( 

57 lambda: foobar(), wait_time=0, catch_exception=Exception 

58 ) 

59 

60 def test_wait_for_method_first_exception(self): 

61 def foobar(): 

62 if foobar.counter == 0: 

63 return True 

64 foobar.counter -= 1 

65 raise Exception("send exception") 

66 

67 foobar.counter = 1 

68 assert utils.wait_for_value( 

69 lambda: foobar(), wait_time=1, catch_exception=Exception 

70 )