示例#1
0
def test_update_category_name_with_too_long_string(
    config_injector, tag_category_factory
):
    config_injector({"tag_category_name_regex": "^[a-z]+$"})
    category = tag_category_factory()
    with pytest.raises(tag_categories.InvalidTagCategoryNameError):
        tag_categories.update_category_name(category, "a" * 3000)
示例#2
0
def test_update_category_name_reusing_own_name(
    config_injector, tag_category_factory, name
):
    config_injector({"tag_category_name_regex": ".*"})
    category = tag_category_factory(name="name")
    db.session.add(category)
    db.session.flush()
    tag_categories.update_category_name(category, name)
    assert category.name == name
示例#3
0
def test_update_category_name_reusing_other_name(config_injector,
                                                 tag_category_factory):
    config_injector({"tag_category_name_regex": ".*"})
    db.session.add(tag_category_factory(name="name"))
    db.session.flush()
    category = tag_category_factory()
    with pytest.raises(tag_categories.TagCategoryAlreadyExistsError):
        tag_categories.update_category_name(category, "name")
    with pytest.raises(tag_categories.TagCategoryAlreadyExistsError):
        tag_categories.update_category_name(category, "NAME")
示例#4
0
def test_update_category_name_reusing_own_name(config_injector,
                                               tag_category_factory):
    config_injector({"tag_category_name_regex": ".*"})
    for name in ["name", "NAME"]:
        category = tag_category_factory(name="name")
        db.session.add(category)
        db.session.flush()
        tag_categories.update_category_name(category, name)
        assert category.name == name
        db.session.rollback()
示例#5
0
def test_update_category_name_reusing_other_name(
        config_injector, tag_category_factory):
    config_injector({'tag_category_name_regex': '.*'})
    db.session.add(tag_category_factory(name='name'))
    db.session.flush()
    category = tag_category_factory()
    with pytest.raises(tag_categories.TagCategoryAlreadyExistsError):
        tag_categories.update_category_name(category, 'name')
    with pytest.raises(tag_categories.TagCategoryAlreadyExistsError):
        tag_categories.update_category_name(category, 'NAME')
示例#6
0
def test_update_category_name_reusing_own_name(
        config_injector, tag_category_factory):
    config_injector({'tag_category_name_regex': '.*'})
    for name in ['name', 'NAME']:
        category = tag_category_factory(name='name')
        db.session.add(category)
        db.session.flush()
        tag_categories.update_category_name(category, name)
        assert category.name == name
        db.session.rollback()
def test_update_category_name_reusing_own_name(config_injector,
                                               tag_category_factory):
    config_injector({'tag_category_name_regex': '.*'})
    for name in ['name', 'NAME']:
        category = tag_category_factory(name='name')
        db.session.add(category)
        db.session.flush()
        tag_categories.update_category_name(category, name)
        assert category.name == name
        db.session.rollback()
def test_update_category_name_reusing_other_name(config_injector,
                                                 tag_category_factory):
    config_injector({'tag_category_name_regex': '.*'})
    db.session.add(tag_category_factory(name='name'))
    db.session.flush()
    category = tag_category_factory()
    with pytest.raises(tag_categories.TagCategoryAlreadyExistsError):
        tag_categories.update_category_name(category, 'name')
    with pytest.raises(tag_categories.TagCategoryAlreadyExistsError):
        tag_categories.update_category_name(category, 'NAME')
示例#9
0
 def put(self, ctx, category_name):
     category = tag_categories.get_category_by_name(category_name)
     if ctx.has_param('name'):
         auth.verify_privilege(ctx.user, 'tag_categories:edit:name')
         tag_categories.update_category_name(
             category, ctx.get_param_as_string('name'))
     if ctx.has_param('color'):
         auth.verify_privilege(ctx.user, 'tag_categories:edit:color')
         tag_categories.update_category_color(
             category, ctx.get_param_as_string('color'))
     ctx.session.flush()
     snapshots.save_entity_modification(category, ctx.user)
     ctx.session.commit()
     tags.export_to_json()
     return tag_categories.serialize_category_with_details(category)
示例#10
0
def update_tag_category(ctx: rest.Context, params: Dict[str,
                                                        str]) -> rest.Response:
    category = tag_categories.get_category_by_name(params["category_name"],
                                                   lock=True)
    versions.verify_version(category, ctx)
    versions.bump_version(category)
    if ctx.has_param("name"):
        auth.verify_privilege(ctx.user, "tag_categories:edit:name")
        tag_categories.update_category_name(category,
                                            ctx.get_param_as_string("name"))
    if ctx.has_param("color"):
        auth.verify_privilege(ctx.user, "tag_categories:edit:color")
        tag_categories.update_category_color(category,
                                             ctx.get_param_as_string("color"))
    ctx.session.flush()
    snapshots.modify(category, ctx.user)
    ctx.session.commit()
    return _serialize(ctx, category)
示例#11
0
def update_tag_category(ctx, params):
    category = tag_categories.get_category_by_name(
        params['category_name'], lock=True)
    versions.verify_version(category, ctx)
    versions.bump_version(category)
    if ctx.has_param('name'):
        auth.verify_privilege(ctx.user, 'tag_categories:edit:name')
        tag_categories.update_category_name(
            category, ctx.get_param_as_string('name'))
    if ctx.has_param('color'):
        auth.verify_privilege(ctx.user, 'tag_categories:edit:color')
        tag_categories.update_category_color(
            category, ctx.get_param_as_string('color'))
    ctx.session.flush()
    snapshots.modify(category, ctx.user)
    ctx.session.commit()
    tags.export_to_json()
    return _serialize(ctx, category)
示例#12
0
def update_tag_category(
        ctx: rest.Context, params: Dict[str, str]) -> rest.Response:
    category = tag_categories.get_category_by_name(
        params['category_name'], lock=True)
    versions.verify_version(category, ctx)
    versions.bump_version(category)
    if ctx.has_param('name'):
        auth.verify_privilege(ctx.user, 'tag_categories:edit:name')
        tag_categories.update_category_name(
            category, ctx.get_param_as_string('name'))
    if ctx.has_param('color'):
        auth.verify_privilege(ctx.user, 'tag_categories:edit:color')
        tag_categories.update_category_color(
            category, ctx.get_param_as_string('color'))
    ctx.session.flush()
    snapshots.modify(category, ctx.user)
    ctx.session.commit()
    return _serialize(ctx, category)
示例#13
0
def test_update_category_name_with_empty_string(tag_category_factory):
    category = tag_category_factory()
    with pytest.raises(tag_categories.InvalidTagCategoryNameError):
        tag_categories.update_category_name(category, None)
示例#14
0
def test_update_category_name_with_too_long_string(
        config_injector, tag_category_factory):
    config_injector({'tag_category_name_regex': '^[a-z]+$'})
    category = tag_category_factory()
    with pytest.raises(tag_categories.InvalidTagCategoryNameError):
        tag_categories.update_category_name(category, 'a' * 3000)
示例#15
0
def test_update_category_name_with_empty_string(tag_category_factory):
    category = tag_category_factory()
    with pytest.raises(tag_categories.InvalidTagCategoryNameError):
        tag_categories.update_category_name(category, None)
示例#16
0
def test_update_category_name_with_invalid_name(config_injector,
                                                tag_category_factory):
    config_injector({'tag_category_name_regex': '^[a-z]+$'})
    category = tag_category_factory()
    with pytest.raises(tag_categories.InvalidTagCategoryNameError):
        tag_categories.update_category_name(category, '0')