Source code for aiida.backends.tests.work.persistence

# -*- 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               #
###########################################################################

import tempfile

import plum.process_monitor
from aiida.backends.testbase import AiidaTestCase
from aiida.work.persistence import Persistence
import aiida.work.util as util
from aiida.work.test_utils import DummyProcess


[docs]class TestProcess(AiidaTestCase):
[docs] def setUp(self): super(TestProcess, self).setUp() self.assertEquals(len(util.ProcessStack.stack()), 0) self.assertEquals(len(plum.process_monitor.MONITOR.get_pids()), 0) self.persistence = Persistence(running_directory=tempfile.mkdtemp())
[docs] def tearDown(self): super(TestProcess, self).tearDown() self.assertEquals(len(util.ProcessStack.stack()), 0) self.assertEquals(len(plum.process_monitor.MONITOR.get_pids()), 0)
[docs] def test_save_load(self): dp = DummyProcess.new_instance() # Create a bundle b = self.persistence.create_bundle(dp) # Save a bundle and reload it self.persistence.save(dp) b2 = self.persistence._load_checkpoint(dp.pid) # Now check that they are equal self.assertEqual(b, b2) dp.run_until_complete()