diff --git a/src/wfrp/character/forms/create/new_character.py b/src/wfrp/character/forms/create/new_character.py index 918b534..718215a 100644 --- a/src/wfrp/character/forms/create/new_character.py +++ b/src/wfrp/character/forms/create/new_character.py @@ -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 @@ -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) diff --git a/src/wfrp/character/views/auth.py b/src/wfrp/character/views/auth.py index 258d8a3..235f908 100644 --- a/src/wfrp/character/views/auth.py +++ b/src/wfrp/character/views/auth.py @@ -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 @@ -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) @@ -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, diff --git a/src/wfrp/character/views/base_view.py b/src/wfrp/character/views/base_view.py index a027cd3..0733239 100644 --- a/src/wfrp/character/views/base_view.py +++ b/src/wfrp/character/views/base_view.py @@ -1,6 +1,5 @@ from pyramid.httpexceptions import HTTPFound -from wfrp.character.application import DBSession from wfrp.character.models.character import Character @@ -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", diff --git a/src/wfrp/character/views/homepage.py b/src/wfrp/character/views/homepage.py index 2c2409d..e656c48 100644 --- a/src/wfrp/character/views/homepage.py +++ b/src/wfrp/character/views/homepage.py @@ -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 @@ -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) diff --git a/tests/test_create_advances.py b/tests/test_create_advances.py index ee54af0..4b2ca55 100644 --- a/tests/test_create_advances.py +++ b/tests/test_create_advances.py @@ -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 @@ -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) @@ -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) @@ -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) @@ -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) @@ -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) @@ -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) @@ -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) diff --git a/tests/test_create_attributes.py b/tests/test_create_attributes.py index cf7cbdc..52adf33 100644 --- a/tests/test_create_attributes.py +++ b/tests/test_create_attributes.py @@ -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 @@ -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) @@ -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) @@ -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) @@ -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) @@ -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) @@ -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) @@ -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) @@ -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) @@ -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) @@ -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) @@ -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) @@ -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) @@ -213,6 +226,7 @@ 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) @@ -220,6 +234,7 @@ def test_allocate_submit(new_character): 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) @@ -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) @@ -247,6 +263,7 @@ 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) @@ -254,6 +271,7 @@ def test_allocate_submit(new_character): 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) diff --git a/tests/test_create_careers.py b/tests/test_create_careers.py index 4ba7b4d..f2b8959 100644 --- a/tests/test_create_careers.py +++ b/tests/test_create_careers.py @@ -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 @@ -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) @@ -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) @@ -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) @@ -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) @@ -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) @@ -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) @@ -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) diff --git a/tests/test_create_details.py b/tests/test_create_details.py index f4db823..909a5bb 100644 --- a/tests/test_create_details.py +++ b/tests/test_create_details.py @@ -4,6 +4,7 @@ from pyramid import testing from pyramid.httpexceptions import HTTPFound +from wfrp.character.application import dbsession from wfrp.character.data.species import SPECIES_DATA from wfrp.character.data.species import SPECIES_LIST from wfrp.character.forms.create.details import DetailsViews @@ -19,6 +20,7 @@ def test_initialise_form_elf(new_character): new_character.species = "Wood Elf" new_character.status = {"details": ""} request = testing.DummyRequest() + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="details") request.matchdict = {"uuid": new_character.uuid} view = DetailsViews(request) @@ -36,6 +38,7 @@ def test_form_view(new_character): new_character.species = "Wood Elf" new_character.status = {"details": ""} request = testing.DummyRequest() + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="details") request.matchdict = {"uuid": new_character.uuid} view = DetailsViews(request) @@ -49,6 +52,7 @@ def test_form_view(new_character): def test_hair_colour(new_character, species): new_character.status = {"details": ""} request = testing.DummyRequest() + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="details") request.matchdict = {"uuid": new_character.uuid} view = DetailsViews(request) @@ -68,6 +72,7 @@ def test_hair_colour(new_character, species): def test_eye_colour(new_character, species): new_character.status = {"details": ""} request = testing.DummyRequest() + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="details") request.matchdict = {"uuid": new_character.uuid} view = DetailsViews(request) @@ -87,6 +92,7 @@ def test_initialise_invalid_species(new_character): new_character.species = "Not a species" new_character.status = {"details": ""} request = testing.DummyRequest() + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="details") request.matchdict = {"uuid": new_character.uuid} view = DetailsViews(request) @@ -100,6 +106,7 @@ def test_initialise_form_species(new_character, species): new_character.species = species new_character.status = {"details": ""} request = testing.DummyRequest() + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="details") request.matchdict = {"uuid": new_character.uuid} view = DetailsViews(request) @@ -116,6 +123,7 @@ def test_details_submit(new_character): new_character.species = "High Elf" new_character.status = {"details": ""} request = testing.DummyRequest(post=payload) + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="details") request.matchdict = {"uuid": new_character.uuid} view = DetailsViews(request) @@ -139,6 +147,7 @@ def test_invalid_submit(new_character): new_character.species = "High Elf" new_character.status = {"details": ""} request = testing.DummyRequest(post=payload) + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="details") request.matchdict = {"uuid": new_character.uuid} view = DetailsViews(request) diff --git a/tests/test_create_name.py b/tests/test_create_name.py index 186881e..637dfbd 100644 --- a/tests/test_create_name.py +++ b/tests/test_create_name.py @@ -4,6 +4,7 @@ from pyramid import testing from pyramid.httpexceptions import HTTPFound +from wfrp.character.application import dbsession from wfrp.character.forms.create.name import NameViews @@ -16,6 +17,7 @@ class DummyRoute: def test_get_view(new_character): new_character.status = {"name": ""} request = testing.DummyRequest() + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="name") request.matchdict = {"uuid": new_character.uuid} view = NameViews(request) @@ -30,6 +32,7 @@ def test_submit_view(new_character): request = testing.DummyRequest( post={"character_name": "Frodo Baggins", "Select_Name": "Select_Name"} ) + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="name") request.matchdict = {"uuid": new_character.uuid} view = NameViews(request) @@ -44,6 +47,7 @@ def test_submit_invalid(new_character): request = testing.DummyRequest( post={"character_name": "a" * 101, "Select_Name": "Select_Name"} ) + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="name") request.matchdict = {"uuid": new_character.uuid} view = NameViews(request) diff --git a/tests/test_create_new_character.py b/tests/test_create_new_character.py index f312313..346c081 100644 --- a/tests/test_create_new_character.py +++ b/tests/test_create_new_character.py @@ -1,12 +1,15 @@ import pytest from pyramid import testing +from wfrp.character.application import dbsession from wfrp.character.forms.create.new_character import NewCharacterViews @pytest.mark.create def test_get_view(testapp): - view = NewCharacterViews(testing.DummyRequest()) + request = testing.DummyRequest() + request.dbsession = dbsession(request) + view = NewCharacterViews(request) response = view.get_view() assert response.status_code == 302 assert "Location" in response.headers diff --git a/tests/test_create_skills.py b/tests/test_create_skills.py index 6e4de57..78a8db7 100644 --- a/tests/test_create_skills.py +++ b/tests/test_create_skills.py @@ -5,6 +5,7 @@ from pyramid import testing from pyramid.httpexceptions import HTTPFound +from wfrp.character.application import dbsession from wfrp.character.forms.create.career_skills import CareerSkillsViews from wfrp.character.forms.create.species_skills import SpeciesSkillsViews @@ -20,6 +21,7 @@ def test_species_skills_view(new_character): new_character.career = "Apothecary" new_character.status = {"species_skills": ""} request = testing.DummyRequest() + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="species_skills") request.matchdict = {"uuid": new_character.uuid} view = SpeciesSkillsViews(request) @@ -35,6 +37,7 @@ def test_initialise_form_return(new_character): new_character.career = "Witch" new_character.status = {"species_skills": ["talent1", "talent2"]} request = testing.DummyRequest() + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="species_skills") request.matchdict = {"uuid": new_character.uuid} view = SpeciesSkillsViews(request) @@ -53,6 +56,7 @@ def test_initialise_form_extra(new_character): new_character.career = "Witch" new_character.status = {"species_skills": ""} request = testing.DummyRequest() + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="species_skills") request.matchdict = {"uuid": new_character.uuid} view = SpeciesSkillsViews(request) @@ -77,6 +81,7 @@ def test_random_talents(new_character, species, expected_talents): new_character.career = "Apothecary" new_character.status = {"species_skills": ""} request = testing.DummyRequest() + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="species_skills") request.matchdict = {"uuid": new_character.uuid} view = SpeciesSkillsViews(request) @@ -118,6 +123,7 @@ def test_species_skills_submit(new_character): new_character.career = "Apothecary" new_character.status = {"species_skills": ""} request = testing.DummyRequest(post=payload) + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="species_skills") request.matchdict = {"uuid": new_character.uuid} view = SpeciesSkillsViews(request) @@ -125,6 +131,7 @@ def test_species_skills_submit(new_character): assert "You have to select a specialisation for Play (Any)" in response["form"] payload["species_skills"]["Specialisation for Play"] = "Lute" request = testing.DummyRequest(post=payload) + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="species_skills") request.matchdict = {"uuid": new_character.uuid} view = SpeciesSkillsViews(request) @@ -169,6 +176,7 @@ def test_species_skills_invalid(new_character): new_character.career = "Apothecary" new_character.status = {"species_skills": ""} request = testing.DummyRequest(post=payload) + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="species_skills") request.matchdict = {"uuid": new_character.uuid} view = SpeciesSkillsViews(request) @@ -209,6 +217,7 @@ def test_species_skills_invalid_none(new_character): new_character.career = "Apothecary" new_character.status = {"species_skills": ""} request = testing.DummyRequest(post=payload) + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="species_skills") request.matchdict = {"uuid": new_character.uuid} view = SpeciesSkillsViews(request) @@ -224,6 +233,7 @@ def test_career_skills_view(new_character): new_character.career = "Apothecary" new_character.status = {"career_skills": ""} request = testing.DummyRequest() + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="career_skills") request.matchdict = {"uuid": new_character.uuid} view = CareerSkillsViews(request) @@ -239,6 +249,7 @@ def test_form_view(new_character): new_character.career = "Apothecary" new_character.status = {"career_skills": ""} request = testing.DummyRequest() + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="career_skills") request.matchdict = {"uuid": new_character.uuid} view = CareerSkillsViews(request) @@ -266,6 +277,7 @@ def test_career_skills_submit(new_character): new_character.career = "Apothecary" new_character.status = {"career_skills": ""} request = testing.DummyRequest(post=payload) + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="career_skills") request.matchdict = {"uuid": new_character.uuid} view = CareerSkillsViews(request) @@ -297,6 +309,7 @@ def test_validation_error(new_character, skill_level, message): new_character.career = "Apothecary" new_character.status = {"career_skills": ""} request = testing.DummyRequest(post=payload) + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="career_skills") request.matchdict = {"uuid": new_character.uuid} view = CareerSkillsViews(request) @@ -336,6 +349,7 @@ def test_skills_add_submit(new_character): new_character.career = "Apothecary" new_character.status = {"species_skills": ""} request = testing.DummyRequest(post=payload) + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="species_skills") request.matchdict = {"uuid": new_character.uuid} view = SpeciesSkillsViews(request) @@ -357,6 +371,7 @@ def test_skills_add_submit(new_character): "Choose_Skills": "Choose_Skills", } request = testing.DummyRequest(post=payload) + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="career_skills") request.matchdict = {"uuid": new_character.uuid} view = CareerSkillsViews(request) @@ -395,6 +410,7 @@ def test_career_skills_any(new_character): "Choose_Skills": "Choose_Skills", } request = testing.DummyRequest(post=payload) + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="career_skills") request.matchdict = {"uuid": new_character.uuid} view = CareerSkillsViews(request) @@ -404,6 +420,7 @@ def test_career_skills_any(new_character): payload["career_skills"]["Trade (Any) specialisation"] = "Embalmer" payload["career_talents"]["career_talent"] = "Craftsman (Any)" request = testing.DummyRequest(post=payload) + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="career_skills") request.matchdict = {"uuid": new_character.uuid} view = CareerSkillsViews(request) @@ -412,6 +429,7 @@ def test_career_skills_any(new_character): assert '"Craftsman (Any)" is not one of ' in response["form"] payload["career_talents"]["career_talent"] = "Craftsman (Calligrapher)" request = testing.DummyRequest(post=payload) + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="career_skills") request.matchdict = {"uuid": new_character.uuid} view = CareerSkillsViews(request) @@ -443,6 +461,7 @@ def test_career_skills_or_fail(new_character): "Choose_Skills": "Choose_Skills", } request = testing.DummyRequest(post=payload) + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="career_skills") request.matchdict = {"uuid": new_character.uuid} view = CareerSkillsViews(request) @@ -454,6 +473,7 @@ def test_career_skills_or_fail(new_character): ) payload["career_skills"]["Stealth (Rural or Urban) specialisation"] = "Urban" request = testing.DummyRequest(post=payload) + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="career_skills") request.matchdict = {"uuid": new_character.uuid} view = CareerSkillsViews(request) diff --git a/tests/test_create_species.py b/tests/test_create_species.py index bd25242..fb7a9a8 100644 --- a/tests/test_create_species.py +++ b/tests/test_create_species.py @@ -5,6 +5,7 @@ from pyramid import testing from pyramid.httpexceptions import HTTPFound +from wfrp.character.application import dbsession from wfrp.character.forms.create.species import SpeciesViews @@ -16,6 +17,7 @@ class DummyRoute: @pytest.mark.create def test_get_view(new_character): request = testing.DummyRequest(path="species") + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="species") request.matchdict = {"uuid": new_character.uuid} view = SpeciesViews(request) @@ -38,6 +40,7 @@ def test_get_view(new_character): ) def test_roll_new_species(new_character, species, roll): request = testing.DummyRequest(path="species") + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="species") request.matchdict = {"uuid": new_character.uuid} view = SpeciesViews(request) @@ -65,6 +68,7 @@ def test_roll_new_species(new_character, species, roll): def test_roll_new_species_gnome(mock_is_gnome_active, new_character, species, roll): mock_is_gnome_active.return_value = True request = testing.DummyRequest(path="species") + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="species") request.matchdict = {"uuid": new_character.uuid} view = SpeciesViews(request) @@ -85,6 +89,7 @@ def test_roll_new_species_gnome(mock_is_gnome_active, new_character, species, ro def test_set_attributes(new_character, species, movement): new_character.status = {"species": ""} request = testing.DummyRequest() + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="species") request.matchdict = {"uuid": new_character.uuid} view = SpeciesViews(request) @@ -104,6 +109,7 @@ def test_submit_view(new_character, species, experience): request = testing.DummyRequest( post={"species": {"species": species}, "Choose_Species": "Choose_Species"} ) + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="species") request.matchdict = {"uuid": new_character.uuid} view = SpeciesViews(request) @@ -119,6 +125,7 @@ def test_submit_species(new_character): request = testing.DummyRequest( post={"species": {"species": "Human"}, "Choose_Species": "Choose_Species"} ) + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="species") request.matchdict = {"uuid": new_character.uuid} view = SpeciesViews(request) @@ -137,6 +144,7 @@ def test_submit_invalid_species(new_character): request = testing.DummyRequest( post={"species": {"species": "Cat"}, "Choose_Species": "Choose_Species"} ) + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="species") request.matchdict = {"uuid": new_character.uuid} view = SpeciesViews(request) diff --git a/tests/test_create_trappings.py b/tests/test_create_trappings.py index eba9e41..d36566d 100644 --- a/tests/test_create_trappings.py +++ b/tests/test_create_trappings.py @@ -5,6 +5,7 @@ from pyramid import testing from pyramid.httpexceptions import HTTPFound +from wfrp.character.application import dbsession from wfrp.character.data.class_trappings import get_class_trappings from wfrp.character.forms.create.trappings import TrappingsViews @@ -20,6 +21,7 @@ def test_initalise_form(new_character): new_character.career = "Apothecary" new_character.status = {"trappings": ""} request = testing.DummyRequest() + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="trappings") request.matchdict = {"uuid": new_character.uuid} view = TrappingsViews(request) @@ -37,6 +39,7 @@ def test_initalise_form(new_character): def test_initalise_form_return(new_character): new_character.status = {"trappings": "foobar"} request = testing.DummyRequest() + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="trappings") request.matchdict = {"uuid": new_character.uuid} view = TrappingsViews(request) @@ -50,6 +53,7 @@ def test_get_view(new_character): new_character.career = "Apothecary" new_character.status = {"trappings": ""} request = testing.DummyRequest() + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="trappings") request.matchdict = {"uuid": new_character.uuid} view = TrappingsViews(request) @@ -62,6 +66,7 @@ def test_get_view(new_character): def test_money(new_character): new_character.status = {"trappings": ""} request = testing.DummyRequest() + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="trappings") request.matchdict = {"uuid": new_character.uuid} view = TrappingsViews(request) @@ -98,6 +103,7 @@ def test_submit_view(new_character): "Choose_trappings": "Choose_trappings", } request = testing.DummyRequest(post=payload) + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="trappings") request.matchdict = {"uuid": new_character.uuid} view = TrappingsViews(request) @@ -137,6 +143,7 @@ def test_submit_artist(new_character): "Choose_trappings": "Choose_trappings", } request = testing.DummyRequest(post=payload) + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="trappings") request.matchdict = {"uuid": new_character.uuid} view = TrappingsViews(request) @@ -173,6 +180,7 @@ def test_submit_bawd(mock_rolld10, new_character): "Choose_trappings": "Choose_trappings", } request = testing.DummyRequest(post=payload) + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="trappings") request.matchdict = {"uuid": new_character.uuid} view = TrappingsViews(request) @@ -207,6 +215,7 @@ def test_submit_item_with_space(new_character): "Choose_trappings": "Choose_trappings", } request = testing.DummyRequest(post=payload) + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="trappings") request.matchdict = {"uuid": new_character.uuid} view = TrappingsViews(request) @@ -238,6 +247,7 @@ def test_submit_view_duplicate_item(new_character): "Choose_trappings": "Choose_trappings", } request = testing.DummyRequest(post=payload) + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="trappings") request.matchdict = {"uuid": new_character.uuid} view = TrappingsViews(request) @@ -267,6 +277,7 @@ def test_submit_invalid(new_character): "Choose_trappings": "Choose_trappings", } request = testing.DummyRequest(post=payload) + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="trappings") request.matchdict = {"uuid": new_character.uuid} view = TrappingsViews(request) @@ -284,6 +295,7 @@ def test_randomise_trappings(mock_rolld10, new_character, second_character): new_character.career = "Apothecary" new_character.status = {"trappings": ""} request = testing.DummyRequest() + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="trappings") request.matchdict = {"uuid": new_character.uuid} view = TrappingsViews(request) @@ -295,6 +307,7 @@ def test_randomise_trappings(mock_rolld10, new_character, second_character): second_character.career = "Apothecary" second_character.status = {"trappings": ""} request = testing.DummyRequest() + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="trappings") request.matchdict = {"uuid": second_character.uuid} view = TrappingsViews(request) diff --git a/tests/test_edit_character.py b/tests/test_edit_character.py index 09f0931..63a3c00 100644 --- a/tests/test_edit_character.py +++ b/tests/test_edit_character.py @@ -3,6 +3,7 @@ import pytest from pyramid import testing +from wfrp.character.application import dbsession from wfrp.character.forms.create.name import NameViews @@ -15,6 +16,7 @@ class DummyRoute: def test_form_view(new_character): new_character.status = {"complete": ""} request = testing.DummyRequest() + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="character_edit") request.matchdict = {"uuid": new_character.uuid} view = NameViews(request) diff --git a/tests/test_package.py b/tests/test_package.py index 8bbddbc..110f5c2 100644 --- a/tests/test_package.py +++ b/tests/test_package.py @@ -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 from wfrp.character.views.homepage import HomePageViews from wfrp.character.views.links import LinksViews @@ -16,7 +17,9 @@ class DummyRoute: @pytest.mark.package def test_home_view(): - view = HomePageViews(testing.DummyRequest()) + request = testing.DummyRequest() + request.dbsession = dbsession(request) + view = HomePageViews(request) response = view.get_view() assert response @@ -38,6 +41,7 @@ def test_links_view(): def test_redirect_view(new_character): new_character.status = {"trappings": ""} request = testing.DummyRequest() + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="career") request.matchdict = {"uuid": new_character.uuid} with pytest.raises(HTTPFound) as error: diff --git a/tests/test_views_character.py b/tests/test_views_character.py index 19117ba..84c0361 100644 --- a/tests/test_views_character.py +++ b/tests/test_views_character.py @@ -3,6 +3,7 @@ import pytest from pyramid import testing +from wfrp.character.application import dbsession from wfrp.character.views.character import WEASYPRINT_INSTALLED from wfrp.character.views.character import CharacterViews @@ -16,6 +17,7 @@ class DummyRoute: def test_full_view(new_character): new_character.status = {"complete": ""} request = testing.DummyRequest() + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="character_full") request.matchdict = {"uuid": new_character.uuid} view = CharacterViews(request) @@ -27,6 +29,7 @@ def test_full_view(new_character): def test_summary_view(new_character): new_character.status = {"complete": ""} request = testing.DummyRequest() + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="character_summary") request.matchdict = {"uuid": new_character.uuid} view = CharacterViews(request) @@ -40,6 +43,7 @@ def test_summary_view(new_character): ) def test_pdf_view(complete_character): request = testing.DummyRequest() + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="pdf_print") request.matchdict = {"uuid": complete_character.uuid} view = CharacterViews(request) diff --git a/tests/test_views_experience.py b/tests/test_views_experience.py index c4e44fd..714ed56 100644 --- a/tests/test_views_experience.py +++ b/tests/test_views_experience.py @@ -3,6 +3,7 @@ import pytest from pyramid import testing +from wfrp.character.application import dbsession from wfrp.character.views.experience import ExperienceViews @@ -17,6 +18,7 @@ def test_form_view(new_character): new_character.career = "Soldier" new_character.status = {"complete": ""} request = testing.DummyRequest() + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="experience") request.matchdict = {"uuid": new_character.uuid} view = ExperienceViews(request) @@ -38,6 +40,7 @@ def test_increase_characteristic(new_character): "Select_Name": "Select_Name", } request = testing.DummyRequest(post=payload) + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="experience") request.matchdict = {"uuid": new_character.uuid} view = ExperienceViews(request) @@ -67,6 +70,7 @@ def test_increase_characteristic_too_much(new_character): "increase_characteristic": {"characteristic": "weapon_skill"}, } request = testing.DummyRequest(post=payload) + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="experience") request.matchdict = {"uuid": new_character.uuid} view = ExperienceViews(request) @@ -92,6 +96,7 @@ def test_increase_unowned_skill(new_character): "increase_skill": {"skill": "Athletics"}, } request = testing.DummyRequest(post=payload) + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="experience") request.matchdict = {"uuid": new_character.uuid} view = ExperienceViews(request) @@ -113,6 +118,7 @@ def test_increase_existing_skill(new_character): "increase_skill": {"skill": "Language (Battle)"}, } request = testing.DummyRequest(post=payload) + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="experience") request.matchdict = {"uuid": new_character.uuid} view = ExperienceViews(request) @@ -138,6 +144,7 @@ def test_increase_choice_skill(new_character): "increase_skill": {"skill": "Play (Drum)"}, } request = testing.DummyRequest(post=payload) + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="experience") request.matchdict = {"uuid": new_character.uuid} view = ExperienceViews(request) @@ -157,6 +164,7 @@ def test_multiple_grouped_skills(new_character): new_character.experience = 200 new_character.status = {"complete": ""} request = testing.DummyRequest() + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="experience") request.matchdict = {"uuid": new_character.uuid} view = ExperienceViews(request) @@ -169,6 +177,7 @@ def test_multiple_grouped_skills(new_character): "increase_skill": {"skill": "Melee (Basic)"}, } request = testing.DummyRequest(post=payload) + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="experience") request.matchdict = {"uuid": new_character.uuid} view = ExperienceViews(request) @@ -188,6 +197,7 @@ def test_increase_skill_too_much(new_character): "increase_skill": {"skill": "Athletics"}, } request = testing.DummyRequest(post=payload) + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="experience") request.matchdict = {"uuid": new_character.uuid} view = ExperienceViews(request) @@ -212,6 +222,7 @@ def test_increase_talent(new_character): "add_talent": {"talent": "Marksman"}, } request = testing.DummyRequest(post=payload) + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="experience") request.matchdict = {"uuid": new_character.uuid} view = ExperienceViews(request) @@ -233,6 +244,7 @@ def test_add_talent(new_character): "add_talent": {"talent": "Warrior Born"}, } request = testing.DummyRequest(post=payload) + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="experience") request.matchdict = {"uuid": new_character.uuid} view = ExperienceViews(request) @@ -253,6 +265,7 @@ def test_talent_too_much(new_character): "add_talent": {"talent": "Warrior Born"}, } request = testing.DummyRequest(post=payload) + request.dbsession = dbsession(request) request.matched_route = DummyRoute(name="experience") request.matchdict = {"uuid": new_character.uuid} view = ExperienceViews(request)