def test_load_licenses(qtbot): def _worker_output_ready(worker, output, error): print('Output', output) print('Error', error) assert error is None assert isinstance(output, (list)) if len(output) > 0: assert len(output) == 4 api = ClientAPI() api.logout() worker = api.login(NAVIGATOR_TEST_USERNAME, NAVIGATOR_TEST_PASSWORD, 'Test', '') with qtbot.waitSignal(worker.sig_finished, timeout=DEFAULT_TIMEOUT): pass worker_licenses = api.get_user_licenses() worker_licenses.sig_finished.connect(_worker_output_ready) with qtbot.waitSignal(worker_licenses.sig_finished, timeout=10000): pass # Now check the methods alone not via the worker licenses = api._get_user_licenses() assert isinstance(licenses, (list)) if len(licenses) > 0: assert len(licenses) == 4
def test_ssl(): api = ClientAPI() default = True test = False # Switch from beta and back api.set_ssl(test) assert api.get_ssl() == test api.set_ssl(default) assert api.get_ssl() == default
def test_api_url(): api = ClientAPI() beta = 'https://api.beta.anaconda.org' default = 'https://api.anaconda.org' # Switch from beta and back api.set_api_url(beta) assert api.get_api_url() == beta api.set_api_url(default) assert api.get_api_url() == default
def test_user_login(qtbot): api = ClientAPI() api.logout() worker_login = api.login(NAVIGATOR_TEST_USERNAME, NAVIGATOR_TEST_PASSWORD, 'navigator-tests', '') with qtbot.waitSignal(worker_login.sig_finished, timeout=DEFAULT_TIMEOUT): pass user = api.user() print(user) assert isinstance(user, dict) assert user.get('login') == NAVIGATOR_TEST_USERNAME for key in USER_KEYS: assert key in user
def test_user_logout(qtbot): api = ClientAPI() api.logout() worker = api.login(NAVIGATOR_TEST_USERNAME, NAVIGATOR_TEST_PASSWORD, 'Test', '') with qtbot.waitSignal(worker.sig_finished, timeout=DEFAULT_TIMEOUT): pass api.logout() user = api.user() print('Logout user:', user) assert isinstance(user, dict) assert len(user) == 0
def test_login_bad_username(qtbot): def _worker_output_ready(worker, output, error): print('Output', output) print('Error', error) assert output is None assert error is not None assert 'this user is not enabled to log in' in error.lower() assert '401' in error api = ClientAPI() worker = api.login('adsasdasdxzcasdasda', 'badpass', 'navigator-tests', '') worker.sig_finished.connect(_worker_output_ready) with qtbot.waitSignal(worker.sig_finished, timeout=DEFAULT_TIMEOUT): pass
def test_login_bad_password(qtbot): def _worker_output_ready(worker, output, error): print('Output', output) print('Error', error) assert output is None assert error is not None assert 'invalid credentials' in error.lower() assert '401' in error api = ClientAPI() worker = api.login('goanpeca', 'badpass', 'navigator-tests', '') worker.sig_finished.connect(_worker_output_ready) with qtbot.waitSignal(worker.sig_finished, timeout=DEFAULT_TIMEOUT): pass
def test_org_login(qtbot): api = ClientAPI() api.logout() worker_login = api.login(NAVIGATOR_TEST_USERNAME, NAVIGATOR_TEST_PASSWORD, 'navigator-tests', '') with qtbot.waitSignal(worker_login.sig_finished, timeout=DEFAULT_TIMEOUT) as blocker: blocker login = '******' user = api.organizations(login=login) print(user) assert isinstance(user, dict) assert user.get('login') == login for key in USER_KEYS: assert key in user
def __init__(self): """Download API based on requests.""" super(QObject, self).__init__() self._conda_api = CondaAPI() self._client_api = ClientAPI() self._queue = deque() self._queue_workers = deque() self._threads = [] self._workers = [] self._timer = QTimer() self._timer_worker_delete = QTimer() self._running_threads = 0 self._bag_collector = deque() # Keeps references to old workers self._chunk_size = 1024 self._timer.setInterval(333) self._timer.timeout.connect(self._start) self._timer_worker_delete.setInterval(5000) self._timer_worker_delete.timeout.connect(self._clean_workers)
def test_login(qtbot): def _worker_output_ready(worker, output, error): print('Output', output) print('Error', error) assert output is not None assert len(output) >= 39 assert error is None api = ClientAPI() api.logout() worker_login = api.login( NAVIGATOR_TEST_USERNAME, NAVIGATOR_TEST_PASSWORD, 'navigator-tests', '', ) worker_login.sig_finished.connect(_worker_output_ready) with qtbot.waitSignal(worker_login.sig_finished, timeout=DEFAULT_TIMEOUT): pass
def __init__(self): """Anaconda Manager API process worker.""" super(_AnacondaAPI, self).__init__() # API's self.config = CONF self._conda_api = CondaAPI() self._client_api = ClientAPI() self._download_api = DownloadAPI() self._project_api = ProjectAPI() self.ROOT_PREFIX = self._conda_api.ROOT_PREFIX self.CONDA_PREFIX = self._conda_api.CONDA_PREFIX self._metadata = {} # Variables self._data_directory = None # Expose some methods for convenient access. Methods return a worker self.conda_dependencies = self._conda_api.dependencies self.conda_remove = self._conda_api.remove self.conda_terminate = self._conda_api.terminate_all_processes # self.conda_config = self._conda_api.config_show # self.conda_config_sources = self._conda_api.config_show_sources self.conda_config_add = self._conda_api.config_add self.conda_config_set = self._conda_api.config_set self.conda_config_remove = self._conda_api.config_remove # No workers are returned for these methods self.conda_clear_lock = self._conda_api.clear_lock self.conda_environment_exists = self._conda_api.environment_exists self.conda_get_envs = self._conda_api.get_envs self.conda_linked = self._conda_api.linked self.conda_linked_apps_info = self._conda_api.linked_apps_info self.conda_get_prefix_envname = self._conda_api.get_prefix_envname self.conda_package_version = self._conda_api.package_version self.conda_platform = self._conda_api.get_platform self.conda_load_proxy_config = self._conda_api.load_proxy_config self.conda_split_canonical_name = self._conda_api.split_canonical_name # These download methods return a worker _get_api_info = self._download_api.get_api_info _is_valid_url = self._download_api.is_valid_api_url _get_api_url = self._client_api.get_api_url self.download = self._download_api.download self.download_is_valid_url = self._download_api.is_valid_url self.download_is_valid_api_url = _is_valid_url self.download_get_api_info = lambda: _get_api_info(_get_api_url()) self.download_is_valid_channel = self._download_api.is_valid_channel self.download_terminate = self._download_api.terminate # These client methods return a worker self.client_login = self._client_api.login self.client_logout = self._client_api.logout self.client_user = self._client_api.user self.client_get_api_url = self._client_api.get_api_url self.client_set_api_url = self._client_api.set_api_url self.client_get_ssl = self._client_api.get_ssl self.client_set_ssl = self._client_api.set_ssl self.client_get_user_licenses = self._client_api.get_user_licenses self.client_domain = self._client_api.domain # Project calls self.project_create = self._project_api.create_project self.project_upload = self._project_api.upload self.project_load = self._project_api.load_project