3
0
Fork 0

feat: add app handler methods save_setting(), delete_setting()

This commit is contained in:
Lance Edgar 2024-08-06 18:52:34 -05:00
parent a5823a2202
commit 1c762e5767
2 changed files with 125 additions and 2 deletions

View file

@ -97,6 +97,68 @@ class TestAppHandler(TestCase):
value = self.app.get_setting(session, 'foo')
self.assertEqual(value, 'bar')
def test_save_setting(self):
try:
import sqlalchemy as sa
from sqlalchemy import orm
except ImportError:
pytest.skip("test is not relevant without sqlalchemy")
Session = orm.sessionmaker()
engine = sa.create_engine('sqlite://')
session = Session(bind=engine)
session.execute(sa.text("""
create table setting (
name varchar(255) primary key,
value text
);
"""))
session.commit()
# value null by default
value = self.app.get_setting(session, 'foo')
self.assertIsNone(value)
# unless we save a value
self.app.save_setting(session, 'foo', '1')
session.commit()
value = self.app.get_setting(session, 'foo')
self.assertEqual(value, '1')
def test_delete_setting(self):
try:
import sqlalchemy as sa
from sqlalchemy import orm
except ImportError:
pytest.skip("test is not relevant without sqlalchemy")
Session = orm.sessionmaker()
engine = sa.create_engine('sqlite://')
session = Session(bind=engine)
session.execute(sa.text("""
create table setting (
name varchar(255) primary key,
value text
);
"""))
session.commit()
# value null by default
value = self.app.get_setting(session, 'foo')
self.assertIsNone(value)
# unless we save a value
self.app.save_setting(session, 'foo', '1')
session.commit()
value = self.app.get_setting(session, 'foo')
self.assertEqual(value, '1')
# but then if we delete it, should be null again
self.app.delete_setting(session, 'foo')
session.commit()
value = self.app.get_setting(session, 'foo')
self.assertIsNone(value)
def test_model(self):
try:
from wuttjamaican.db import model