From 45ae6dc0380434d3544f5588fa24b379f5a62541 Mon Sep 17 00:00:00 2001
From: Holger Nahrstaedt <holger@nahrstaedt.de>
Date: Tue, 24 Apr 2018 13:22:07 +0200
Subject: [PATCH] Bug fixes for cli and blockchain

---
 README.rst                          | 2 +-
 beem/blockchain.py                  | 2 +-
 beem/cli.py                         | 3 +++
 beemgrapheneapi/graphenerpc.py      | 2 --
 tests/beem/test_blockchain_batch.py | 3 ++-
 tests/beem/test_cli.py              | 2 ++
 6 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/README.rst b/README.rst
index 8bcf6ec0..a6a09806 100644
--- a/README.rst
+++ b/README.rst
@@ -130,7 +130,7 @@ Changelog
 =========
 0.19.23
 -------
-* new function for beempy added: power, follower, following, muter, muting
+* new function for beempy added: power, follower, following, muter, muting, mute, nextnode, pingnode, currentnode 
 * support for read-only systems added
 * more unit tests
 * Several improvements and bug fixes
diff --git a/beem/blockchain.py b/beem/blockchain.py
index ed8a242e..9601d712 100644
--- a/beem/blockchain.py
+++ b/beem/blockchain.py
@@ -224,7 +224,7 @@ class Blockchain(object):
                         else:
                             self.steem.rpc.get_block(blocknum, add_to_queue=True)
                         latest_block = blocknum
-                    if batches > 1:
+                    if batches >= 1:
                         latest_block += 1
                     if latest_block <= head_block:
                         if self.steem.rpc.get_use_appbase():
diff --git a/beem/cli.py b/beem/cli.py
index 19cc2fbb..e12174fd 100644
--- a/beem/cli.py
+++ b/beem/cli.py
@@ -163,6 +163,9 @@ def nextnode():
     """
     stm = shared_steem_instance()
     node = stm.get_default_nodes()
+    if len(node) < 2:
+        print("At least two nodes are needed!")
+        return
     node = node[1:] + [node[0]]
     stm.set_default_nodes(node)
 
diff --git a/beemgrapheneapi/graphenerpc.py b/beemgrapheneapi/graphenerpc.py
index ee65895e..0df11163 100644
--- a/beemgrapheneapi/graphenerpc.py
+++ b/beemgrapheneapi/graphenerpc.py
@@ -364,8 +364,6 @@ class GrapheneRPC(object):
                 self.rpc_queue.append(query)
                 query = self.rpc_queue
                 self.rpc_queue = []
-            if isinstance(query, list):
-                self._request_id += len(query) - 1
             r = self.rpcexec(query)
             return r
         return method
diff --git a/tests/beem/test_blockchain_batch.py b/tests/beem/test_blockchain_batch.py
index 45b9f3cb..92c6e4d7 100644
--- a/tests/beem/test_blockchain_batch.py
+++ b/tests/beem/test_blockchain_batch.py
@@ -36,6 +36,7 @@ class Testcases(unittest.TestCase):
         num = b.get_current_block_num()
         cls.start = num - 25
         cls.stop = num
+        cls.max_batch_size = 1  # appbase does not support batch rpc calls at the momement (internal error)
 
     def test_stream_batch(self):
         bts = self.bts
@@ -47,7 +48,7 @@ class Testcases(unittest.TestCase):
         self.assertTrue(len(ops_stream) > 0)
         op_stat = b.ops_statistics(start=self.start, stop=self.stop)
         ops_blocks = []
-        for op in b.blocks(start=self.start, stop=self.stop, max_batch_size=2, threading=False):
+        for op in b.blocks(start=self.start, stop=self.stop, max_batch_size=self.max_batch_size, threading=False):
             ops_blocks.append(op)
         op_stat4 = {"transfer": 0, "vote": 0}
         self.assertTrue(len(ops_blocks) > 0)
diff --git a/tests/beem/test_cli.py b/tests/beem/test_cli.py
index 1d60c28d..4507faa1 100644
--- a/tests/beem/test_cli.py
+++ b/tests/beem/test_cli.py
@@ -327,8 +327,10 @@ class Testcases(unittest.TestCase):
 
     def test_nextnode(self):
         runner = CliRunner()
+        runner.invoke(cli, ['-o', 'set', 'nodes', ''])
         result = runner.invoke(cli, ['-o', 'nextnode'])
         self.assertEqual(result.exit_code, 0)
+        runner.invoke(cli, ['-o', 'set', 'nodes', 'wss://testnet.steem.vc'])
 
     def test_pingnode(self):
         runner = CliRunner()
-- 
GitLab