Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[1.0.4] Fix stuck plugin_http_api_test #1007

Merged
merged 3 commits into from
Nov 1, 2024
Merged
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
88 changes: 50 additions & 38 deletions tests/plugin_http_api_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -887,42 +887,6 @@ def test_NetApi(self) :
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"
Expand Down Expand Up @@ -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"
Expand Down Expand Up @@ -1176,6 +1148,46 @@ 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

# 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
Expand Down
Loading