def test_change_bookmark_url(self): ''' Test renaming a Bookmark item. ''' from frostmark import db_base, user_data from frostmark.db import get_session from frostmark.models import Bookmark from frostmark.editor import Editor data = dirname(abspath(user_data.__file__)) self.assertNotIn(db_base.DB_NAME, listdir(data)) item = { 'id': 321, 'title': 'child', 'url': '<url>', 'icon': b'<bytes>' } session = get_session() try: session.add(Bookmark(**item)) session.commit() self.assertEqual( session.query(Bookmark).filter( Bookmark.title == item['title']).first().id, item['id']) self.assertEqual( session.query(Bookmark).filter( Bookmark.id == item['id']).first().title, item['title']) Editor.change_bookmark_url(bookmark_id=item['id'], url=f"http://{item['url']}") self.assertEqual( session.query(Bookmark).filter( Bookmark.id == item['id']).first().url, f"http://{item['url']}") finally: session.close() self.assertIn(db_base.DB_NAME, listdir(data)) remove(join(data, db_base.DB_NAME))
def edit_bookmark(): """ Edit a single bookmark via HTML form. """ # collect parameters bookmark_id = request.form.get('id', type=int) folder_id = request.form.get('folder', type=int) name = request.form.get('title') url = request.form.get('url') status = 302 # only edit if all the fields are ok if all([item is not None for item in (bookmark_id, folder_id, name, url)]): Editor.rename_bookmark( bookmark_id=bookmark_id, name=name ) Editor.change_bookmark_url( bookmark_id=bookmark_id, url=url ) Editor.change_parent_bookmark( bookmark_id=bookmark_id, parent_id=folder_id ) status = 301 response = Response( status=status, headers={ 'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Headers': '*', 'Access-Control-Allow-Methods': '*', 'Location': '/' }, mimetype='application/json' ) return response
bookmark_id=int(kwargs['arg_values'][0]), name=kwargs['arg_values'][1]))) PARSER.console_parser.add_argument( '-cbu', '--change-bookmark-url', help='change url for a bookmark', required=False, nargs=2, metavar=('BOOKMARK_ID', 'URL'), # pylint: disable=unnecessary-lambda action=lambda *args, **kwargs: ExecuteAction( *args, **kwargs, func=lambda *args, **kwargs: Editor.change_bookmark_url( bookmark_id=int(kwargs['arg_values'][0]), url=kwargs['arg_values'][1]))) PARSER.console_parser.add_argument( '--licenses', help='print licenses for all known dependencies', required=False, nargs=0, # pylint: disable=unnecessary-lambda action=lambda *args, **kwargs: ExecuteAction( *args, **kwargs, func=lambda *args, **kwargs: Licenses.print_all_licenses()))