mirror of
https://github.com/rclone/rclone.git
synced 2024-12-13 21:03:53 +08:00
43 lines
1.1 KiB
Python
43 lines
1.1 KiB
Python
|
#!/usr/bin/env python3
|
||
|
"""
|
||
|
Test program for librclone
|
||
|
"""
|
||
|
|
||
|
import os
|
||
|
import subprocess
|
||
|
import unittest
|
||
|
from rclone import *
|
||
|
|
||
|
class TestRclone(unittest.TestCase):
|
||
|
"""TestSuite for rclone python module"""
|
||
|
shared_object = "librclone.so"
|
||
|
|
||
|
@classmethod
|
||
|
def setUpClass(cls):
|
||
|
super(TestRclone, cls).setUpClass()
|
||
|
cls.shared_object = "./librclone.so"
|
||
|
Rclone.build(cls.shared_object)
|
||
|
cls.rclone = Rclone(shared_object=cls.shared_object)
|
||
|
|
||
|
@classmethod
|
||
|
def tearDownClass(cls):
|
||
|
cls.rclone.close()
|
||
|
os.remove(cls.shared_object)
|
||
|
super(TestRclone, cls).tearDownClass()
|
||
|
|
||
|
def test_rpc(self):
|
||
|
o = self.rclone.rpc("rc/noop", a=42, b="string", c=[1234])
|
||
|
self.assertEqual(dict(a=42, b="string", c=[1234]), o)
|
||
|
|
||
|
def test_rpc_error(self):
|
||
|
try:
|
||
|
o = self.rclone.rpc("rc/error", a=42, b="string", c=[1234])
|
||
|
except RcloneException as e:
|
||
|
self.assertEqual(e.status, 500)
|
||
|
self.assertTrue(e.output["error"].startswith("arbitrary error"))
|
||
|
else:
|
||
|
raise ValueError("Expecting exception")
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
unittest.main()
|