Beispiel #1
0
 def test_append_new_labels(self):
     gbl = Globals()
     assert_equal(gbl.append_new_labels([], ['tag1']), ['tag1'])
     assert_equal(
         gbl.append_new_labels(['tag1', 'tag2'], ['tag2']), ['tag1', 'tag2'])
     assert_equal(gbl.append_new_labels(
         ['tag1', 'tag2'], ['tag3']), ['tag1', 'tag2', 'tag3'])
     assert_equal(gbl.append_new_labels(
         ['tag1', 'tag2', 'tag3'], ['tag2']), ['tag1', 'tag2', 'tag3'])
Beispiel #2
0
    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)
Beispiel #3
0
    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)
Beispiel #4
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)
Beispiel #5
0
 def test_append_new_labels(self):
     gbl = Globals()
     assert_equal(gbl.append_new_labels([], ['tag1']), ['tag1'])
     assert_equal(gbl.append_new_labels(['tag1', 'tag2'], ['tag2']),
                  ['tag1', 'tag2'])
     assert_equal(gbl.append_new_labels(['tag1', 'tag2'], ['tag3']),
                  ['tag1', 'tag2', 'tag3'])
     assert_equal(gbl.append_new_labels(['tag1', 'tag2', 'tag3'], ['tag2']),
                  ['tag1', 'tag2', 'tag3'])
    def test_bin_count(self, mock_dt):
        now = datetime.utcnow()
        mock_dt.utcnow.return_value = now
        gbl = Globals()
        gbl._bin_counts_data = [{'summary': 'foo', 'hits': 1}, {'summary': 'bar', 'hits': 2}]
        gbl.invalidate_bin_counts = mock.Mock()

        # not expired, finds bin
        gbl._bin_counts_expire = now + timedelta(minutes=5)
        bin = gbl.bin_count('bar')
        assert_equal(bin['hits'], 2)
        assert not gbl.invalidate_bin_counts.called

        # expired, returns value for missing bin
        gbl._bin_counts_expire = now - timedelta(minutes=5)
        bin = gbl.bin_count('qux')
        assert_equal(bin['hits'], 0)
        assert gbl.invalidate_bin_counts.called
Beispiel #7
0
    def test_bin_count(self, mock_dt):
        now = datetime.utcnow()
        mock_dt.utcnow.return_value = now
        gbl = Globals()
        gbl._bin_counts_data = [{"summary": "foo", "hits": 1}, {"summary": "bar", "hits": 2}]
        gbl.invalidate_bin_counts = mock.Mock()

        # not expired, finds bin
        gbl._bin_counts_expire = now + timedelta(minutes=5)
        bin = gbl.bin_count("bar")
        assert_equal(bin["hits"], 2)
        assert not gbl.invalidate_bin_counts.called

        # expired, returns value for missing bin
        gbl._bin_counts_expire = now - timedelta(minutes=5)
        bin = gbl.bin_count("qux")
        assert_equal(bin["hits"], 0)
        assert gbl.invalidate_bin_counts.called
Beispiel #8
0
    def test_bin_count(self, mock_dt):
        now = datetime.utcnow()
        mock_dt.utcnow.return_value = now
        gbl = Globals()
        gbl._bin_counts_data = [{
            'summary': 'foo',
            'hits': 1
        }, {
            'summary': 'bar',
            'hits': 2
        }]
        gbl.invalidate_bin_counts = mock.Mock()

        # not expired, finds bin
        gbl._bin_counts_expire = now + timedelta(minutes=5)
        bin = gbl.bin_count('bar')
        assert_equal(bin['hits'], 2)
        assert not gbl.invalidate_bin_counts.called

        # expired, returns value for missing bin
        gbl._bin_counts_expire = now - timedelta(minutes=5)
        bin = gbl.bin_count('qux')
        assert_equal(bin['hits'], 0)
        assert gbl.invalidate_bin_counts.called
Beispiel #9
0
    def test_bin_count(self, mock_dt):
        now = datetime.utcnow()
        mock_dt.utcnow.return_value = now
        gbl = Globals()
        gbl._bin_counts_data = [{
            'summary': 'foo',
            'hits': 1
        }, {
            'summary': 'bar',
            'hits': 2
        }]
        gbl.invalidate_bin_counts = mock.Mock()

        # not expired, finds bin
        gbl.invalidate_bin_counts.reset_mock()
        gbl._bin_counts_expire = now + timedelta(minutes=5)
        bin = gbl.bin_count('bar')
        assert_equal(bin['hits'], 2)
        assert not gbl.invalidate_bin_counts.called

        # expired, returns value for missing bin
        gbl.invalidate_bin_counts.reset_mock()
        gbl._bin_counts_expire = now - timedelta(minutes=5)
        bin = gbl.bin_count('qux')
        assert_equal(bin['hits'], 0)
        assert gbl.invalidate_bin_counts.called

        # config set to no expiration
        gbl.invalidate_bin_counts.reset_mock()
        with mock.patch.dict('forgetracker.model.ticket.tg_config',
                             **{'forgetracker.bin_cache_expire': 0}):
            gbl._bin_counts_expire = now - timedelta(minutes=5)
            bin = gbl.bin_count('qux')
            assert not gbl.invalidate_bin_counts.called

        # no expire value (e.g. from previously having config set to no expirations)
        gbl.invalidate_bin_counts.reset_mock()
        gbl._bin_counts_expire = None
        bin = gbl.bin_count('qux')
        assert_equal(bin['hits'], 0)
        assert gbl.invalidate_bin_counts.called
Beispiel #10
0
 def test_next_ticket_number_increments(self):
     gl = Globals()
     assert_equal(gl.next_ticket_num(), 1)
     assert_equal(gl.next_ticket_num(), 2)
Beispiel #11
0
 def test_append_new_labels(self):
     gbl = Globals()
     assert_equal(gbl.append_new_labels([], ["tag1"]), ["tag1"])
     assert_equal(gbl.append_new_labels(["tag1", "tag2"], ["tag2"]), ["tag1", "tag2"])
     assert_equal(gbl.append_new_labels(["tag1", "tag2"], ["tag3"]), ["tag1", "tag2", "tag3"])
     assert_equal(gbl.append_new_labels(["tag1", "tag2", "tag3"], ["tag2"]), ["tag1", "tag2", "tag3"])
Beispiel #12
0
 def test_next_ticket_number_increments(self):
     assert Globals.next_ticket_num() == 1
     assert Globals.next_ticket_num() == 2
Beispiel #13
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)
Beispiel #14
0
 def test_next_ticket_number_increments(self):
     gl = Globals()
     assert_equal(gl.next_ticket_num(), 1)
     assert_equal(gl.next_ticket_num(), 2)
Beispiel #15
0
 def test_ticket_numbers_are_independent(self):
     assert Globals.next_ticket_num() == 1
     h.set_context('test', 'doc-bugs', neighborhood='Projects')
     assert Globals.next_ticket_num() == 1
Beispiel #16
0
 def test_next_ticket_number_increments(self):
     assert Globals.next_ticket_num() == 1
     assert Globals.next_ticket_num() == 2
Beispiel #17
0
 def test_ticket_numbers_are_independent(self):
     assert Globals.next_ticket_num() == 1
     h.set_context('test', 'doc-bugs', neighborhood='Projects')
     assert Globals.next_ticket_num() == 1