Skip to content

Commit

Permalink
Merge pull request #1007 from AntelopeIO/fix_plugin_http_api_test_1_0
Browse files Browse the repository at this point in the history
[1.0.4] Fix stuck plugin_http_api_test
  • Loading branch information
linh2931 authored Nov 1, 2024
2 parents c954fe8 + 3c1c4d8 commit 64cb7a3
Showing 1 changed file with 51 additions and 38 deletions.
89 changes: 51 additions & 38 deletions tests/plugin_http_api_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -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"
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,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
Expand Down

0 comments on commit 64cb7a3

Please sign in to comment.