diff --git a/pyracf/common/irrsmo00.c b/pyracf/common/irrsmo00.c index 85c7580..9f3325b 100644 --- a/pyracf/common/irrsmo00.c +++ b/pyracf/common/irrsmo00.c @@ -127,10 +127,10 @@ static PyObject *call_irrsmo00(PyObject *self, PyObject *args, PyObject *kwargs) // Py_BuildValue() will return a Tuple. return Py_BuildValue( - "{s:y#,s:[B,B,B],s:y}", + "{s:y#,s:[B,B,B],s:y#}", "resultBuffer", result_buffer, result_len, "returnCodes", saf_rc, racf_rc, racf_rsn, - "handle",request_handle); + "handle", request_handle, 64); } static char call_irrsmo00_docs[] = diff --git a/pyracf/common/irrsmo00.py b/pyracf/common/irrsmo00.py index b04fd6a..afc3535 100644 --- a/pyracf/common/irrsmo00.py +++ b/pyracf/common/irrsmo00.py @@ -86,7 +86,7 @@ def call_racf( # Preserve raw result XML just in case we need to create a dump. # If the decoded result XML cannot be parsed with the XML parser, # a dump may need to be taken to aid in problem determination. - self.__raw_result_xml = b"".join(result["resultBuffers"]) + self.__raw_result_xml = result["resultBuffer"] # Replace any null bytes in the result XML with spaces. result_xml = self.__null_byte_fix(self.__raw_result_xml) # 'irrsmo00.c' returns a raw unmodified bytes object containing a copy diff --git a/tests/common/test_irrsmo00_interface.py b/tests/common/test_irrsmo00_interface.py index f0bc307..f1da958 100644 --- a/tests/common/test_irrsmo00_interface.py +++ b/tests/common/test_irrsmo00_interface.py @@ -57,7 +57,7 @@ def test_irrsmo00_null_byte_fix( ]) # fmt: on call_irrsmo00_wrapper_mock.return_value = { - "resultBuffers": [xml_containing_null_bytes], + "resultBuffer": xml_containing_null_bytes, "returnCodes": [0, 0, 0], } self.assertEqual( @@ -71,7 +71,7 @@ def test_irrsmo00_empty_result( ): # Simulate failure due to incomplete 'IRR.IRRSMO00.PRECHECK' setup call_irrsmo00_wrapper_mock.return_value = { - "resultBuffers": [bytes([0 for i in range(256)])], + "resultBuffer": bytes([0 for i in range(256)]), "returnCodes": [8, 200, 16], } self.assertEqual(self.irrsmo00.call_racf(b""), [8, 200, 16]) @@ -82,7 +82,7 @@ def test_irrsmo00_result_buffer_full_failure( ): # Simulate scenario where result buffer is too small. call_irrsmo00_wrapper_mock.return_value = { - "resultBuffers": [self.good_xml[:32]], + "resultBuffer": self.good_xml[:32], "returnCodes": [8, 4000, 100000000], } self.assertEqual( @@ -95,7 +95,7 @@ def test_irrsmo00_result_buffer_full_success( ): # Simulate scenario where result buffer is exactly the right size. call_irrsmo00_wrapper_mock.return_value = { - "resultBuffers": [self.good_xml[: self.good_xml_null_terminator_index]], + "resultBuffer": self.good_xml[: self.good_xml_null_terminator_index], "returnCodes": [0, 0, 0], } self.assertEqual( @@ -105,7 +105,7 @@ def test_irrsmo00_result_buffer_full_success( def test_irrsmo00_normal_result(self, call_irrsmo00_wrapper_mock: Mock): call_irrsmo00_wrapper_mock.return_value = { - "resultBuffers": [self.good_xml], + "resultBuffer": self.good_xml, "returnCodes": [0, 0, 0], } self.assertEqual( @@ -118,7 +118,7 @@ def test_irrsmo00_normal_result(self, call_irrsmo00_wrapper_mock: Mock): # ============================================================================ def test_irrsmo00_minimum_arguments(self, call_irrsmo00_wrapper_mock: Mock): call_irrsmo00_wrapper_mock.return_value = { - "resultBuffers": [self.good_xml], + "resultBuffer": self.good_xml, "returnCodes": [0, 0, 0], } self.irrsmo00.call_racf(b"some bytes") @@ -133,7 +133,7 @@ def test_irrsmo00_minimum_arguments(self, call_irrsmo00_wrapper_mock: Mock): def test_irrsmo00_with_precheck_set_to_true(self, call_irrsmo00_wrapper_mock: Mock): call_irrsmo00_wrapper_mock.return_value = { - "resultBuffers": [self.good_xml], + "resultBuffer": self.good_xml, "returnCodes": [0, 0, 0], } self.irrsmo00.call_racf(b"some bytes", precheck=True) @@ -148,7 +148,7 @@ def test_irrsmo00_with_precheck_set_to_true(self, call_irrsmo00_wrapper_mock: Mo def test_irrsmo00_with_run_as_userid_set(self, call_irrsmo00_wrapper_mock: Mock): call_irrsmo00_wrapper_mock.return_value = { - "resultBuffers": [self.good_xml], + "resultBuffer": self.good_xml, "returnCodes": [0, 0, 0], } self.irrsmo00.call_racf(b"some bytes", run_as_userid="KRABS") @@ -165,7 +165,7 @@ def test_irrsmo00_with_custom_result_buffer_size( self, call_irrsmo00_wrapper_mock: Mock ): call_irrsmo00_wrapper_mock.return_value = { - "resultBuffers": [self.good_xml], + "resultBuffer": self.good_xml, "returnCodes": [0, 0, 0], } irrsmo00 = IRRSMO00(result_buffer_size=32768)