コード例 #1
0
    def test_it_proxies_a_single_function_call(self):
        # Arrange
        call_filter = CallsPerTimePeriod(1, 1, self.handler)

        # Act
        call_filter.on_call(self.frame_digest)

        # Assert
        self.handler.on_call.assert_called_once_with(self.frame_digest)
コード例 #2
0
    def test_it_proxies_calls_to_a_function_if_within_the_call_rate(self):
        # Arrange
        call_filter = CallsPerTimePeriod(3, 1, self.handler)

        # Act
        for _ in range(4):
            call_filter.on_call(self.frame_digest)

        # Assert
        assert_equal(self.handler.on_call.call_count, 3)
コード例 #3
0
    def test_it_discards_a_function_call_if_it_exceeds_the_call_rate(self):
        # Arrange
        call_filter = CallsPerTimePeriod(1, 1, self.handler)

        # Act
        call_filter.on_call(self.frame_digest)
        call_filter.on_call(self.frame_digest)

        # Assert
        self.handler.on_call.assert_called_once_with(self.frame_digest)
コード例 #4
0
    def test_on_call_the_return_value_tells_if_the_call_was_proxied(self):
        # Arrange
        call_filter = CallsPerTimePeriod(1, 1, self.handler)

        # Act
        proxied_result = call_filter.on_call(self.frame_digest)
        discarded_result = call_filter.on_call(self.frame_digest)

        # Assert
        assert_true(proxied_result)
        assert_false(discarded_result)
コード例 #5
0
    def test_other_function_calls_are_proxied_if_one_exceeds_the_call_rate(
            self):
        # Arrange
        call_filter = CallsPerTimePeriod(1, 1, self.handler)
        another_frame_digest = fake('FrameDigest')
        another_frame_digest.function_name = 'another_function'

        # Act
        proxied_result = call_filter.on_call(self.frame_digest)
        another_result = call_filter.on_call(another_frame_digest)
        discarded_result = call_filter.on_call(self.frame_digest)

        # Assert
        assert_true(proxied_result)
        assert_true(another_result)
        assert_false(discarded_result)
コード例 #6
0
    def test_it_proxies_calls_after_the_call_period_elapses(self):
        # Arrange
        call_filter = CallsPerTimePeriod(1, 1, self.handler)

        # Act
        call_filter.on_call(self.frame_digest)
        call_filter._flush()
        call_filter.on_call(self.frame_digest)

        # Assert
        assert_equal(self.handler.on_call.call_count, 2)