1414# License for the specific language governing permissions and limitations
1515# under the License.
1616
17- from __future__ import absolute_import
18- from __future__ import division
19- from __future__ import unicode_literals
20-
2117# pylint: disable=no-self-use
2218
2319import unittest
2723import exec_helpers
2824
2925
30- cmd = "ls -la | awk \ ' {print $1}\ ' "
26+ cmd = "ls -la | awk '{print $1}'"
3127
3228
3329# noinspection PyTypeChecker
3430class TestExecResult (unittest .TestCase ):
35- @mock .patch (' exec_helpers.exec_result.logger' )
31+ @mock .patch (" exec_helpers.exec_result.logger" )
3632 def test_create_minimal (self , logger ):
3733 """Test defaults"""
3834 result = exec_helpers .ExecResult (cmd = cmd )
3935 self .assertEqual (result .cmd , cmd )
40- self .assertEqual (result .cmd , result [' cmd' ])
36+ self .assertEqual (result .cmd , result [" cmd" ])
4137 self .assertEqual (result .stdout , ())
42- self .assertEqual (result .stdout , result [' stdout' ])
38+ self .assertEqual (result .stdout , result [" stdout" ])
4339 self .assertEqual (result .stderr , ())
44- self .assertEqual (result .stderr , result [' stderr' ])
40+ self .assertEqual (result .stderr , result [" stderr" ])
4541 self .assertEqual (result .stdout_bin , bytearray ())
4642 self .assertEqual (result .stderr_bin , bytearray ())
47- self .assertEqual (result .stdout_str , '' )
48- self .assertEqual (result .stdout_str , result [' stdout_str' ])
49- self .assertEqual (result .stderr_str , '' )
50- self .assertEqual (result .stderr_str , result [' stderr_str' ])
51- self .assertEqual (result .stdout_brief , '' )
52- self .assertEqual (result .stdout_brief , result [' stdout_brief' ])
53- self .assertEqual (result .stderr_brief , '' )
54- self .assertEqual (result .stderr_brief , result [' stderr_brief' ])
43+ self .assertEqual (result .stdout_str , "" )
44+ self .assertEqual (result .stdout_str , result [" stdout_str" ])
45+ self .assertEqual (result .stderr_str , "" )
46+ self .assertEqual (result .stderr_str , result [" stderr_str" ])
47+ self .assertEqual (result .stdout_brief , "" )
48+ self .assertEqual (result .stdout_brief , result [" stdout_brief" ])
49+ self .assertEqual (result .stderr_brief , "" )
50+ self .assertEqual (result .stderr_brief , result [" stderr_brief" ])
5551 self .assertEqual (result .exit_code , exec_helpers .ExitCodes .EX_INVALID )
56- self .assertEqual (result .exit_code , result [' exit_code' ])
52+ self .assertEqual (result .exit_code , result [" exit_code" ])
5753 self .assertEqual (
5854 repr (result ),
59- ' {cls}(cmd={cmd!r}, stdout={stdout}, stderr={stderr}, '
60- ' exit_code={exit_code!s})' .format (
55+ " {cls}(cmd={cmd!r}, stdout={stdout}, stderr={stderr}, "
56+ " exit_code={exit_code!s})" .format (
6157 cls = exec_helpers .ExecResult .__name__ ,
6258 cmd = cmd ,
6359 stdout = (),
6460 stderr = (),
65- exit_code = exec_helpers .ExitCodes .EX_INVALID
66- )
61+ exit_code = exec_helpers .ExitCodes .EX_INVALID ,
62+ ),
6763 )
6864 self .assertEqual (
6965 str (result ),
7066 "{cls}(\n \t cmd={cmd!r},"
7167 "\n \t stdout=\n '{stdout_brief}',"
7268 "\n \t stderr=\n '{stderr_brief}', "
73- ' \n \t exit_code={exit_code!s}\n )' .format (
69+ " \n \t exit_code={exit_code!s}\n )" .format (
7470 cls = exec_helpers .ExecResult .__name__ ,
7571 cmd = cmd ,
76- stdout_brief = '' ,
77- stderr_brief = '' ,
78- exit_code = exec_helpers .ExitCodes .EX_INVALID
79- )
72+ stdout_brief = "" ,
73+ stderr_brief = "" ,
74+ exit_code = exec_helpers .ExitCodes .EX_INVALID ,
75+ ),
8076 )
8177
8278 with self .assertRaises (IndexError ):
83- # pylint: disable=pointless-statement
8479 # noinspection PyStatementEffect
85- result ['nonexistent' ]
86- # pylint: enable=pointless-statement
80+ result ["nonexistent" ] # pylint: disable=pointless-statement
8781
8882 with self .assertRaises (exec_helpers .ExecHelperError ):
89- # pylint: disable=pointless-statement
9083 # noinspection PyStatementEffect
91- result ['stdout_json' ]
92- # pylint: enable=pointless-statement
93- logger .assert_has_calls ((
94- mock .call .exception (
95- "{cmd} stdout is not valid json:\n "
96- "{stdout_str!r}\n " .format (
97- cmd = cmd ,
98- stdout_str = '' )),
99- ))
100- self .assertIsNone (result ['stdout_yaml' ])
84+ result ["stdout_json" ] # pylint: disable=pointless-statement
85+ logger .assert_has_calls (
86+ (
87+ mock .call .exception (
88+ "{cmd} stdout is not valid json:\n " "{stdout_str!r}\n " .format (cmd = cmd , stdout_str = "" )
89+ ),
90+ )
91+ )
92+ self .assertIsNone (result ["stdout_yaml" ])
10193
10294 self .assertEqual (
103- hash (result ),
104- hash (
105- (
106- exec_helpers .ExecResult ,
107- cmd ,
108- None ,
109- (),
110- (),
111- exec_helpers .ExitCodes .EX_INVALID
112- )
113- )
95+ hash (result ), hash ((exec_helpers .ExecResult , cmd , None , (), (), exec_helpers .ExitCodes .EX_INVALID ))
11496 )
11597
116- @mock .patch (' exec_helpers.exec_result.logger' , autospec = True )
98+ @mock .patch (" exec_helpers.exec_result.logger" , autospec = True )
11799 def test_not_implemented (self , logger ):
118100 """Test assertion on non implemented deserializer"""
119101 result = exec_helpers .ExecResult (cmd = cmd )
120- deserialize = getattr (result , ' _ExecResult__deserialize' )
102+ deserialize = getattr (result , " _ExecResult__deserialize" )
121103 with self .assertRaises (NotImplementedError ):
122- deserialize ('tst' )
123- logger .assert_has_calls ((
124- mock .call .error (
125- '{fmt} deserialize target is not implemented' .format (
126- fmt = 'tst' )),
127- ))
104+ deserialize ("tst" )
105+ logger .assert_has_calls ((mock .call .error ("{fmt} deserialize target is not implemented" .format (fmt = "tst" )),))
128106
129107 def test_setters (self ):
130108 result = exec_helpers .ExecResult (cmd = cmd )
131109 self .assertEqual (result .exit_code , exec_helpers .ExitCodes .EX_INVALID )
132110
133- tst_stdout = [
134- b'Test\n ' ,
135- b'long\n ' ,
136- b'stdout\n ' ,
137- b'data\n ' ,
138- b' \n ' ,
139- b'5\n ' ,
140- b'6\n ' ,
141- b'7\n ' ,
142- b'8\n ' ,
143- b'end!\n '
144- ]
145-
146- tst_stderr = [b'test\n ' ] * 10
147-
148- with mock .patch ('exec_helpers.exec_result.logger' , autospec = True ):
111+ tst_stdout = [b"Test\n " , b"long\n " , b"stdout\n " , b"data\n " , b" \n " , b"5\n " , b"6\n " , b"7\n " , b"8\n " , b"end!\n " ]
112+
113+ tst_stderr = [b"test\n " ] * 10
114+
115+ with mock .patch ("exec_helpers.exec_result.logger" , autospec = True ):
149116 result .read_stdout (tst_stdout )
150117 self .assertEqual (result .stdout , tuple (tst_stdout ))
151- self .assertEqual (result .stdout , result [' stdout' ])
118+ self .assertEqual (result .stdout , result [" stdout" ])
152119
153- with mock .patch (' exec_helpers.exec_result.logger' , autospec = True ):
120+ with mock .patch (" exec_helpers.exec_result.logger" , autospec = True ):
154121 result .read_stderr (tst_stderr )
155122 self .assertEqual (result .stderr , tuple (tst_stderr ))
156- self .assertEqual (result .stderr , result [' stderr' ])
123+ self .assertEqual (result .stderr , result [" stderr" ])
157124
158125 with self .assertRaises (TypeError ):
159- result .exit_code = ' code'
126+ result .exit_code = " code"
160127
161128 result .exit_code = 0
162129 self .assertEqual (result .exit_code , 0 )
163- self .assertEqual (result .exit_code , result [' exit_code' ])
130+ self .assertEqual (result .exit_code , result [" exit_code" ])
164131
165132 with self .assertRaises (RuntimeError ):
166133 result .exit_code = 1
167134
168135 self .assertEqual (result .exit_code , 0 )
169136
170- self .assertEqual (result .stdout_bin , bytearray (b'' .join (tst_stdout )))
171- self .assertEqual (result .stderr_bin , bytearray (b'' .join (tst_stderr )))
137+ self .assertEqual (result .stdout_bin , bytearray (b"" .join (tst_stdout )))
138+ self .assertEqual (result .stderr_bin , bytearray (b"" .join (tst_stderr )))
172139
173- stdout_br = tst_stdout [:3 ] + [b' ...\n ' ] + tst_stdout [- 3 :]
174- stderr_br = tst_stderr [:3 ] + [b' ...\n ' ] + tst_stderr [- 3 :]
140+ stdout_br = tst_stdout [:3 ] + [b" ...\n " ] + tst_stdout [- 3 :]
141+ stderr_br = tst_stderr [:3 ] + [b" ...\n " ] + tst_stderr [- 3 :]
175142
176- stdout_brief = b'' .join (stdout_br ).strip ().decode (encoding = ' utf-8' )
177- stderr_brief = b'' .join (stderr_br ).strip ().decode (encoding = ' utf-8' )
143+ stdout_brief = b"" .join (stdout_br ).strip ().decode (encoding = " utf-8" )
144+ stderr_brief = b"" .join (stderr_br ).strip ().decode (encoding = " utf-8" )
178145
179146 self .assertEqual (result .stdout_brief , stdout_brief )
180147 self .assertEqual (result .stderr_brief , stderr_brief )
181148
182149 def test_json (self ):
183- result = exec_helpers .ExecResult (' test' , stdout = [b'{"test": true}' ])
184- self .assertEqual (result .stdout_json , {' test' : True })
150+ result = exec_helpers .ExecResult (" test" , stdout = [b'{"test": true}' ])
151+ self .assertEqual (result .stdout_json , {" test" : True })
185152
186- @mock .patch (' exec_helpers.exec_result.logger' , autospec = True )
153+ @mock .patch (" exec_helpers.exec_result.logger" , autospec = True )
187154 def test_wrong_result (self , logger ):
188155 """Test logging exception if stdout if not a correct json"""
189- cmd = "ls -la | awk \ ' {print $1\}\ ' "
156+ cmd = "ls -la | awk '{print $1\}'"
190157 result = exec_helpers .ExecResult (cmd = cmd )
191158 with self .assertRaises (exec_helpers .ExecHelperError ):
192- # pylint: disable=pointless-statement
193159 # noinspection PyStatementEffect
194- result .stdout_json
195- # pylint: enable=pointless-statement
196- logger .assert_has_calls ((
197- mock .call .exception (
198- "{cmd} stdout is not valid json:\n "
199- "{stdout_str!r}\n " .format (
200- cmd = cmd ,
201- stdout_str = '' )),
202- ))
203- self .assertIsNone (result ['stdout_yaml' ])
160+ result .stdout_json # pylint: disable=pointless-statement
161+ logger .assert_has_calls (
162+ (
163+ mock .call .exception (
164+ "{cmd} stdout is not valid json:\n " "{stdout_str!r}\n " .format (cmd = cmd , stdout_str = "" )
165+ ),
166+ )
167+ )
168+ self .assertIsNone (result ["stdout_yaml" ])
204169
205170 def test_not_equal (self ):
206171 """Exec result equality is validated by all fields."""
207- result1 = exec_helpers .ExecResult (' cmd1' )
208- result2 = exec_helpers .ExecResult (' cmd2' )
172+ result1 = exec_helpers .ExecResult (" cmd1" )
173+ result2 = exec_helpers .ExecResult (" cmd2" )
209174 self .assertNotEqual (result1 , result2 )
210175
211176 result1 = exec_helpers .ExecResult (cmd )
212177 result2 = exec_helpers .ExecResult (cmd )
213- result1 .read_stdout ([b'a' ])
214- result2 .read_stdout ([b'b' ])
178+ result1 .read_stdout ([b"a" ])
179+ result2 .read_stdout ([b"b" ])
215180 self .assertNotEqual (result1 , result2 )
216181
217182 result1 = exec_helpers .ExecResult (cmd )
218183 result2 = exec_helpers .ExecResult (cmd )
219- result1 .read_stderr ([b'a' ])
220- result2 .read_stderr ([b'b' ])
184+ result1 .read_stderr ([b"a" ])
185+ result2 .read_stderr ([b"b" ])
221186 self .assertNotEqual (result1 , result2 )
222187
223188 result1 = exec_helpers .ExecResult (cmd )
@@ -235,23 +200,23 @@ def test_finalize(self):
235200 result .exit_code = 1
236201
237202 with self .assertRaises (RuntimeError ):
238- result .read_stdout ([b' out' ])
203+ result .read_stdout ([b" out" ])
239204
240205 with self .assertRaises (RuntimeError ):
241- result .read_stderr ([b' err' ])
206+ result .read_stderr ([b" err" ])
242207
243208 def test_stdin_none (self ):
244209 result = exec_helpers .ExecResult (cmd , exit_code = 0 )
245210 self .assertIsNone (result .stdin )
246211
247212 def test_stdin_utf (self ):
248- result = exec_helpers .ExecResult (cmd , stdin = u' STDIN' , exit_code = 0 )
249- self .assertEqual (result .stdin , u' STDIN' )
213+ result = exec_helpers .ExecResult (cmd , stdin = " STDIN" , exit_code = 0 )
214+ self .assertEqual (result .stdin , " STDIN" )
250215
251216 def test_stdin_bytes (self ):
252- result = exec_helpers .ExecResult (cmd , stdin = b' STDIN' , exit_code = 0 )
253- self .assertEqual (result .stdin , u' STDIN' )
217+ result = exec_helpers .ExecResult (cmd , stdin = b" STDIN" , exit_code = 0 )
218+ self .assertEqual (result .stdin , " STDIN" )
254219
255220 def test_stdin_bytearray (self ):
256- result = exec_helpers .ExecResult (cmd , stdin = bytearray (b' STDIN' ), exit_code = 0 )
257- self .assertEqual (result .stdin , u' STDIN' )
221+ result = exec_helpers .ExecResult (cmd , stdin = bytearray (b" STDIN" ), exit_code = 0 )
222+ self .assertEqual (result .stdin , " STDIN" )
0 commit comments