Skip to content

Commit

Permalink
Use request method to access db session
Browse files Browse the repository at this point in the history
  • Loading branch information
davismr committed Jan 6, 2025
1 parent 4f70ca0 commit 449eb92
Show file tree
Hide file tree
Showing 17 changed files with 125 additions and 11 deletions.
3 changes: 1 addition & 2 deletions src/wfrp/character/forms/create/new_character.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
from pyramid.view import view_config
from pyramid.view import view_defaults

from wfrp.character.application import DBSession
from wfrp.character.models.character import Character


Expand All @@ -18,7 +17,7 @@ def __init__(self, request):
def get_view(self):
new_uuid = str(uuid.uuid4())
new_character = Character(uuid=new_uuid)
DBSession.add(new_character)
self.request.dbsession.add(new_character)
url = self.request.route_url("species", uuid=new_uuid)
new_character.status = {"species": ""}
return HTTPFound(location=url)
7 changes: 4 additions & 3 deletions src/wfrp/character/views/auth.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
from pyramid.view import view_config
from pyramid.view import view_defaults

from wfrp.character.application import DBSession
from wfrp.character.models.user import User
from wfrp.character.security import check_password
from wfrp.character.security import hash_password
Expand All @@ -30,7 +29,9 @@ def login(self):
if "form.submitted" in request.POST:
login = request.POST["login"]
password = request.POST["password"]
hashed_pw = DBSession.query(User).filter(User.email == login).one().password
hashed_pw = (
request.dbsession.query(User).filter(User.email == login).one().password
)
if hashed_pw and check_password(password, hashed_pw):
headers = remember(request, login)
return HTTPFound(location=came_from, headers=headers)
Expand Down Expand Up @@ -63,7 +64,7 @@ def register(self):
email = request.POST["email"]
password = request.POST["password"]
new_user = User(email=email, name=name, password=hash_password(password))
DBSession.add(new_user)
request.dbsession.add(new_user)
return HTTPFound(location=self.request.route_url("homepage"))
return dict(
message=message,
Expand Down
5 changes: 3 additions & 2 deletions src/wfrp/character/views/base_view.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
from pyramid.httpexceptions import HTTPFound

from wfrp.character.application import DBSession
from wfrp.character.models.character import Character


Expand All @@ -9,7 +8,9 @@ def __init__(self, request):
self.request = request
self.logged_in = request.authenticated_userid
uuid = request.matchdict["uuid"]
self.character = DBSession.query(Character).filter(Character.uuid == uuid).one()
self.character = (
request.dbsession.query(Character).filter(Character.uuid == uuid).one()
)
if "complete" in self.character.status and self.request.matched_route.name in [
"character_edit",
"character_full",
Expand Down
3 changes: 1 addition & 2 deletions src/wfrp/character/views/homepage.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
from pyramid.view import view_config
from pyramid.view import view_defaults

from wfrp.character.application import DBSession
from wfrp.character.models.character import Character


Expand All @@ -13,7 +12,7 @@ def __init__(self, request):

@view_config(request_method="GET", renderer="wfrp.character:templates/homepage.pt")
def get_view(self):
characters = DBSession.query(Character).all()
characters = self.request.dbsession.query(Character).all()
character_list = {}
for character in characters:
url = self.request.route_url("character_summary", uuid=character.uuid)
Expand Down
8 changes: 8 additions & 0 deletions tests/test_create_advances.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
from pyramid import testing
from pyramid.httpexceptions import HTTPFound

from wfrp.character.application import dbsession
from wfrp.character.forms.create.advances import AdvancesViews


Expand All @@ -18,6 +19,7 @@ def test_initialise_form(new_character):
new_character.career = "Apothecary"
new_character.status = {"advances": ""}
request = testing.DummyRequest()
request.dbsession = dbsession(request)
request.matched_route = DummyRoute(name="advances")
request.matchdict = {"uuid": new_character.uuid}
view = AdvancesViews(request)
Expand All @@ -35,6 +37,7 @@ def test_form_view(new_character):
new_character.career = "Apothecary"
new_character.status = {"advances": ""}
request = testing.DummyRequest()
request.dbsession = dbsession(request)
request.matched_route = DummyRoute(name="advances")
request.matchdict = {"uuid": new_character.uuid}
view = AdvancesViews(request)
Expand All @@ -61,6 +64,7 @@ def test_submit_view(new_character):
"Accept_Advances": "Accept_Advances",
}
)
request.dbsession = dbsession(request)
request.matched_route = DummyRoute(name="advances")
request.matchdict = {"uuid": new_character.uuid}
view = AdvancesViews(request)
Expand Down Expand Up @@ -93,6 +97,7 @@ def test_invalid_submit_view(new_character, advance, message):
"Accept_Advances": "Accept_Advances",
}
)
request.dbsession = dbsession(request)
request.matched_route = DummyRoute(name="advances")
request.matchdict = {"uuid": new_character.uuid}
view = AdvancesViews(request)
Expand All @@ -116,6 +121,7 @@ def test_invalid_fate_submit_view(new_character, advance):
"Accept_Advances": "Accept_Advances",
}
)
request.dbsession = dbsession(request)
request.matched_route = DummyRoute(name="advances")
request.matchdict = {"uuid": new_character.uuid}
view = AdvancesViews(request)
Expand All @@ -138,6 +144,7 @@ def test_motivation(new_character):
"Accept_Advances": "Accept_Advances",
}
)
request.dbsession = dbsession(request)
request.matched_route = DummyRoute(name="advances")
request.matchdict = {"uuid": new_character.uuid}
view = AdvancesViews(request)
Expand All @@ -158,6 +165,7 @@ def test_motivation_not_required(new_character):
"Accept_Advances": "Accept_Advances",
}
)
request.dbsession = dbsession(request)
request.matched_route = DummyRoute(name="advances")
request.matchdict = {"uuid": new_character.uuid}
view = AdvancesViews(request)
Expand Down
18 changes: 18 additions & 0 deletions tests/test_create_attributes.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
from pyramid import testing
from pyramid.httpexceptions import HTTPFound

from wfrp.character.application import dbsession
from wfrp.character.forms.create.attributes import ATTRIBUTES
from wfrp.character.forms.create.attributes import AttributesViews

Expand All @@ -18,6 +19,7 @@ def test_get_view(new_character):
new_character.species = "Human"
new_character.status = {"attributes": ""}
request = testing.DummyRequest()
request.dbsession = dbsession(request)
request.matched_route = DummyRoute(name="attributes")
request.matchdict = {"uuid": new_character.uuid}
view = AttributesViews(request)
Expand All @@ -34,6 +36,7 @@ def test_get_view(new_character):
def test_bonus_attributes_view(new_character):
new_character.status = {"attributes": ""}
request = testing.DummyRequest()
request.dbsession = dbsession(request)
request.matched_route = DummyRoute(name="attributes")
request.matchdict = {"uuid": new_character.uuid}
view = AttributesViews(request)
Expand All @@ -48,6 +51,7 @@ def test_bonus_attributes_view(new_character):
def test_bonus_attributes_halfling(new_character):
new_character.status = {"attributes": ""}
request = testing.DummyRequest()
request.dbsession = dbsession(request)
request.matched_route = DummyRoute(name="attributes")
request.matchdict = {"uuid": new_character.uuid}
view = AttributesViews(request)
Expand All @@ -61,6 +65,7 @@ def test_bonus_attributes_halfling(new_character):
def test_bonus_attributes_dwarf(new_character):
new_character.status = {"attributes": ""}
request = testing.DummyRequest()
request.dbsession = dbsession(request)
request.matched_route = DummyRoute(name="attributes")
request.matchdict = {"uuid": new_character.uuid}
view = AttributesViews(request)
Expand All @@ -74,6 +79,7 @@ def test_bonus_attributes_dwarf(new_character):
def test_bonus_attributes_elf(new_character):
new_character.status = {"attributes": ""}
request = testing.DummyRequest()
request.dbsession = dbsession(request)
request.matched_route = DummyRoute(name="attributes")
request.matchdict = {"uuid": new_character.uuid}
view = AttributesViews(request)
Expand All @@ -87,6 +93,7 @@ def test_bonus_attributes_elf(new_character):
def test_bonus_attributes_invalid(new_character):
new_character.status = {"attributes": ""}
request = testing.DummyRequest()
request.dbsession = dbsession(request)
request.matched_route = DummyRoute(name="attributes")
request.matchdict = {"uuid": new_character.uuid}
view = AttributesViews(request)
Expand All @@ -100,6 +107,7 @@ def test_submit_full_experience(new_character):
new_character.status = {"attributes": ""}
payload = {"Accept_Attributes": "Accept_Attributes"}
request = testing.DummyRequest(post=payload)
request.dbsession = dbsession(request)
request.matched_route = DummyRoute(name="attributes")
request.matchdict = {"uuid": new_character.uuid}
view = AttributesViews(request)
Expand Down Expand Up @@ -129,6 +137,7 @@ def test_submit_rearrange(new_character):
request = testing.DummyRequest(
post={"Rearrange_Attributes": "Rearrange_Attributes"}
)
request.dbsession = dbsession(request)
request.matched_route = DummyRoute(name="attributes")
request.matchdict = {"uuid": new_character.uuid}
view = AttributesViews(request)
Expand All @@ -151,6 +160,7 @@ def test_submit_rearrange(new_character):
"Accept_Attributes": "Accept_Attributes",
}
request = testing.DummyRequest(post=payload)
request.dbsession = dbsession(request)
request.matched_route = DummyRoute(name="attributes")
request.matchdict = {"uuid": new_character.uuid}
view = AttributesViews(request)
Expand All @@ -160,6 +170,7 @@ def test_submit_rearrange(new_character):
assert "You have used 21 too many times and not used 22" in response["form"]
payload["attributes"]["Weapon Skill"] = "22"
request = testing.DummyRequest(post=payload)
request.dbsession = dbsession(request)
request.matched_route = DummyRoute(name="attributes")
request.matchdict = {"uuid": new_character.uuid}
view = AttributesViews(request)
Expand All @@ -186,6 +197,7 @@ def test_reroll_submit(new_character):
"Reroll_Attributes": "Reroll_Attributes",
}
request = testing.DummyRequest(post=payload)
request.dbsession = dbsession(request)
request.matched_route = DummyRoute(name="attributes")
request.matchdict = {"uuid": new_character.uuid}
view = AttributesViews(request)
Expand All @@ -200,6 +212,7 @@ def test_reroll_submit(new_character):
for attribute in attributes:
payload["attributes"][attribute] = str(attributes[attribute])
request = testing.DummyRequest(post=payload)
request.dbsession = dbsession(request)
request.matched_route = DummyRoute(name="attributes")
request.matchdict = {"uuid": new_character.uuid}
view = AttributesViews(request)
Expand All @@ -213,13 +226,15 @@ def test_allocate_submit(new_character):
new_character.species = "Human"
new_character.status = {"attributes": ""}
request = testing.DummyRequest()
request.dbsession = dbsession(request)
request.matched_route = DummyRoute(name="attributes")
request.matchdict = {"uuid": new_character.uuid}
view = AttributesViews(request)
response = view.form_view()
assert "form" in response
payload = {"Allocate_Attributes": "Allocate_Attributes"}
request = testing.DummyRequest(post=payload)
request.dbsession = dbsession(request)
request.matched_route = DummyRoute(name="attributes")
request.matchdict = {"uuid": new_character.uuid}
view = AttributesViews(request)
Expand All @@ -238,6 +253,7 @@ def test_allocate_submit(new_character):
payload["attributes"]["Fellowship"] = "12"
payload["Accept_Attributes"] = "Accept_Attributes"
request = testing.DummyRequest(post=payload)
request.dbsession = dbsession(request)
request.matched_route = DummyRoute(name="attributes")
request.matchdict = {"uuid": new_character.uuid}
view = AttributesViews(request)
Expand All @@ -247,13 +263,15 @@ def test_allocate_submit(new_character):
payload["attributes"]["Weapon Skill"] = "5"
payload["attributes"]["Ballistic Skill"] = "17"
request = testing.DummyRequest(post=payload)
request.dbsession = dbsession(request)
request.matched_route = DummyRoute(name="attributes")
request.matchdict = {"uuid": new_character.uuid}
view = AttributesViews(request)
response = view.form_view()
assert "Total must be 100, total is currently 102" in response["form"]
payload["attributes"]["Ballistic Skill"] = "15"
request = testing.DummyRequest(post=payload)
request.dbsession = dbsession(request)
request.matched_route = DummyRoute(name="attributes")
request.matchdict = {"uuid": new_character.uuid}
view = AttributesViews(request)
Expand Down
8 changes: 8 additions & 0 deletions tests/test_create_careers.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
from pyramid import testing
from pyramid.httpexceptions import HTTPFound

from wfrp.character.application import dbsession
from wfrp.character.forms.create.career import CareerViews


Expand All @@ -17,6 +18,7 @@ def test_initialise_form(new_character):
new_character.species = "Wood Elf"
new_character.status = {"career": ""}
request = testing.DummyRequest()
request.dbsession = dbsession(request)
request.matched_route = DummyRoute(name="career")
request.matchdict = {"uuid": new_character.uuid}
view = CareerViews(request)
Expand All @@ -33,6 +35,7 @@ def test_form_view(new_character):
new_character.species = "Wood Elf"
new_character.status = {"career": ""}
request = testing.DummyRequest()
request.dbsession = dbsession(request)
request.matched_route = DummyRoute(name="career")
request.matchdict = {"uuid": new_character.uuid}
view = CareerViews(request)
Expand All @@ -50,6 +53,7 @@ def test_reroll_view(new_character):
"Reroll": "Reroll",
}
)
request.dbsession = dbsession(request)
request.matched_route = DummyRoute(name="career")
request.matchdict = {"uuid": new_character.uuid}
view = CareerViews(request)
Expand All @@ -66,6 +70,7 @@ def test_invalid_number_careers(new_character):
new_character.species = "Human"
new_character.status = {"career": "Soldier,Beggar"}
request = testing.DummyRequest()
request.dbsession = dbsession(request)
request.matched_route = DummyRoute(name="career")
request.matchdict = {"uuid": new_character.uuid}
view = CareerViews(request)
Expand Down Expand Up @@ -98,6 +103,7 @@ def test_submit_experience(new_character, career_choice, experience):
"Choose_Career": "Choose_Career",
}
)
request.dbsession = dbsession(request)
request.matched_route = DummyRoute(name="career")
request.matchdict = {"uuid": new_character.uuid}
view = CareerViews(request)
Expand All @@ -118,6 +124,7 @@ def test_invalid_submit(new_character):
"Choose_Career": "Choose_Career",
}
)
request.dbsession = dbsession(request)
request.matched_route = DummyRoute(name="career")
request.matchdict = {"uuid": new_character.uuid}
view = CareerViews(request)
Expand All @@ -135,6 +142,7 @@ def test_invalid_none(new_character):
"Choose_Career": "Choose_Career",
}
)
request.dbsession = dbsession(request)
request.matched_route = DummyRoute(name="career")
request.matchdict = {"uuid": new_character.uuid}
view = CareerViews(request)
Expand Down
Loading

0 comments on commit 449eb92

Please sign in to comment.