diff options
Diffstat (limited to 'tests/unit/browser/test_history.py')
-rw-r--r-- | tests/unit/browser/test_history.py | 53 |
1 files changed, 27 insertions, 26 deletions
diff --git a/tests/unit/browser/test_history.py b/tests/unit/browser/test_history.py index c1990de0d..b64741592 100644 --- a/tests/unit/browser/test_history.py +++ b/tests/unit/browser/test_history.py @@ -402,30 +402,12 @@ class TestRebuild: ('example.com/2', '', 2), ] - def test_force_rebuild(self, web_history, stubs): - """Ensure that completion is regenerated if we force a rebuild.""" - web_history.add_url(QUrl('example.com/1'), redirect=False, atime=1) - web_history.add_url(QUrl('example.com/2'), redirect=False, atime=2) - web_history.completion.delete('url', 'example.com/2') - - hist2 = history.WebHistory(progress=stubs.FakeHistoryProgress()) - assert list(hist2.completion) == [('example.com/1', '', 1)] - hist2.metainfo['force_rebuild'] = True - - hist3 = history.WebHistory(progress=stubs.FakeHistoryProgress()) - assert list(hist3.completion) == [ - ('example.com/1', '', 1), - ('example.com/2', '', 2), - ] - assert not hist3.metainfo['force_rebuild'] - def test_exclude(self, config_stub, web_history, stubs): """Ensure that patterns in completion.web_history.exclude are ignored. This setting should only be used for the completion. """ config_stub.val.completion.web_history.exclude = ['*.example.org'] - assert web_history.metainfo['force_rebuild'] web_history.add_url(QUrl('http://example.com'), redirect=False, atime=1) @@ -435,16 +417,35 @@ class TestRebuild: hist2 = history.WebHistory(progress=stubs.FakeHistoryProgress()) assert list(hist2.completion) == [('http://example.com', '', 1)] - def test_unrelated_config_change(self, config_stub, web_history): - config_stub.val.history_gap_interval = 1234 - assert not web_history.metainfo['force_rebuild'] + def test_pattern_change_rebuild(self, config_stub, web_history, stubs): + """Ensure that completion is rebuilt when exclude patterns change.""" + config_stub.val.completion.web_history.exclude = ['*.example.org'] + + web_history.add_url(QUrl('http://example.com'), + redirect=False, atime=1) + web_history.add_url(QUrl('http://example.org'), + redirect=False, atime=2) + + hist2 = history.WebHistory(progress=stubs.FakeHistoryProgress()) + assert list(hist2.completion) == [ + ('http://example.com', '', 1), + ] + + config_stub.val.completion.web_history.exclude = [] + + hist3 = history.WebHistory(progress=stubs.FakeHistoryProgress()) + assert list(hist3.completion) == [ + ('http://example.com', '', 1), + ('http://example.org', '', 2) + ] @pytest.mark.parametrize('patch_threshold', [True, False]) def test_progress(self, web_history, config_stub, monkeypatch, stubs, patch_threshold): web_history.add_url(QUrl('example.com/1'), redirect=False, atime=1) web_history.add_url(QUrl('example.com/2'), redirect=False, atime=2) - web_history.metainfo['force_rebuild'] = True + # Change cached patterns to trigger a completion rebuild + web_history.metainfo['excluded_patterns'] = 'http://example.org' if patch_threshold: monkeypatch.setattr(history.WebHistory, '_PROGRESS_THRESHOLD', 1) @@ -476,12 +477,12 @@ class TestCompletionMetaInfo: metainfo['does_not_exist'] = 42 def test_contains(self, metainfo): - assert 'force_rebuild' in metainfo + assert 'excluded_patterns' in metainfo def test_modify(self, metainfo): - assert not metainfo['force_rebuild'] - metainfo['force_rebuild'] = True - assert metainfo['force_rebuild'] + assert not metainfo['excluded_patterns'] + metainfo['excluded_patterns'] = 'https://example.com/' + assert metainfo['excluded_patterns'] class TestHistoryProgress: |