mirror of
https://github.com/sissbruecker/linkding
synced 2024-11-13 23:27:16 +00:00
d87dde6bae
* Implement initial background tasks concept * fix property reference * update requirements.txt * simplify bookmark null check * improve web archive url display * add background tasks test * add basic supervisor setup * schedule missing snapshot creation on login * remove task locks and clear task history before starting background task processor * batch create snapshots after import * fix script reference in supervisord.conf * add option to disable background tasks * restructure feature overview
45 lines
1.5 KiB
Python
45 lines
1.5 KiB
Python
from unittest.mock import patch
|
|
|
|
from django.test import TestCase
|
|
|
|
from bookmarks.services import tasks
|
|
from bookmarks.services.importer import import_netscape_html
|
|
from bookmarks.tests.helpers import BookmarkFactoryMixin, disable_logging
|
|
|
|
|
|
class ImporterTestCase(TestCase, BookmarkFactoryMixin):
|
|
|
|
def create_import_html(self, bookmark_tags_string: str):
|
|
return f'''
|
|
<!DOCTYPE NETSCAPE-Bookmark-file-1>
|
|
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
|
|
<TITLE>Bookmarks</TITLE>
|
|
<H1>Bookmarks</H1>
|
|
<DL><p>
|
|
{bookmark_tags_string}
|
|
</DL><p>
|
|
'''
|
|
|
|
@disable_logging
|
|
def test_validate_empty_or_missing_bookmark_url(self):
|
|
test_html = self.create_import_html(f'''
|
|
<!-- Empty URL -->
|
|
<DT><A HREF="" ADD_DATE="1616337559" PRIVATE="0" TOREAD="0" TAGS="tag3">Empty URL</A>
|
|
<DD>Empty URL
|
|
<!-- Missing URL -->
|
|
<DT><A ADD_DATE="1616337559" PRIVATE="0" TOREAD="0" TAGS="tag3">Missing URL</A>
|
|
<DD>Missing URL
|
|
''')
|
|
|
|
import_result = import_netscape_html(test_html, self.get_or_create_test_user())
|
|
|
|
self.assertEqual(import_result.success, 0)
|
|
|
|
def test_schedule_snapshot_creation(self):
|
|
user = self.get_or_create_test_user()
|
|
test_html = self.create_import_html('')
|
|
|
|
with patch.object(tasks, 'schedule_bookmarks_without_snapshots') as mock_schedule_bookmarks_without_snapshots:
|
|
import_netscape_html(test_html, user)
|
|
|
|
mock_schedule_bookmarks_without_snapshots.assert_called_once_with(user.id)
|