You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hello everyone,
I'm using the fmbt3-editor for creating python aal models. This issue concerns the devel branch (havent tested master), particularly utils3/fmbt3-editor. I am using Ubuntu 20.04 LTS.
When the model/code I invoke in fmbt3-editor throws an error, the view switches to the error tab. This is expected. There it says "Complete unformatted error output:". However, the error output after that is empty. In the console with which I started fmbt3-editor, I can see the error message being printed though. Interestingly, it is printed as a byte string, with the "b"-prefix.
In method _doGenerateTest of fmbt3-editor, the contents of this error (byte-) string are analyzed. This happens before showError is called, and here in _doGenerateTest, the _test_errormsg has to be set to the error message that should be displayed by showError.
In this method on line 1231 (of fmbt3-editor), it is checked whether some specific strings are contained in the error output (output[1] to be precise). Based on my tests, this check fails, and the method returns directly. However, if I change line 1231 to this: if fmbt_exitstatus == 0 or "pass:" in output[1].decode('utf-8') or "inconc:" in output[1].decode('utf-8') or "fail:" in output[1].decode('utf-8'):
and change line 1239 to self._test_errormsg = output[1].decode('utf-8')
then it works. Maybe one would also add a check for whether output[1] is None or Empty, to avoid exceptions here.
It seems like the "string in other string" search does not work if the string to search is a bytestring and not decoded. Now, I am not sure if this will be the same for every operating system. It could also depend on the version of python I suppose. There could also be other valid reasons for not decoding the string, which I haven't discovered yet.
As the fix is relatively easy, I'm fine with just modyfying the fmbt3-editor file on my machine, but fixing this in the repo would be more convenient. I'm kinda busy atm but if my stress cools down a bit, I could also submit a pull request.
The text was updated successfully, but these errors were encountered:
Hello everyone,
I'm using the fmbt3-editor for creating python aal models. This issue concerns the devel branch (havent tested master), particularly utils3/fmbt3-editor. I am using Ubuntu 20.04 LTS.
When the model/code I invoke in fmbt3-editor throws an error, the view switches to the error tab. This is expected. There it says "Complete unformatted error output:". However, the error output after that is empty. In the console with which I started fmbt3-editor, I can see the error message being printed though. Interestingly, it is printed as a byte string, with the "b"-prefix.
In method _doGenerateTest of fmbt3-editor, the contents of this error (byte-) string are analyzed. This happens before showError is called, and here in _doGenerateTest, the _test_errormsg has to be set to the error message that should be displayed by showError.
In this method on line 1231 (of fmbt3-editor), it is checked whether some specific strings are contained in the error output (output[1] to be precise). Based on my tests, this check fails, and the method returns directly. However, if I change line 1231 to this:
if fmbt_exitstatus == 0 or "pass:" in output[1].decode('utf-8') or "inconc:" in output[1].decode('utf-8') or "fail:" in output[1].decode('utf-8'):
and change line 1239 to
self._test_errormsg = output[1].decode('utf-8')
then it works. Maybe one would also add a check for whether output[1] is None or Empty, to avoid exceptions here.
It seems like the "string in other string" search does not work if the string to search is a bytestring and not decoded. Now, I am not sure if this will be the same for every operating system. It could also depend on the version of python I suppose. There could also be other valid reasons for not decoding the string, which I haven't discovered yet.
As the fix is relatively easy, I'm fine with just modyfying the fmbt3-editor file on my machine, but fixing this in the repo would be more convenient. I'm kinda busy atm but if my stress cools down a bit, I could also submit a pull request.
The text was updated successfully, but these errors were encountered: