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()
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()
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()