def test_clear(self):
        """Tests that clear can empty the cache for a specific pipeline."""

        # Create two pipelines so we can check that clearing the cache won't clear
        # all defined pipelines.
        p1 = beam.Pipeline(InteractiveRunner())
        elems_1 = p1 | 'elems 1' >> beam.Create([0, 1, 2])

        p2 = beam.Pipeline(InteractiveRunner())
        elems_2 = p2 | 'elems 2' >> beam.Create([0, 1, 2])

        # Watch the pipeline and PCollections. This is normally done in a notebook
        # environment automatically, but we have to do it manually here.
        ib.watch(locals())
        ie.current_env().track_user_pipelines()

        # Create the recording objects. By calling `record` a new PipelineFragment
        # is started to compute the given PCollections and cache to disk.
        rm_1 = RecordingManager(p1)
        recording = rm_1.record([elems_1], max_n=3, max_duration=500)
        recording.wait_until_finish()

        rm_2 = RecordingManager(p2)
        recording = rm_2.record([elems_2], max_n=3, max_duration=500)
        recording.wait_until_finish()

        # Assert that clearing only one recording clears that recording.
        self.assertGreater(rm_1.describe()['size'], 0)
        self.assertGreater(rm_2.describe()['size'], 0)
        rm_1.clear()
        self.assertEqual(rm_1.describe()['size'], 0)
        self.assertGreater(rm_2.describe()['size'], 0)

        rm_2.clear()
        self.assertEqual(rm_2.describe()['size'], 0)
示例#2
0
    def test_clear(self):
        p1 = beam.Pipeline(InteractiveRunner())
        elems_1 = p1 | 'elems 1' >> beam.Create([0, 1, 2])

        ib.watch(locals())
        ie.current_env().track_user_pipelines()

        recording_manager = RecordingManager(p1)
        recording = recording_manager.record([elems_1],
                                             max_n=3,
                                             max_duration=500)
        recording.wait_until_finish()
        record_describe = recording_manager.describe()
        self.assertGreater(record_describe['size'], 0)
        recording_manager.clear()
        self.assertEqual(recording_manager.describe()['size'], 0)