Allow to pass atime to WebHistory.add_url
This makes a lot of tests easier and/or more exact.
This commit is contained in:
parent
7511bc1fe5
commit
9298fa697b
@ -270,16 +270,19 @@ class WebHistory(QObject):
|
|||||||
self._saved_count = 0
|
self._saved_count = 0
|
||||||
self.cleared.emit()
|
self.cleared.emit()
|
||||||
|
|
||||||
def add_url(self, url, title="", hidden=False):
|
def add_url(self, url, title="", *, hidden=False, atime=None):
|
||||||
"""Called by WebKit when an URL should be added to the history.
|
"""Called by WebKit when an URL should be added to the history.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
url: An url (as QUrl) to add to the history.
|
url: An url (as QUrl) to add to the history.
|
||||||
hidden: Whether to hide the entry from the on-disk history
|
hidden: Whether to hide the entry from the on-disk history
|
||||||
|
atime: Override the atime used to add the entry
|
||||||
"""
|
"""
|
||||||
if config.get('general', 'private-browsing'):
|
if config.get('general', 'private-browsing'):
|
||||||
return
|
return
|
||||||
entry = Entry(time.time(), url, title, hidden=hidden)
|
if atime is None:
|
||||||
|
atime = time.time()
|
||||||
|
entry = Entry(atime, url, title, hidden=hidden)
|
||||||
if self._initial_read_done:
|
if self._initial_read_done:
|
||||||
self._add_entry(entry)
|
self._add_entry(entry)
|
||||||
if not entry.hidden:
|
if not entry.hidden:
|
||||||
|
@ -80,9 +80,11 @@ def test_async_read_no_datadir(qtbot, config_stub, fake_save_manager):
|
|||||||
@pytest.mark.parametrize('hidden', [True, False])
|
@pytest.mark.parametrize('hidden', [True, False])
|
||||||
def test_adding_item_during_async_read(qtbot, hist, hidden):
|
def test_adding_item_during_async_read(qtbot, hist, hidden):
|
||||||
"""Check what happens when adding URL while reading the history."""
|
"""Check what happens when adding URL while reading the history."""
|
||||||
|
url = QUrl('http://www.example.com/')
|
||||||
|
|
||||||
with qtbot.assertNotEmitted(hist.add_completion_item), \
|
with qtbot.assertNotEmitted(hist.add_completion_item), \
|
||||||
qtbot.assertNotEmitted(hist.item_added):
|
qtbot.assertNotEmitted(hist.item_added):
|
||||||
hist.add_url(QUrl('http://www.example.com/'), hidden=hidden)
|
hist.add_url(url, hidden=hidden, atime=12345)
|
||||||
|
|
||||||
if hidden:
|
if hidden:
|
||||||
with qtbot.assertNotEmitted(hist.add_completion_item):
|
with qtbot.assertNotEmitted(hist.add_completion_item):
|
||||||
@ -94,8 +96,8 @@ def test_adding_item_during_async_read(qtbot, hist, hidden):
|
|||||||
|
|
||||||
assert not hist._temp_history
|
assert not hist._temp_history
|
||||||
|
|
||||||
urls = [item.url for item in hist.history_dict.values()]
|
expected = history.Entry(url=url, atime=12345, hidden=hidden, title="")
|
||||||
assert urls == [QUrl('http://www.example.com/')]
|
assert list(hist.history_dict.values()) == [expected]
|
||||||
|
|
||||||
|
|
||||||
def test_private_browsing(qtbot, tmpdir, fake_save_manager, config_stub):
|
def test_private_browsing(qtbot, tmpdir, fake_save_manager, config_stub):
|
||||||
@ -128,18 +130,21 @@ def test_private_browsing(qtbot, tmpdir, fake_save_manager, config_stub):
|
|||||||
|
|
||||||
def test_iter(hist):
|
def test_iter(hist):
|
||||||
list(hist.async_read())
|
list(hist.async_read())
|
||||||
|
|
||||||
url = QUrl('http://www.example.com/')
|
url = QUrl('http://www.example.com/')
|
||||||
hist.add_url(url)
|
hist.add_url(url, atime=12345)
|
||||||
entries = list(hist)
|
|
||||||
assert len(entries) == 1
|
entry = history.Entry(url=url, atime=12345, hidden=False, title="")
|
||||||
assert entries[0].url == url
|
assert list(hist) == [entry]
|
||||||
|
|
||||||
|
|
||||||
def test_len(hist):
|
def test_len(hist):
|
||||||
assert len(hist) == 0
|
assert len(hist) == 0
|
||||||
list(hist.async_read())
|
list(hist.async_read())
|
||||||
|
|
||||||
url = QUrl('http://www.example.com/')
|
url = QUrl('http://www.example.com/')
|
||||||
hist.add_url(url)
|
hist.add_url(url)
|
||||||
|
|
||||||
assert len(hist) == 1
|
assert len(hist) == 1
|
||||||
|
|
||||||
|
|
||||||
@ -163,8 +168,8 @@ def test_updated_entries(hist, tmpdir):
|
|||||||
list(hist.async_read())
|
list(hist.async_read())
|
||||||
|
|
||||||
assert hist.history_dict['http://example.com/'].atime == 67890
|
assert hist.history_dict['http://example.com/'].atime == 67890
|
||||||
hist.add_url(QUrl('http://example.com/'))
|
hist.add_url(QUrl('http://example.com/'), atime=99999)
|
||||||
assert hist.history_dict['http://example.com/'].atime != 67890
|
assert hist.history_dict['http://example.com/'].atime == 99999
|
||||||
|
|
||||||
|
|
||||||
def test_invalid_read(hist, tmpdir, caplog):
|
def test_invalid_read(hist, tmpdir, caplog):
|
||||||
@ -185,10 +190,13 @@ def test_get_recent(hist, tmpdir):
|
|||||||
(tmpdir / 'filled-history').write('12345 http://example.com/')
|
(tmpdir / 'filled-history').write('12345 http://example.com/')
|
||||||
hist = history.WebHistory(hist_dir=str(tmpdir), hist_name='filled-history')
|
hist = history.WebHistory(hist_dir=str(tmpdir), hist_name='filled-history')
|
||||||
list(hist.async_read())
|
list(hist.async_read())
|
||||||
hist.add_url(QUrl('http://www.qutebrowser.org/'))
|
|
||||||
|
hist.add_url(QUrl('http://www.qutebrowser.org/'), atime=67890)
|
||||||
lines = hist.get_recent()
|
lines = hist.get_recent()
|
||||||
assert lines[0] == '12345 http://example.com/'
|
|
||||||
assert lines[1].split()[1] == 'http://www.qutebrowser.org/'
|
expected = ['12345 http://example.com/',
|
||||||
|
'67890 http://www.qutebrowser.org/']
|
||||||
|
assert lines == expected
|
||||||
|
|
||||||
|
|
||||||
def test_save(hist, tmpdir):
|
def test_save(hist, tmpdir):
|
||||||
@ -198,22 +206,20 @@ def test_save(hist, tmpdir):
|
|||||||
hist = history.WebHistory(hist_dir=str(tmpdir), hist_name='filled-history')
|
hist = history.WebHistory(hist_dir=str(tmpdir), hist_name='filled-history')
|
||||||
list(hist.async_read())
|
list(hist.async_read())
|
||||||
|
|
||||||
hist.add_url(QUrl('http://www.qutebrowser.org/'))
|
hist.add_url(QUrl('http://www.qutebrowser.org/'), atime=67890)
|
||||||
hist.save()
|
hist.save()
|
||||||
|
|
||||||
lines = hist_file.read().splitlines()
|
lines = hist_file.read().splitlines()
|
||||||
assert len(lines) == 2
|
expected = ['12345 http://example.com/',
|
||||||
assert lines[0] == '12345 http://example.com/'
|
'67890 http://www.qutebrowser.org/']
|
||||||
assert lines[1].split()[1] == 'http://www.qutebrowser.org/'
|
assert lines == expected
|
||||||
|
|
||||||
hist.add_url(QUrl('http://www.the-compiler.org/'))
|
hist.add_url(QUrl('http://www.the-compiler.org/'), atime=99999)
|
||||||
hist.save()
|
hist.save()
|
||||||
|
expected.append('99999 http://www.the-compiler.org/')
|
||||||
|
|
||||||
lines = hist_file.read().splitlines()
|
lines = hist_file.read().splitlines()
|
||||||
assert len(lines) == 3
|
assert lines == expected
|
||||||
assert lines[0] == '12345 http://example.com/'
|
|
||||||
assert lines[1].split()[1] == 'http://www.qutebrowser.org/'
|
|
||||||
assert lines[2].split()[1] == 'http://www.the-compiler.org/'
|
|
||||||
|
|
||||||
|
|
||||||
def test_clear(qtbot, hist, tmpdir):
|
def test_clear(qtbot, hist, tmpdir):
|
||||||
@ -232,20 +238,23 @@ def test_clear(qtbot, hist, tmpdir):
|
|||||||
assert not hist.history_dict
|
assert not hist.history_dict
|
||||||
assert not hist._new_history
|
assert not hist._new_history
|
||||||
|
|
||||||
hist.add_url(QUrl('http://www.the-compiler.org/'))
|
hist.add_url(QUrl('http://www.the-compiler.org/'), atime=67890)
|
||||||
hist.save()
|
hist.save()
|
||||||
|
|
||||||
lines = hist_file.read().splitlines()
|
lines = hist_file.read().splitlines()
|
||||||
assert len(lines) == 1
|
assert lines == ['67890 http://www.the-compiler.org/']
|
||||||
assert lines[0].split()[1] == 'http://www.the-compiler.org/'
|
|
||||||
|
|
||||||
|
|
||||||
def test_add_item(qtbot, hist):
|
def test_add_item(qtbot, hist):
|
||||||
list(hist.async_read())
|
list(hist.async_read())
|
||||||
url = 'http://www.example.com/'
|
url = 'http://www.example.com/'
|
||||||
|
|
||||||
with qtbot.waitSignals([hist.add_completion_item, hist.item_added]):
|
with qtbot.waitSignals([hist.add_completion_item, hist.item_added]):
|
||||||
hist.add_url(QUrl(url))
|
hist.add_url(QUrl(url), atime=12345, title="the title")
|
||||||
assert url in hist.history_dict
|
|
||||||
|
entry = history.Entry(url=QUrl(url), hidden=False, atime=12345,
|
||||||
|
title="the title")
|
||||||
|
assert hist.history_dict[url] == entry
|
||||||
|
|
||||||
|
|
||||||
def test_add_item_hidden(qtbot, hist):
|
def test_add_item_hidden(qtbot, hist):
|
||||||
@ -253,8 +262,10 @@ def test_add_item_hidden(qtbot, hist):
|
|||||||
url = 'http://www.example.com/'
|
url = 'http://www.example.com/'
|
||||||
with qtbot.assertNotEmitted(hist.add_completion_item), \
|
with qtbot.assertNotEmitted(hist.add_completion_item), \
|
||||||
qtbot.assertNotEmitted(hist.item_added):
|
qtbot.assertNotEmitted(hist.item_added):
|
||||||
hist.add_url(QUrl(url), hidden=True)
|
hist.add_url(QUrl(url), hidden=True, atime=12345)
|
||||||
assert url in hist.history_dict
|
|
||||||
|
entry = history.Entry(url=QUrl(url), hidden=True, atime=12345, title="")
|
||||||
|
assert hist.history_dict[url] == entry
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize('line, expected', [
|
@pytest.mark.parametrize('line, expected', [
|
||||||
|
Loading…
Reference in New Issue
Block a user