def test_pcoll_visualization_generate_unique_display_id(self):
     pv_1 = pv.PCollectionVisualization(self._stream)
     pv_2 = pv.PCollectionVisualization(self._stream)
     self.assertNotEqual(pv_1._dive_display_id, pv_2._dive_display_id)
     self.assertNotEqual(pv_1._overview_display_id,
                         pv_2._overview_display_id)
     self.assertNotEqual(pv_1._df_display_id, pv_2._df_display_id)
    def test_raise_error_for_non_pcoll_input(self):
        class Foo(object):
            pass

        with self.assertRaises(AssertionError) as ctx:
            pv.PCollectionVisualization(Foo())
            self.assertTrue('pcoll should be apache_beam.pvalue.PCollection' in
                            ctx.exception)
Beispiel #3
0
 def test_dynamic_plotting_updates_same_display(self,
                                                mocked_display_dataframe,
                                                mocked_display_overview,
                                                mocked_display_dive):
   original_pcollection_visualization = pv.PCollectionVisualization(
       self._pcoll)
   # Dynamic plotting always creates a new PCollectionVisualization.
   new_pcollection_visualization = pv.PCollectionVisualization(self._pcoll)
   # The display uses ANY data the moment display is invoked, and updates
   # web elements with ids fetched from the given updating_pv.
   new_pcollection_visualization.display_facets(
       updating_pv=original_pcollection_visualization)
   mocked_display_dataframe.assert_called_once_with(
       ANY, original_pcollection_visualization._df_display_id)
   mocked_display_overview.assert_called_once_with(
       ANY, original_pcollection_visualization._overview_display_id)
   mocked_display_dive.assert_called_once_with(
       ANY, original_pcollection_visualization._dive_display_id)