"""Synology DSM tests.""" from unittest import TestCase import pytest from synology_dsm.api.core.security import SynoCoreSecurity from synology_dsm.api.dsm.information import SynoDSMInformation from synology_dsm.exceptions import ( SynologyDSMRequestException, SynologyDSMAPINotExistsException, SynologyDSMAPIErrorException, SynologyDSMLoginInvalidException, SynologyDSMLogin2SARequiredException, SynologyDSMLogin2SAFailedException, SynologyDSMLoginFailedException, ) from synology_dsm.const import API_AUTH, API_INFO from . import ( SynologyDSMMock, VALID_HOST, VALID_PORT, VALID_SSL, VALID_OTP, VALID_PASSWORD, VALID_USER, VALID_USER_2SA, USER_MAX_TRY, ) from .const import SESSION_ID, DEVICE_TOKEN, SYNO_TOKEN # pylint: disable=no-self-use,protected-access class TestSynologyDSM(TestCase): """SynologyDSM test cases.""" api = None def setUp(self): self.api = SynologyDSMMock( VALID_HOST, VALID_PORT, VALID_USER, VALID_PASSWORD, VALID_SSL ) def test_init(self): """Test init.""" assert self.api.username assert self.api._base_url assert self.api._timeout == 10 assert not self.api.apis.get(API_AUTH) assert not self.api._session_id def test_connection_failed(self): """Test failed connection.""" # No internet api = SynologyDSMMock( "no_internet", VALID_PORT, VALID_USER, VALID_PASSWORD, VALID_SSL ) with pytest.raises(SynologyDSMRequestException) as error: api.login() error_value = error.value.args[0] assert not error_value["api"] assert error_value["code"] == -1 assert error_value["reason"] == "Unknown" assert ( "ConnectionError =