コード例 #1
0
ファイル: test_edit.py プロジェクト: KeyWeeUsr/Frostmark
    def test_rename_bookmark(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.rename_bookmark(bookmark_id=item['id'],
                                   name=item['title'][:3])

            self.assertEqual(
                session.query(Bookmark).filter(
                    Bookmark.id == item['id']).first().title,
                item['title'][:3])
        finally:
            session.close()

        self.assertIn(db_base.DB_NAME, listdir(data))
        remove(join(data, db_base.DB_NAME))
コード例 #2
0
ファイル: __init__.py プロジェクト: KeyWeeUsr/Frostmark
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
コード例 #3
0
            name=kwargs['arg_values'][1])))

PARSER.console_parser.add_argument(
    '-rb',
    '--rename-bookmark',
    help='rename bookmark',
    required=False,
    nargs=2,
    metavar=('BOOKMARK_ID', 'NAME'),

    # pylint: disable=unnecessary-lambda
    action=lambda *args, **kwargs: ExecuteAction(
        *args,
        **kwargs,
        func=lambda *args, **kwargs: Editor.rename_bookmark(
            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(