Exemplo n.º 1
0
Arquivo: test_db.py Projeto: dgw/sopel
def test_merge_nick_groups(db: SopelDB):
    session = db.ssession()
    aliases = ['MrEricPraline', 'Praline']
    for nick_id, alias in enumerate(aliases):
        nn = Nicknames(nick_id=nick_id,
                       slug=Identifier(alias).lower(),
                       canonical=alias)
        session.add(nn)
        session.commit()

    finals = (('foo', 'bar'), ('bar', 'blue'), ('spam', 'eggs'))

    db.set_nick_value(aliases[0], finals[0][0], finals[0][1])
    db.set_nick_value(aliases[0], finals[1][0], finals[1][1])
    db.set_nick_value(aliases[1], 'foo', 'baz')
    db.set_nick_value(aliases[1], finals[2][0], finals[2][1])

    db.merge_nick_groups(aliases[0], aliases[1])

    nick_ids = session.query(Nicknames.nick_id).all()
    nick_id = nick_ids[0][0]
    alias_id = nick_ids[1][0]
    assert nick_id == alias_id

    for key, value in finals:
        found = session.query(NickValues.value) \
                       .filter(NickValues.nick_id == nick_id) \
                       .filter(NickValues.key == key) \
                       .scalar()
        assert json.loads(str(found)) == value
    session.close()
Exemplo n.º 2
0
Arquivo: test_db.py Projeto: dgw/sopel
def test_forget_nick_group(db: SopelDB):
    session = db.ssession()
    aliases = ['MrEricPraline', 'Praline']
    nick_id = 42
    for alias in aliases:
        nn = Nicknames(nick_id=nick_id,
                       slug=Identifier(alias).lower(),
                       canonical=alias)
        session.add(nn)
        session.commit()

    db.set_nick_value(aliases[0], 'foo', 'bar')
    db.set_nick_value(aliases[1], 'spam', 'eggs')

    db.forget_nick_group(aliases[0])

    with pytest.raises(ValueError):
        db.forget_nick_group('Mister_Bradshaw')

    # Nothing else has created values, so we know the tables are empty
    nicks = session.query(Nicknames).all()
    assert len(nicks) == 0
    data = session.query(NickValues).first()
    assert data is None
    session.close()
Exemplo n.º 3
0
Arquivo: test_db.py Projeto: dgw/sopel
def test_get_plugin_value(db: SopelDB):
    session = db.ssession()

    pv = PluginValues(plugin='plugname', key='qwer', value='\"zxcv\"')
    session.add(pv)
    session.commit()

    result = db.get_plugin_value('plugname', 'qwer')
    assert result == 'zxcv'
    session.close()