Exemplo n.º 1
0
    def test_delete_process_checkpoints(self):
        """
        """
        process_a = ProcessWithCheckpoint()
        process_b = ProcessWithCheckpoint()

        checkpoint_a1 = PersistedCheckpoint(process_a.pid, '1')
        checkpoint_a2 = PersistedCheckpoint(process_a.pid, '2')
        checkpoint_b1 = PersistedCheckpoint(process_b.pid, '1')
        checkpoint_b2 = PersistedCheckpoint(process_b.pid, '2')

        with tempfile.TemporaryDirectory() as directory:
            persister = PicklePersister(directory)
            persister.save_checkpoint(process_a, tag='1')
            persister.save_checkpoint(process_a, tag='2')
            persister.save_checkpoint(process_b, tag='1')
            persister.save_checkpoint(process_b, tag='2')

            checkpoints = [checkpoint_a1, checkpoint_a2]
            retrieved_checkpoints = persister.get_process_checkpoints(
                process_a.pid)

            self.assertEquals(set(retrieved_checkpoints), set(checkpoints))

            persister.delete_process_checkpoints(process_a.pid)

            checkpoints = []
            retrieved_checkpoints = persister.get_process_checkpoints(
                process_a.pid)

            self.assertEquals(set(retrieved_checkpoints), set(checkpoints))
Exemplo n.º 2
0
    def test_get_checkpoints_without_tags(self):
        """
        """
        process_a = ProcessWithCheckpoint()
        process_b = ProcessWithCheckpoint()

        checkpoint_a = PersistedCheckpoint(process_a.pid, None)
        checkpoint_b = PersistedCheckpoint(process_b.pid, None)

        checkpoints = [checkpoint_a, checkpoint_b]

        with tempfile.TemporaryDirectory() as directory:
            persister = PicklePersister(directory)
            persister.save_checkpoint(process_a)
            persister.save_checkpoint(process_b)

            retrieved_checkpoints = persister.get_checkpoints()

            self.assertEquals(set(retrieved_checkpoints), set(checkpoints))
Exemplo n.º 3
0
    def test_save_load_roundtrip(self):
        """
        Test the PicklePersister by taking a dummpy process, saving a checkpoint
        and recreating it from the same checkpoint
        """
        process = ProcessWithCheckpoint()

        with tempfile.TemporaryDirectory() as directory:
            persister = PicklePersister(directory)
            persister.save_checkpoint(process)

            bundle = persister.load_checkpoint(process.pid)
            recreated = bundle.unbundle(loop=self.loop)