diff --git a/src/genie_python/genie_waitfor.py b/src/genie_python/genie_waitfor.py index 76c1bfde..9712d547 100644 --- a/src/genie_python/genie_waitfor.py +++ b/src/genie_python/genie_waitfor.py @@ -356,6 +356,10 @@ def start_waiting( ) if block is not None: + if not isinstance(block, str): + error = "First argument must be a valid block name or None, not {}".format(block) + raise TypeError(error) + if not self.api.block_exists(block): raise NameError('No block with the name "{}" exists'.format(block)) block = self.api.correct_blockname(block, add_prefix=False) diff --git a/tests/test_genie_waitfor.py b/tests/test_genie_waitfor.py index 194510c9..9ee1fd62 100644 --- a/tests/test_genie_waitfor.py +++ b/tests/test_genie_waitfor.py @@ -28,57 +28,66 @@ def setUp(self): self.genie_waitfor = WaitForController(API()) def test_GIVEN_silent_waitfor_time_WHEN_waitfor_time_THEN_no_output(self): - capturedOutput = StringIO() - sys.stdout = capturedOutput + capturedoutput = StringIO() + sys.stdout = capturedoutput self.genie_waitfor.start_waiting(seconds=0, quiet=True) sys.stdout = sys.__stdout__ - self.assertIs("", capturedOutput.getvalue()) + self.assertIs("", capturedoutput.getvalue()) def test_GIVEN_waitfor_time_WHEN_waitfor_time_THEN_output(self): - capturedOutput = StringIO() - sys.stdout = capturedOutput + capturedoutput = StringIO() + sys.stdout = capturedoutput self.genie_waitfor.start_waiting(seconds=0, quiet=False) sys.stdout = sys.__stdout__ - self.assertIsNot("", capturedOutput.getvalue()) + self.assertIsNot("", capturedoutput.getvalue()) def test_GIVEN_silent_waitfor_uamps_WHEN_waitfor_uamps_THEN_no_output(self): - capturedOutput = StringIO() - sys.stdout = capturedOutput + capturedoutput = StringIO() + sys.stdout = capturedoutput self.genie_waitfor.start_waiting(uamps=0, quiet=True) sys.stdout = sys.__stdout__ - self.assertIs("", capturedOutput.getvalue()) + self.assertIs("", capturedoutput.getvalue()) def test_GIVEN_waitfor_uamps_WHEN_waitfor_uamps_THEN_output(self): - capturedOutput = StringIO() - sys.stdout = capturedOutput + capturedoutput = StringIO() + sys.stdout = capturedoutput self.genie_waitfor.start_waiting(uamps=0, quiet=False) sys.stdout = sys.__stdout__ - self.assertIsNot("", capturedOutput.getvalue()) + self.assertIsNot("", capturedoutput.getvalue()) def test_GIVEN_silent_waitfor_raw_frames_WHEN_waitfor_raw_frames_THEN_no_output(self): - capturedOutput = StringIO() - sys.stdout = capturedOutput + capturedoutput = StringIO() + sys.stdout = capturedoutput self.genie_waitfor.start_waiting(raw_frames=0, quiet=True) sys.stdout = sys.__stdout__ - self.assertIs("", capturedOutput.getvalue()) + self.assertIs("", capturedoutput.getvalue()) def test_GIVEN_waitfor_raw_frames_WHEN_waitfor_raw_frames_THEN_output(self): - capturedOutput = StringIO() - sys.stdout = capturedOutput + capturedoutput = StringIO() + sys.stdout = capturedoutput self.genie_waitfor.start_waiting(raw_frames=0, quiet=False) sys.stdout = sys.__stdout__ - self.assertIsNot("", capturedOutput.getvalue()) + self.assertIsNot("", capturedoutput.getvalue()) def test_GIVEN_silent_waitfor_mevents_WHEN_waitfor_mevents_THEN_no_output(self): - capturedOutput = StringIO() - sys.stdout = capturedOutput + capturedoutput = StringIO() + sys.stdout = capturedoutput self.genie_waitfor.start_waiting(mevents=0, quiet=True) sys.stdout = sys.__stdout__ - self.assertIs("", capturedOutput.getvalue()) + self.assertIs("", capturedoutput.getvalue()) def test_GIVEN_waitfor_mevents_WHEN_waitfor_mevents_THEN_output(self): - capturedOutput = StringIO() - sys.stdout = capturedOutput + capturedoutput = StringIO() + sys.stdout = capturedoutput self.genie_waitfor.start_waiting(mevents=0, quiet=False) sys.stdout = sys.__stdout__ - self.assertIsNot("", capturedOutput.getvalue()) + self.assertIsNot("", capturedoutput.getvalue()) + + def test_GIVEN_waitfor_block_WHEN_waitfor_block_integer_THEN_error_output(self): + # Exception condition + with self.assertRaises(TypeError) as context: + self.genie_waitfor.start_waiting(block=10) # pyright: ignore + self.assertEqual( + str(context.exception), + "First argument must be a valid block name or None, not {}".format(10), + )