diff --git a/tests/plugin_http_api_test.py b/tests/plugin_http_api_test.py index 7b4f875ee1..85b9c8210a 100755 --- a/tests/plugin_http_api_test.py +++ b/tests/plugin_http_api_test.py @@ -886,43 +886,7 @@ def test_NetApi(self) : # test all producer api def test_ProducerApi(self) : resource = "producer" - endpoint=self.endpoint("producer_rw") - # pause with empty parameter - command = "pause" - ret_json = self.nodeos.processUrllibRequest(resource, command, endpoint=endpoint) - self.assertEqual(ret_json["payload"]["result"], "ok") - # pause with empty content parameter - ret_json = self.nodeos.processUrllibRequest(resource, command, self.empty_content_dict, endpoint=endpoint) - self.assertEqual(ret_json["payload"]["result"], "ok") - # pause with invalid parameter - ret_json = self.nodeos.processUrllibRequest(resource, command, self.http_post_invalid_param, endpoint=endpoint) - self.assertEqual(ret_json["code"], 400) - self.assertEqual(ret_json["error"]["code"], 3200006) - - # resume with empty parameter - command = "resume" - ret_json = self.nodeos.processUrllibRequest(resource, command, endpoint=endpoint) - self.assertEqual(ret_json["payload"]["result"], "ok") - # resume with empty content parameter - ret_json = self.nodeos.processUrllibRequest(resource, command, self.empty_content_dict, endpoint=endpoint) - self.assertEqual(ret_json["payload"]["result"], "ok") - # resume with invalid parameter - ret_json = self.nodeos.processUrllibRequest(resource, command, self.http_post_invalid_param, endpoint=endpoint) - self.assertEqual(ret_json["code"], 400) - self.assertEqual(ret_json["error"]["code"], 3200006) - endpoint=self.endpoint("producer_ro") - # paused with empty parameter - command = "paused" - ret_str = self.nodeos.processUrllibRequest(resource, command, returnType=ReturnType.raw, endpoint=endpoint).decode('ascii') - self.assertEqual(ret_str, "false") - # paused with empty content parameter - ret_str = self.nodeos.processUrllibRequest(resource, command, self.empty_content_dict, returnType=ReturnType.raw, endpoint=endpoint).decode('ascii') - self.assertEqual(ret_str, "false") - # paused with invalid parameter - ret_json = self.nodeos.processUrllibRequest(resource, command, self.http_post_invalid_param, endpoint=endpoint) - self.assertEqual(ret_json["code"], 400) - self.assertEqual(ret_json["error"]["code"], 3200006) # get_runtime_options with empty parameter command = "get_runtime_options" @@ -954,12 +918,20 @@ def test_ProducerApi(self) : payload = {"max_transaction_time":30, "max_irreversible_block_age":1, "cpu_effort_us":400000, - "max_scheduled_transaction_time_per_block_ms":10000, "subjective_cpu_leeway_us":0, - "incoming_defer_ratio":1.0, "greylist_limit":100} ret_json = self.nodeos.processUrllibRequest(resource, command, payload, endpoint=endpoint) self.assertIn(ret_json["payload"]["result"], "ok") + # restore runtime options to default values such that future tests are not impacted + # by the modified values of last test (max_irreversible_block_age: 1 can make producer + # plugin stuck in speculative mode) + payload = {"max_transaction_time":499, + "max_irreversible_block_age":-1, + "cpu_effort_us":400000, + "subjective_cpu_leeway_us":31000, + "greylist_limit":1000} + ret_json = self.nodeos.processUrllibRequest(resource, command, payload, endpoint=endpoint) + self.assertIn(ret_json["payload"]["result"], "ok") # add_greylist_accounts with empty parameter command = "add_greylist_accounts" @@ -1176,6 +1148,47 @@ def test_ProducerApi(self) : ret_json = self.nodeos.processUrllibRequest(resource, command, payload, endpoint=endpoint) self.assertIn("trxs", ret_json["payload"]) + # place pause and resume tests at the end such that they are not impacted + # by update_runtime_options + + endpoint=self.endpoint("producer_rw") # pause and resume are in producer_rw category + # pause with empty parameter + command = "pause" + ret_json = self.nodeos.processUrllibRequest(resource, command, endpoint=endpoint) + self.assertEqual(ret_json["payload"]["result"], "ok") + # pause with empty content parameter + ret_json = self.nodeos.processUrllibRequest(resource, command, self.empty_content_dict, endpoint=endpoint) + self.assertEqual(ret_json["payload"]["result"], "ok") + # pause with invalid parameter + ret_json = self.nodeos.processUrllibRequest(resource, command, self.http_post_invalid_param, endpoint=endpoint) + self.assertEqual(ret_json["code"], 400) + self.assertEqual(ret_json["error"]["code"], 3200006) + + # resume with empty parameter + command = "resume" + ret_json = self.nodeos.processUrllibRequest(resource, command, endpoint=endpoint) + self.assertEqual(ret_json["payload"]["result"], "ok") + # resume with empty content parameter + ret_json = self.nodeos.processUrllibRequest(resource, command, self.empty_content_dict, endpoint=endpoint) + self.assertEqual(ret_json["payload"]["result"], "ok") + # resume with invalid parameter + ret_json = self.nodeos.processUrllibRequest(resource, command, self.http_post_invalid_param, endpoint=endpoint) + self.assertEqual(ret_json["code"], 400) + self.assertEqual(ret_json["error"]["code"], 3200006) + + endpoint=self.endpoint("producer_ro") + # paused with empty parameter + command = "paused" + ret_str = self.nodeos.processUrllibRequest(resource, command, returnType=ReturnType.raw, endpoint=endpoint).decode('ascii') + self.assertEqual(ret_str, "false") + # paused with empty content parameter + ret_str = self.nodeos.processUrllibRequest(resource, command, self.empty_content_dict, returnType=ReturnType.raw, endpoint=endpoint).decode('ascii') + self.assertEqual(ret_str, "false") + # paused with invalid parameter + ret_json = self.nodeos.processUrllibRequest(resource, command, self.http_post_invalid_param, endpoint=endpoint) + self.assertEqual(ret_json["code"], 400) + self.assertEqual(ret_json["error"]["code"], 3200006) + # test all wallet api def test_WalletApi(self) : endpoint = self.base_wallet_cmd_str