Files
synology-api/tests/test_syno_api.py
Fabio Testa c0c28dbe0b add test resources to gitignore
add test class to implement test cases
add test case to cover filestation login
add test case to cover surveillance station login
2024-03-14 11:06:55 +01:00

54 lines
2.3 KiB
Python

import datetime
import json
from unittest import TestCase
from synology_api.filestation import FileStation
from synology_api.surveillancestation import SurveillanceStation
def parse_config(config_path) -> dict[str, str]:
with open(config_path, 'r') as config_file:
config_data = json.load(config_file)
return config_data
class TestSynoApi(TestCase):
config: dict[str, str]
def setUp(self):
self.config = parse_config('./resources/config-test.json')
def test_syno_filestation_login(self):
fs = FileStation(ip_address=self.config["synology_ip"], port=self.config["synology_port"],
username=self.config["synology_user"],
password=self.config["synology_password"],
secure=bool(self.config["synology_secure"]), cert_verify=False,
dsm_version=int(self.config["dsm_version"]), debug=True,
otp_code=self.config["otp_code"])
self.assertIsNotNone(fs)
self.assertIsNotNone(fs.session)
self.assertIsNotNone(fs.session.sid)
self.assertIsNot(fs.session.sid, '')
shares_list = fs.get_list_share()
self.assertIsNotNone(shares_list)
self.assertEqual(shares_list.__len__(), 2)
def test_syno_surveillancestation_login(self):
ss = SurveillanceStation(ip_address=self.config["synology_ip"], port=self.config["synology_port"],
username=self.config["synology_user"],
password=self.config["synology_password"],
secure=bool(self.config["synology_secure"]), cert_verify=False,
dsm_version=int(self.config["dsm_version"]), debug=True,
otp_code=self.config["otp_code"])
self.assertIsNotNone(ss)
self.assertIsNotNone(ss.session)
self.assertIsNotNone(ss.session.sid)
self.assertIsNot(ss.session.sid, '')
ss_info = ss.surveillance_station_info()
self.assertIsNotNone(ss_info)
ss_info_data = ss_info['data']
self.assertIsNotNone(ss_info_data)
self.assertEqual(ss_info_data['path'], '/webman/3rdparty/SurveillanceStation/')