github.com/rclone/rclone@v1.66.1-0.20240517100346-7b89735ae726/librclone/python/test_rclone.py (about) 1 #!/usr/bin/env python3 2 """ 3 Test program for librclone 4 """ 5 6 import os 7 import subprocess 8 import unittest 9 from rclone import * 10 11 class TestRclone(unittest.TestCase): 12 """TestSuite for rclone python module""" 13 shared_object = "librclone.so" 14 15 @classmethod 16 def setUpClass(cls): 17 super(TestRclone, cls).setUpClass() 18 cls.shared_object = "./librclone.so" 19 Rclone.build(cls.shared_object) 20 cls.rclone = Rclone(shared_object=cls.shared_object) 21 22 @classmethod 23 def tearDownClass(cls): 24 cls.rclone.close() 25 os.remove(cls.shared_object) 26 super(TestRclone, cls).tearDownClass() 27 28 def test_rpc(self): 29 o = self.rclone.rpc("rc/noop", a=42, b="string", c=[1234]) 30 self.assertEqual(dict(a=42, b="string", c=[1234]), o) 31 32 def test_rpc_error(self): 33 try: 34 o = self.rclone.rpc("rc/error", a=42, b="string", c=[1234]) 35 except RcloneException as e: 36 self.assertEqual(e.status, 500) 37 self.assertTrue(e.output["error"].startswith("arbitrary error")) 38 else: 39 raise ValueError("Expecting exception") 40 41 if __name__ == '__main__': 42 unittest.main()