Esempio n. 1
0
 def test_update_folder(self, test_app):
     with test_app.app_context():
         folder = FolderDB.create(**TEST_FOLDER)
         updated_folder = FolderDB.update(**TEST_FOLDER_UPDATED)
         for (key, value) in TEST_FOLDER_UPDATED.items(
         ):  # Make sure all values are updated as expected
             assert updated_folder.__getattribute__(key) == value
             assert folder.__getattribute__(
                 key) == updated_folder.__getattribute__(key)
Esempio n. 2
0
 def test_list_all_folders(self, test_app):
     with test_app.app_context():
         folder1 = FolderDB.create(**TEST_FOLDER)
         folder2 = FolderDB.create(**TEST_FOLDER_2)
         folder_list = FolderDB.list_all()
         assert len(folder_list) == 2
         assert folder2 == folder_list[
             0]  # folder2 has lower id so be first in the list
         assert folder1 == folder_list[1]
Esempio n. 3
0
    def test_delete_folder(self, test_app):
        with test_app.app_context():
            folder = FolderDB.create(**TEST_FOLDER)
            get_folder = FolderDB.get(TEST_FOLDER['id'])
            assert get_folder is not None  # Make sure the user is retrieved

            deleted_folder = FolderDB.delete(TEST_FOLDER['id'])
            assert folder is deleted_folder  # Make sure the same object is referenced

            get_folder = FolderDB.get(TEST_FOLDER['id'])
            assert get_folder is None  # Make sure the user is not retrieved
Esempio n. 4
0
 def test_create_folder_no_media(self, test_app):
     with test_app.app_context():
         folder = FolderDB.create(**TEST_FOLDER_NO_MEDIA)
         for (key, value) in TEST_FOLDER_NO_MEDIA.items(
         ):  # Make sure all fields are stored correctly
             assert folder.__getattribute__(key) == value
         assert folder.__getattribute__('media') is None
Esempio n. 5
0
 def test_create_folder(self, test_app):
     with test_app.app_context():
         folder = FolderDB.create(**TEST_FOLDER)
         for (key, value) in TEST_FOLDER.items(
         ):  # Make sure all fields are stored correctly
             assert folder.__getattribute__(key) == value
         assert folder.synchronized == datetime.min
Esempio n. 6
0
    def test_load_folder_update_interval(self, test_app):
        with test_app.app_context():
            FolderDB.create(**TEST_FOLDER)
            folder = FolderDB.load_folder(TEST_FOLDER['id'])
            last_synchronized = folder.synchronized  # Store when the folder was synchronized

            folder = FolderDB.load_folder(
                TEST_FOLDER['id'], force_sync=False,
                auto_sync_interval=10)  # Load folder from db without sync
            assert folder.synchronized == last_synchronized  # Test that the folder was not synchronized

            time.sleep(1)  # Sleep to allow the auto_sync_interval
            folder = FolderDB.load_folder(
                TEST_FOLDER['id'], force_sync=False,
                auto_sync_interval=0.5)  # sync folder
            assert folder.synchronized > last_synchronized  # Test that the folder was synchronized
Esempio n. 7
0
def folder(folder_id=TEST_FOLDER_ID
           ):  # TODO: Change default folder to a more useful folder.
    if 'user_id' in session:
        loaded_folder = FolderDB.load_folder(folder_id=folder_id)
        meta_folders = FOLDERS  # The folder metas for all folders are loaded to display at top of the screen
        return render_template('folder.jinja2',
                               meta_folders=meta_folders,
                               folder=loaded_folder)
    else:
        flash('Log in first.', 'message')
        return redirect(url_for('home.login'))
Esempio n. 8
0
    def test_load_folder(self, test_app):
        with test_app.app_context():
            initial_folder = FolderDB.create(**TEST_FOLDER)
            folder = FolderDB.load_folder(
                TEST_FOLDER['id']
            )  # folder should synchronize because it was just created
            last_synchronized = folder.synchronized
            assert initial_folder is folder  # Test that they reference the same object
            assert last_synchronized > \
                   datetime.now() - timedelta(seconds=1)  # Test if synchronized time is set to (almost) now
            assert len(FolderDB.get_items_in_folder(
                folder.id)) != 0  # Test if there are items in the folder now

            folder2 = FolderDB.load_folder(
                folder.id, force_sync=False, auto_sync_interval=10
            )  # Load the folder from the database (no sync)
            assert folder is folder2

            folder3 = FolderDB.load_folder(
                folder.id, force_sync=True)  # Force load the folder from API
            assert folder is folder3
Esempio n. 9
0
 def test_get_folder(self, test_app):
     with test_app.app_context():
         folder = FolderDB.create(**TEST_FOLDER)
         other_folder = FolderDB.get(TEST_FOLDER['id'])
         assert folder is other_folder
Esempio n. 10
0
 def test_load_folder_not_in_db(self, test_app):
     with test_app.app_context():
         with pytest.raises(NotInDatabaseException):
             folder = FolderDB.load_folder(TEST_FOLDER['id'])
Esempio n. 11
0
 def test_get_items_in_folder(self, test_app):
     with test_app.app_context():
         folder = FolderDB.create(**TEST_FOLDER)
         items = FolderDB.get_items_in_folder(folder.id)
         assert len(items) == 0  # Make sure there are no items in