@@ -77,6 +77,21 @@ def test_checker_error_count():
7777 assert "error_count" not in checker .__dict__
7878
7979
80+ @pytest .mark .parametrize ("warning" , [True , False , "cabbage" , "error" ])
81+ def test_checker_fail_on_warn (patches , warning ):
82+ checker = Checker ("path1" , "path2" , "path3" )
83+ patched = patches (
84+ ("Checker.args" , dict (new_callable = PropertyMock )),
85+ prefix = "envoy.base.checker.checker" )
86+
87+ with patched as (m_args , ):
88+ m_args .return_value .warning = warning
89+ assert (
90+ checker .fail_on_warn
91+ == (warning == "error" ))
92+ assert "fail_on_warn" not in checker .__dict__
93+
94+
8095def test_checker_failed ():
8196 checker = Checker ("path1" , "path2" , "path3" )
8297 checker .errors = dict (foo = ["err" ] * 3 , bar = ["err" ] * 5 , baz = ["err" ] * 7 )
@@ -97,19 +112,22 @@ def test_checker_fix():
97112
98113@pytest .mark .parametrize ("failed" , [True , False ])
99114@pytest .mark .parametrize ("warned" , [True , False ])
100- def test_checker_has_failed (patches , failed , warned ):
115+ @pytest .mark .parametrize ("fail_on_warn" , [True , False ])
116+ def test_checker_has_failed (patches , failed , warned , fail_on_warn ):
101117 checker = Checker ("path1" , "path2" , "path3" )
102118 patched = patches (
119+ ("Checker.fail_on_warn" , dict (new_callable = PropertyMock )),
103120 ("Checker.failed" , dict (new_callable = PropertyMock )),
104121 ("Checker.warned" , dict (new_callable = PropertyMock )),
105122 prefix = "envoy.base.checker.checker" )
106123
107- with patched as (m_failed , m_warned ):
124+ with patched as (m_fail_warn , m_failed , m_warned ):
125+ m_fail_warn .return_value = fail_on_warn
108126 m_failed .return_value = failed
109127 m_warned .return_value = warned
110128 result = checker .has_failed
111129
112- if failed or warned :
130+ if failed or ( warned and fail_on_warn ) :
113131 assert result is True
114132 else :
115133 assert result is False
0 commit comments