jenkins-bot has submitted this change and it was merged.
Change subject: Improve error reporting
......................................................................
Improve error reporting
Display error message in the UI,
if the check command passes,
but the mml/svg/complete endpoints returns an valid json error.
Bug: T143225
Change-Id: I50776926e42f75a2c1e30fc9afe08baae3fcdbd1
---
M MathRestbaseInterface.php
M tests/MathRestBaseInterfaceTest.php
2 files changed, 53 insertions(+), 1 deletion(-)
Approvals:
Mobrovac: Looks good to me, approved
jenkins-bot: Verified
diff --git a/MathRestbaseInterface.php b/MathRestbaseInterface.php
index f223b0a..a2d8470 100644
--- a/MathRestbaseInterface.php
+++ b/MathRestbaseInterface.php
@@ -428,6 +428,24 @@
'math_type' => $type,
'tex' => $this->tex
] );
- throw new MWException( "Cannot get $type. Server problem." );
+ self::throwContentError( $type, $response['body'] );
+ }
+
+ /**
+ * @param $type
+ * @param $body
+ * @throws MWException
+ */
+ public static function throwContentError( $type, $body ) {
+ $detail = 'Server problem.';
+ $json = json_decode( $body );
+ if ( isset( $json->detail ) ) {
+ if ( is_array( $json->detail ) ){
+ $detail = $json->detail[0];
+ } elseif ( is_string( $json->detail ) ) {
+ $detail = $json->detail;
+ }
+ }
+ throw new MWException( "Cannot get $type. $detail" );
}
}
diff --git a/tests/MathRestBaseInterfaceTest.php
b/tests/MathRestBaseInterfaceTest.php
index af21836..9ab6f39 100644
--- a/tests/MathRestBaseInterfaceTest.php
+++ b/tests/MathRestBaseInterfaceTest.php
@@ -85,4 +85,38 @@
$rbi->getFullSvgUrl();
}
+ /**
+ * Incorporate the "details" in the error message, if the check
requests passes, but the
+ * mml/svg/complete endpoints returns an error
+ * @expectedException MWException
+ * @expectedExceptionMessage Cannot get mml. TeX parse error: Missing
close brace
+ */
+ public function testLateError() {
+ // @codingStandardsIgnoreStart
+ $input =
'{"type":"https://mediawiki.org/wiki/HyperSwitch/errors/bad_request","title":"Bad
Request","method":"POST","detail":["TeX parse error: Missing close
brace"],"uri":"/complete"}';
+ // @codingStandardsIgnoreEnd
+ MathRestbaseInterface::throwContentError( 'mml', $input );
+ }
+
+ /**
+ * Incorporate the "details" in the error message, if the check
requests passes, but the
+ * mml/svg/complete endpoints returns an error
+ * @expectedException MWException
+ * @expectedExceptionMessage Cannot get mml. TeX parse error: Missing
close brace
+ */
+ public function testLateErrorString() {
+ // @codingStandardsIgnoreStart
+ $input =
'{"type":"https://mediawiki.org/wiki/HyperSwitch/errors/bad_request","title":"Bad
Request","method":"POST","detail": "TeX parse error: Missing close
brace","uri":"/complete"}';
+ // @codingStandardsIgnoreEnd
+ MathRestbaseInterface::throwContentError( 'mml', $input );
+ }
+
+ /**
+ * @expectedException MWException
+ * @expectedExceptionMessage Cannot get mml. Server problem.
+ */
+ public function testLateErrorNoDetail() {
+ $input = '';
+ MathRestbaseInterface::throwContentError( 'mml', $input );
+ }
}
--
To view, visit https://gerrit.wikimedia.org/r/305310
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I50776926e42f75a2c1e30fc9afe08baae3fcdbd1
Gerrit-PatchSet: 3
Gerrit-Project: mediawiki/extensions/Math
Gerrit-Branch: master
Gerrit-Owner: Physikerwelt <[email protected]>
Gerrit-Reviewer: Alexandros Kosiaris <[email protected]>
Gerrit-Reviewer: Mobrovac <[email protected]>
Gerrit-Reviewer: Physikerwelt <[email protected]>
Gerrit-Reviewer: TheDJ <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits