Пример #1
0
def test_cascade_deletions(tag_factory):
    sug1 = tag_factory(names=['sug1'])
    sug2 = tag_factory(names=['sug2'])
    imp1 = tag_factory(names=['imp1'])
    imp2 = tag_factory(names=['imp2'])
    tag = db.Tag()
    tag.names = [db.TagName('alias1'), db.TagName('alias2')]
    tag.suggestions = []
    tag.implications = []
    tag.category = db.TagCategory('category')
    tag.creation_time = datetime(1997, 1, 1)
    tag.last_edit_time = datetime(1998, 1, 1)
    tag.post_count = 1
    db.session.add_all([tag, sug1, sug2, imp1, imp2])
    db.session.commit()

    assert tag.tag_id is not None
    assert sug1.tag_id is not None
    assert sug2.tag_id is not None
    assert imp1.tag_id is not None
    assert imp2.tag_id is not None
    tag.suggestions.append(sug1)
    tag.suggestions.append(sug2)
    tag.implications.append(imp1)
    tag.implications.append(imp2)
    db.session.commit()

    db.session.delete(tag)
    db.session.commit()
    assert db.session.query(db.Tag).count() == 4
    assert db.session.query(db.TagName).count() == 4
    assert db.session.query(db.TagImplication).count() == 0
    assert db.session.query(db.TagSuggestion).count() == 0
Пример #2
0
 def factory(names=None, category=None, category_name='dummy'):
     if not category:
         category = db.TagCategory(category_name)
         db.session.add(category)
     tag = db.Tag()
     tag.names = [db.TagName(name) for name in (names or [get_unique_name()])]
     tag.category = category
     tag.creation_time = datetime.datetime(1996, 1, 1)
     return tag
Пример #3
0
def test_ctx(tmpdir, config_injector, context_factory, user_factory,
             tag_factory):
    config_injector({
        'data_dir': str(tmpdir),
        'tag_name_regex': '^[^!]*$',
        'tag_category_name_regex': '^[^!]*$',
        'privileges': {
            'tags:create': db.User.RANK_REGULAR
        },
    })
    db.session.add_all(
        [db.TagCategory(name) for name in ['meta', 'character', 'copyright']])
    db.session.flush()
    ret = util.dotdict()
    ret.context_factory = context_factory
    ret.user_factory = user_factory
    ret.tag_factory = tag_factory
    ret.api = api.TagListApi()
    return ret
Пример #4
0
def test_saving_tag(tag_factory):
    sug1 = tag_factory(names=['sug1'])
    sug2 = tag_factory(names=['sug2'])
    imp1 = tag_factory(names=['imp1'])
    imp2 = tag_factory(names=['imp2'])
    tag = db.Tag()
    tag.names = [db.TagName('alias1'), db.TagName('alias2')]
    tag.suggestions = []
    tag.implications = []
    tag.category = db.TagCategory('category')
    tag.creation_time = datetime(1997, 1, 1)
    tag.last_edit_time = datetime(1998, 1, 1)
    db.session.add_all([tag, sug1, sug2, imp1, imp2])
    db.session.commit()

    assert tag.tag_id is not None
    assert sug1.tag_id is not None
    assert sug2.tag_id is not None
    assert imp1.tag_id is not None
    assert imp2.tag_id is not None
    tag.suggestions.append(sug1)
    tag.suggestions.append(sug2)
    tag.implications.append(imp1)
    tag.implications.append(imp2)
    db.session.commit()

    tag = db.session \
        .query(db.Tag) \
        .join(db.TagName) \
        .filter(db.TagName.name=='alias1') \
        .one()
    assert [tag_name.name for tag_name in tag.names] == ['alias1', 'alias2']
    assert tag.category.name == 'category'
    assert tag.creation_time == datetime(1997, 1, 1)
    assert tag.last_edit_time == datetime(1998, 1, 1)
    assert [relation.names[0].name for relation in tag.suggestions] \
        == ['sug1', 'sug2']
    assert [relation.names[0].name for relation in tag.implications] \
        == ['imp1', 'imp2']
Пример #5
0
 def factory(name='dummy', color='dummy'):
     category = db.TagCategory()
     category.name = name
     category.color = color
     return category
Пример #6
0
def create_category(name, color):
    category = db.TagCategory()
    update_category_name(category, name)
    update_category_color(category, color)
    return category