Beispiel #1
0
    def test_sessions_default(self):
        self.run_trigger_simple(
            Sessions(10),  # pyformat break
            DefaultTrigger(),
            AccumulationMode.ACCUMULATING,
            [(1, 'a'), (2, 'b')],
            {IntervalWindow(1, 12): [set('ab')]},
            1,
            2,
            -2,
            -1)

        self.run_trigger_simple(
            Sessions(10),  # pyformat break
            AfterWatermark(),
            AccumulationMode.ACCUMULATING,
            [(1, 'a'), (2, 'b'), (15, 'c'), (16, 'd'), (30, 'z'), (9, 'e'),
             (10, 'f'), (30, 'y')],
            {
                IntervalWindow(1, 26): [set('abcdef')],
                IntervalWindow(30, 40): [set('yz')]
            },
            1,
            2,
            3,
            4,
            5,
            6,
            -4,
            -2,
            -1)
Beispiel #2
0
 def test_trigger_encoding(self):
   for trigger_fn in (DefaultTrigger(),
                      AfterAll(AfterCount(1), AfterCount(10)),
                      AfterAny(AfterCount(10), AfterCount(100)),
                      AfterWatermark(early=AfterCount(1000)),
                      AfterWatermark(early=AfterCount(1000),
                                     late=AfterCount(1)),
                      Repeatedly(AfterCount(100)),
                      trigger.OrFinally(AfterCount(3), AfterCount(10))):
     context = pipeline_context.PipelineContext()
     self.assertEqual(
         trigger_fn,
         TriggerFn.from_runner_api(trigger_fn.to_runner_api(context), context))
Beispiel #3
0
 def test_after_each_all_safe(self):
     self._test(AfterEach(Repeatedly(AfterCount(1)), DefaultTrigger()), 0,
                DataLossReason.NO_POTENTIAL_LOSS)
Beispiel #4
0
 def test_after_any_some_unsafe(self):
     self._test(AfterAny(AfterCount(1), DefaultTrigger()), 0,
                DataLossReason.NO_POTENTIAL_LOSS)
Beispiel #5
0
 def test_after_each_some_unsafe(self):
     self._test(AfterEach(AfterCount(1), DefaultTrigger()), 0,
                DataLossReason.MAY_FINISH)
Beispiel #6
0
 def test_after_watermark_safe_late(self):
     self._test(AfterWatermark(late=DefaultTrigger()), 60,
                DataLossReason.NO_POTENTIAL_LOSS)
Beispiel #7
0
 def test_repeatedly_safe_underlying(self):
     self._test(Repeatedly(DefaultTrigger()), 0,
                DataLossReason.NO_POTENTIAL_LOSS)
Beispiel #8
0
 def test_default_trigger(self):
     self._test(DefaultTrigger(), 0, DataLossReason.NO_POTENTIAL_LOSS)
Beispiel #9
0
 def test_after_each_at_least_one_safe(self):
     self._test(AfterEach(AfterCount(1), DefaultTrigger(), AfterCount(2)),
                0, DataLossReason.NO_POTENTIAL_LOSS)
Beispiel #10
0
 def test_after_all_some_may_finish(self):
     self._test(AfterAll(AfterCount(1), DefaultTrigger()), 0,
                DataLossReason.NO_POTENTIAL_LOSS)
Beispiel #11
0
 def test_after_any_all_safe(self):
     self._test(AfterAny(Repeatedly(AfterCount(42)), DefaultTrigger()), 0,
                DataLossReason.NO_POTENTIAL_LOSS)
Beispiel #12
0
 def test_after_any_one_may_finish(self):
     self._test(AfterAny(AfterCount(42), DefaultTrigger()), 0,
                DataLossReason.MAY_FINISH)