restructuring for poetry-slam

This commit is contained in:
evilchili
2024-03-26 00:53:21 -07:00
parent b1d7639a62
commit 78115023bb
38 changed files with 483 additions and 465 deletions
+6 -7
View File
@@ -7,8 +7,7 @@ import pytest
from ttfrog.db import schema
from ttfrog.db.manager import db as _db
FIXTURE_PATH = Path(__file__).parent / 'fixtures'
FIXTURE_PATH = Path(__file__).parent / "fixtures"
def load_fixture(db, fixture_name):
@@ -23,20 +22,20 @@ def load_fixture(db, fixture_name):
@pytest.fixture(autouse=True)
def db(monkeypatch):
monkeypatch.setattr('ttfrog.db.manager.database', MagicMock(return_value=""))
monkeypatch.setenv('DATABASE_URL', "sqlite:///:memory:")
monkeypatch.setenv('DEBUG', '1')
monkeypatch.setattr("ttfrog.db.manager.database", MagicMock(return_value=""))
monkeypatch.setenv("DATABASE_URL", "sqlite:///:memory:")
monkeypatch.setenv("DEBUG", "1")
_db.init()
return _db
@pytest.fixture
def classes(db):
load_fixture(db, 'classes')
load_fixture(db, "classes")
return dict((rec.name, rec) for rec in db.session.query(schema.CharacterClass).all())
@pytest.fixture
def ancestries(db):
load_fixture(db, 'ancestry')
load_fixture(db, "ancestry")
return dict((rec.name, rec) for rec in db.session.query(schema.Ancestry).all())
+16 -16
View File
@@ -3,54 +3,54 @@ from ttfrog.db import schema
def test_create_character(db, classes, ancestries):
with db.transaction():
darkvision = db.session.query(schema.AncestryTrait).filter_by(name='Darkvision')[0]
darkvision = db.session.query(schema.AncestryTrait).filter_by(name="Darkvision")[0]
# create a human character (the default)
char = schema.Character(name='Test Character')
char = schema.Character(name="Test Character")
db.add(char)
assert char.id == 1
assert char.armor_class == 10
assert char.name == 'Test Character'
assert char.ancestry.name == 'human'
assert char.name == "Test Character"
assert char.ancestry.name == "human"
assert darkvision not in char.traits
# switch ancestry to tiefling
char.ancestry = ancestries['tiefling']
char.ancestry = ancestries["tiefling"]
db.add(char)
char = db.session.get(schema.Character, 1)
assert char.ancestry.name == 'tiefling'
assert char.ancestry.name == "tiefling"
assert darkvision in char.traits
# assign a class and level
char.add_class(classes['fighter'], level=1)
char.add_class(classes["fighter"], level=1)
db.add(char)
assert char.levels == {'fighter': 1}
assert char.levels == {"fighter": 1}
assert char.level == 1
assert char.class_attributes == []
# level up
char.add_class(classes['fighter'], level=2)
char.add_class(classes["fighter"], level=2)
db.add(char)
assert char.levels == {'fighter': 2}
assert char.levels == {"fighter": 2}
assert char.level == 2
assert char.class_attributes == []
# multiclass
char.add_class(classes['rogue'], level=1)
char.add_class(classes["rogue"], level=1)
db.add(char)
assert char.level == 3
assert char.levels == {'fighter': 2, 'rogue': 1}
assert char.levels == {"fighter": 2, "rogue": 1}
# remove a class
char.remove_class(classes['rogue'])
char.remove_class(classes["rogue"])
db.add(char)
assert char.levels == {'fighter': 2}
assert char.levels == {"fighter": 2}
assert char.level == 2
# remove all remaining classes
char.remove_class(classes['fighter'])
char.remove_class(classes["fighter"])
db.add(char)
# ensure we're not persisting any orphan records in the map table
dump = db.dump()
assert dump['class_map'] == []
assert dump["class_map"] == []