def test_get_default_category_name_caching(tag_category_factory):
    category1 = tag_category_factory()
    category2 = tag_category_factory()
    db.session.add_all([category1, category2])
    db.session.flush()
    tag_categories.get_default_category_name()
    db.session.delete(category1)
    db.session.flush()
    assert tag_categories.get_default_category_name() == category1.name
    cache.purge()
    assert tag_categories.get_default_category_name() == category2.name
Exemple #2
0
def test_get_default_category_name_caching(tag_category_factory):
    category1 = tag_category_factory()
    category2 = tag_category_factory()
    db.session.add_all([category1, category2])
    db.session.flush()
    tag_categories.get_default_category_name()
    db.session.delete(category1)
    db.session.flush()
    assert tag_categories.get_default_category_name() == category1.name
    cache.purge()
    assert tag_categories.get_default_category_name() == category2.name
Exemple #3
0
def test_get_default_category_name(tag_category_factory):
    category1 = tag_category_factory()
    category2 = tag_category_factory(default=True)
    db.session.add_all([category1, category2])
    db.session.flush()
    assert tag_categories.get_default_category_name() == category2.name
    category2.default = False
    db.session.flush()
    cache.purge()
    assert tag_categories.get_default_category_name() == category1.name
    db.session.query(db.TagCategory).delete()
    cache.purge()
    assert tag_categories.get_default_category_name() is None
Exemple #4
0
def test_get_default_category_name(tag_category_factory):
    category1 = tag_category_factory()
    category2 = tag_category_factory(default=True)
    db.session.add_all([category1, category2])
    db.session.flush()
    assert tag_categories.get_default_category_name() == category2.name
    category2.default = False
    db.session.flush()
    cache.purge()
    assert tag_categories.get_default_category_name() == category1.name
    db.session.query(model.TagCategory).delete()
    cache.purge()
    with pytest.raises(tag_categories.TagCategoryNotFoundError):
        tag_categories.get_default_category_name()
def test_get_default_category_name(tag_category_factory):
    category1 = tag_category_factory()
    category2 = tag_category_factory(default=True)
    db.session.add_all([category1, category2])
    db.session.flush()
    assert tag_categories.get_default_category_name() == category2.name
    category2.default = False
    db.session.flush()
    cache.purge()
    assert tag_categories.get_default_category_name() == category1.name
    db.session.query(model.TagCategory).delete()
    cache.purge()
    with pytest.raises(tag_categories.TagCategoryNotFoundError):
        tag_categories.get_default_category_name()
Exemple #6
0
def get_or_create_tags_by_names(
    names: List[str],
) -> Tuple[List[model.Tag], List[model.Tag]]:
    names = util.icase_unique(names)
    existing_tags = get_tags_by_names(names)
    new_tags = []
    tag_category_name = tag_categories.get_default_category_name()
    for name in names:
        found = False
        for existing_tag in existing_tags:
            if _check_name_intersection(
                _get_names(existing_tag), [name], False
            ):
                found = True
                break
        if not found:
            new_tag = create_tag(
                names=[name],
                category_name=tag_category_name,
                suggestions=[],
                implications=[],
            )
            db.session.add(new_tag)
            new_tags.append(new_tag)
    return existing_tags, new_tags
Exemple #7
0
def sort_tags(tags: List[model.Tag]) -> List[model.Tag]:
    default_category_name = tag_categories.get_default_category_name()
    return sorted(
        tags,
        key=lambda tag: (
            default_category_name == tag.category.name,
            tag.category.name,
            tag.names[0].name)
    )
Exemple #8
0
def sort_tags(tags):
    default_category_name = tag_categories.get_default_category_name()
    return sorted(
        tags,
        key=lambda tag: (
            default_category_name == tag.category.name,
            tag.category.name,
            tag.names[0].name)
    )
Exemple #9
0
def sort_tags(tags: List[model.Tag]) -> List[model.Tag]:
    default_category_name = tag_categories.get_default_category_name()
    return sorted(
        tags,
        key=lambda tag: (
            default_category_name == tag.category.name,
            tag.category.name,
            tag.names[0].name,
        ),
    )
Exemple #10
0
def get_or_create_tags_by_names(names):
    names = util.icase_unique(names)
    existing_tags = get_tags_by_names(names)
    new_tags = []
    tag_category_name = tag_categories.get_default_category_name()
    for name in names:
        found = False
        for existing_tag in existing_tags:
            if _check_name_intersection(
                    _get_names(existing_tag), [name], False):
                found = True
                break
        if not found:
            new_tag = create_tag(
                names=[name],
                category_name=tag_category_name,
                suggestions=[],
                implications=[])
            db.session.add(new_tag)
            new_tags.append(new_tag)
    return existing_tags, new_tags