Files
synology-api-python/tests/__init__.py
Quentame aa9bba8814 Add tests + some fixes (#23)
* Add tests + some fixes

Fixes:
- [utilization] cpu_total_load returns `None` if one load is 0
- [storage] volume_disk_temp_avg + volume_disk_temp_max were global, not volume related

Add:
- [storage] env
- [storage] storage_pools

Changes:
- api.password is now private
- api.storage_url is now private
- use API_KEY on each of APIs/services

* Fix encoding

* Use future division

* Add test_disk + test_volume to check error handling cases
2020-03-30 23:07:54 +02:00

64 lines
1.7 KiB
Python

# -*- coding: utf-8 -*-
"""Library tests."""
from synology_dsm import SynologyDSM
from synology_dsm.api.core.utilization import SynoCoreUtilization
from synology_dsm.api.dsm.information import SynoDSMInformation
from synology_dsm.api.storage.storage import SynoStorage
from .const import DSM_6_LOGIN, DSM_6_INFORMATION, DSM_6_UTILIZATION, DSM_6_STORAGE
VALID_DSM_HOST = "nas.mywebsite.me"
VALID_DSM_PORT = "443"
VALID_USER = "valid_user"
VALID_PASSWORD = "valid_password"
class SynologyDSMMock(SynologyDSM):
"""Mocked SynologyDSM."""
LOGIN_URI = "auth.cgi"
API_URI = "entry.cgi"
def __init__(
self,
dsm_ip,
dsm_port,
username,
password,
use_https=False,
debugmode=False,
dsm_version=6,
):
SynologyDSM.__init__(
self,
dsm_ip,
dsm_port,
username,
password,
use_https,
debugmode,
dsm_version,
)
def _execute_get_url(self, request_url, append_sid=True):
if VALID_DSM_HOST not in request_url or VALID_DSM_PORT not in request_url:
return None
if (
self.LOGIN_URI in request_url
and VALID_USER in request_url
and VALID_PASSWORD in request_url
):
return DSM_6_LOGIN
if self.API_URI in request_url:
if SynoDSMInformation.API_KEY in request_url:
return DSM_6_INFORMATION
if SynoCoreUtilization.API_KEY in request_url:
return DSM_6_UTILIZATION
if SynoStorage.API_KEY in request_url:
return DSM_6_STORAGE
return None