From 81e6de18953b54db039d7fa67fba358b7b177b37 Mon Sep 17 00:00:00 2001 From: Dmitri Bogomolov <4glitch@gmail.com> Date: Sat, 11 Dec 2021 18:24:54 +0200 Subject: [PATCH] Started a standalone API test case --- src/tests/test_api_thread.py | 53 ++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 src/tests/test_api_thread.py diff --git a/src/tests/test_api_thread.py b/src/tests/test_api_thread.py new file mode 100644 index 00000000..c5bd6576 --- /dev/null +++ b/src/tests/test_api_thread.py @@ -0,0 +1,53 @@ +import time +import unittest + +from six.moves import xmlrpc_client + +from pybitmessage import pathmagic + + +class TestAPIThread(unittest.TestCase): + """Test case running the API thread""" + + @classmethod + def setUpClass(cls): + pathmagic.setup() # need this because of import state in network ): + + import helper_sql + import helper_startup + import state + from bmconfigparser import BMConfigParser + + class SqlReadyMock(object): + @staticmethod + def wait(): + return + + helper_sql.sql_ready = SqlReadyMock + cls.state = state + helper_startup.loadConfig() + # helper_startup.fixSocket() + config = BMConfigParser() + + config.set( + 'bitmessagesettings', 'apiusername', 'username') + config.set( + 'bitmessagesettings', 'apipassword', 'password') + config.save() + + import api + cls.thread = api.singleAPI() + cls.thread.daemon = True + cls.thread.start() + time.sleep(3) + cls.api = xmlrpc_client.ServerProxy( + "http://username:password@127.0.0.1:8442/") + + def test_connection(self): + """API command 'helloWorld'""" + self.assertEqual( + self.api.helloWorld('hello', 'world'), 'hello-world') + + @classmethod + def tearDownClass(cls): + cls.state.shutdown = 1