def test_invalidate_bin_counts(self, mock_dt, mock_task):
        now = datetime.utcnow().replace(microsecond=0)
        mock_dt.utcnow.return_value = now
        gbl = Globals()

        # invalidated recently, don't dog-pile
        gbl._bin_counts_invalidated = now - timedelta(minutes=1)
        gbl.invalidate_bin_counts()
        assert not mock_task.post.called

        # invalidated too long ago, call again
        gbl._bin_counts_invalidated = now - timedelta(minutes=6)
        gbl.invalidate_bin_counts()
        assert mock_task.post.called
        assert_equal(gbl._bin_counts_invalidated, now)

        # never invalidated
        mock_task.reset_mock()
        gbl._bin_counts_invalidated = None
        gbl.invalidate_bin_counts()
        assert mock_task.post.called
        assert_equal(gbl._bin_counts_invalidated, now)
Exemple #2
0
    def test_invalidate_bin_counts(self, mock_dt, mock_task):
        now = datetime.utcnow().replace(microsecond=0)
        mock_dt.utcnow.return_value = now
        gbl = Globals()

        # invalidated recently, don't dog-pile
        gbl._bin_counts_invalidated = now - timedelta(minutes=1)
        gbl.invalidate_bin_counts()
        assert not mock_task.post.called

        # invalidated too long ago, call again
        gbl._bin_counts_invalidated = now - timedelta(minutes=6)
        gbl.invalidate_bin_counts()
        assert mock_task.post.called
        assert_equal(gbl._bin_counts_invalidated, now)

        # never invalidated
        mock_task.reset_mock()
        gbl._bin_counts_invalidated = None
        gbl.invalidate_bin_counts()
        assert mock_task.post.called
        assert_equal(gbl._bin_counts_invalidated, now)
    def test_update_bin_counts(self, mock_dt, mock_search, mock_bin):
        now = datetime.utcnow().replace(microsecond=0)
        mock_dt.utcnow.return_value = now
        gbl = Globals()
        gbl._bin_counts_invalidated = now - timedelta(minutes=1)
        mock_bin.query.find.return_value = [mock.Mock(summary="foo", terms="bar")]
        mock_search().hits = 5

        assert_equal(gbl._bin_counts_data, [])  # sanity pre-check
        gbl.update_bin_counts()
        assert mock_bin.query.find.called
        mock_search.assert_called_with(forgetracker.model.Ticket, "bar", rows=0, short_timeout=False)
        assert_equal(gbl._bin_counts_data, [{"summary": "foo", "hits": 5}])
        assert_equal(gbl._bin_counts_expire, now + timedelta(minutes=60))
        assert_equal(gbl._bin_counts_invalidated, None)
    def test_update_bin_counts(self, mock_dt, mock_search, mock_bin):
        now = datetime.utcnow().replace(microsecond=0)
        mock_dt.utcnow.return_value = now
        gbl = Globals()
        gbl._bin_counts_invalidated = now - timedelta(minutes=1)
        mock_bin.query.find.return_value = [
            mock.Mock(summary='foo', terms='bar')
        ]
        mock_search().hits = 5

        assert_equal(gbl._bin_counts_data, [])  # sanity pre-check
        gbl.update_bin_counts()
        assert mock_bin.query.find.called
        mock_search.assert_called_with(forgetracker.model.Ticket,
                                       'bar',
                                       rows=0,
                                       short_timeout=False)
        assert_equal(gbl._bin_counts_data, [{'summary': 'foo', 'hits': 5}])
        assert_equal(gbl._bin_counts_expire, now + timedelta(minutes=60))
        assert_equal(gbl._bin_counts_invalidated, None)