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