Source code for aiida.backends.tests.engine.test_manager

# -*- coding: utf-8 -*-
###########################################################################
# Copyright (c), The AiiDA team. All rights reserved.                     #
# This file is part of the AiiDA code.                                    #
#                                                                         #
# The code is hosted on GitHub at https://github.com/aiidateam/aiida-core #
# For further information on the license, see the LICENSE.txt file        #
# For further information please visit http://www.aiida.net               #
###########################################################################
"""Tests for the classes in `aiida.engine.processes.calcjobs.manager`."""
from __future__ import division
from __future__ import print_function
from __future__ import absolute_import

import time

import tornado

from aiida.orm import AuthInfo, User
from aiida.backends.testbase import AiidaTestCase
from aiida.engine.processes.calcjobs.manager import JobManager, JobsList
from aiida.engine.transports import TransportQueue


[docs]class TestJobManager(AiidaTestCase): """Test the `aiida.engine.processes.calcjobs.manager.JobManager` class."""
[docs] def setUp(self): super(TestJobManager, self).setUp() self.loop = tornado.ioloop.IOLoop() self.transport_queue = TransportQueue(self.loop) self.user = User.objects.get_default() self.auth_info = AuthInfo(self.computer, self.user).store() self.manager = JobManager(self.transport_queue)
[docs] def tearDown(self): super(TestJobManager, self).tearDown() AuthInfo.objects.delete(self.auth_info.pk)
[docs] def test_get_jobs_list(self): """Test the `JobManager.get_jobs_list` method.""" jobs_list = self.manager.get_jobs_list(self.auth_info) self.assertIsInstance(jobs_list, JobsList) # Calling the method again, should return the exact same instance of `JobsList` self.assertEqual(self.manager.get_jobs_list(self.auth_info), jobs_list)
[docs] def test_request_job_info_update(self): """Test the `JobManager.request_job_info_update` method.""" with self.manager.request_job_info_update(self.auth_info, job_id=1) as request: self.assertIsInstance(request, tornado.concurrent.Future)
[docs]class TestJobsList(AiidaTestCase): """Test the `aiida.engine.processes.calcjobs.manager.JobsList` class."""
[docs] def setUp(self): super(TestJobsList, self).setUp() self.loop = tornado.ioloop.IOLoop() self.transport_queue = TransportQueue(self.loop) self.user = User.objects.get_default() self.auth_info = AuthInfo(self.computer, self.user).store() self.jobs_list = JobsList(self.auth_info, self.transport_queue)
[docs] def tearDown(self): super(TestJobsList, self).tearDown() AuthInfo.objects.delete(self.auth_info.pk)
[docs] def test_get_minimum_update_interval(self): """Test the `JobsList.get_minimum_update_interval` method.""" minimum_poll_interval = self.auth_info.computer.get_minimum_job_poll_interval() self.assertEqual(self.jobs_list.get_minimum_update_interval(), minimum_poll_interval)
[docs] def test_last_updated(self): """Test the `JobsList.last_updated` method.""" jobs_list = JobsList(self.auth_info, self.transport_queue) self.assertEqual(jobs_list.last_updated, None) last_updated = time.time() jobs_list = JobsList(self.auth_info, self.transport_queue, last_updated=last_updated) self.assertEqual(jobs_list.last_updated, last_updated)