def it_returns_the_total_number_of_covenfolk_matching_classification(): cn = Covenfolken() cn.add_covenfolk("weber", "magi", "writer", "consumables", 10) cn.add_covenfolk("yawgma", "magi", "hammerer", "buildings", 5) cn.add_covenfolk("dog", "horse", "stables", "buildings", 2) assert cn.total_count_of("magi") == 2 assert cn.total_count_of("horse") == 1 assert isinstance(cn.total_count_of("magi"), int)
def it_lists_covenfolk_names(capsys): cn = Covenfolken() cn.add_covenfolk("weber", "magi") cn.add_covenfolk("yawgma", "magi") cn.list() captured = capsys.readouterr() assert captured.out == "['weber', 'yawgma']\n"
def it_displays_covenfolk(capsys): cn = Covenfolken() cn.add_covenfolk("weber", "magi") cn.add_covenfolk("a", "magi", "writer", "consumables", 5) cn.display_covenfolk() captured = capsys.readouterr() assert captured.out == """weber: magi
def it_calculates_the_savings_of_all_its_covenfolk(): cn = Covenfolken() folk = demo_folk() cn.add_covenfolk(folk) cn.add_covenfolk("James", "crafter", "woodworker", "buildings", 3, "common") cn.add_covenfolk("Arc", "crafter", "welder", "weapons and armor", 5, "rare") savings = cn.calculate_all_savings() assert savings["buildings"]["woodworker"] == 3 assert savings["weapons and armor"]["welder"] == 6
def it_removes_covenfolk(): cn = Covenfolken() folk = demo_folk() cn.add_covenfolk(folk) assert folk in cn.covenfolk.values() cn.remove_covenfolk(folk.name) assert folk not in cn.covenfolk.values()
def process_new_covenant(): # Create covenant core covenant = session["current_covenant"] covenant.name = request.form["covenant_name"] covenant.season = request.form["covenant_season"] income_sources = {} for income_source, income_value in zip( request.form.getlist('covenant_income_sources_names'), request.form.getlist('covenant_income_sources_values'), ): income_sources[income_source] = float(income_value) covenant.income_sources = income_sources #covenant.tithes = request.form["covenant_tithes"] covenant_tithes = {} for tithe_source, tithe_value in zip( request.form.getlist('tithe_sources_names'), request.form.getlist('tithe_sources_values'), ): covenant_tithes[tithe_source] = float(tithe_value) covenant.treasury = float(request.form["covenant_treasury"]) covenant.inflation_enabled = request.form["covenant_inflation_enabled"] covenant.inflation = float(request.form["covenant_initial_inflation"]) covenant.current_year = int(request.form["current_year"]) covenant.tithes = covenant_tithes # Covenfolk content if not hasattr(covenant, "covenfolken"): covenant.covenfolk = Covenfolken() # Armory content if not hasattr(covenant, "armory"): covenant.armory = Armory() # Laboratory content if not hasattr(covenant, "laboratories"): covenant.laboratories = Laboratories() session['current_covenant'] = covenant return redirect("create_covenant_landing")
def __init__( self, name="Vernus", season="spring", income_sources={"source": 100}, tithes={}, treasury=50.0, laboratories=Laboratories(), covenfolken=Covenfolken(), armory=Armory(), inflation_enabled=True, inflation=0, current_year=1220, ): self.name = name if season.lower() in ["spring", "summer", "winter", "autumn"]: self.season = season.lower() else: raise ValueError(f""" Season {season} is not an accepted covenant season! Please select between spring, summer, autumn, and winter. """) for k, v in income_sources.items(): if not isinstance(k, str): raise TypeError("Income source names need to be strings!") if not isinstance(v * 1.0, float): raise TypeError("Income source values need to be numbers!") self.income_sources = income_sources self.tithes = tithes self.treasury = treasury self.covenfolken = covenfolken self.laboratories = laboratories self.armory = armory self.treasury = treasury self.inflation_enabled = inflation_enabled self.inflation = inflation self.expenses = float( "inf") # Prevents inflation from taking effect the first year self.current_year = int(current_year)
def modify_covenfolken(): if request.method == "GET": return render_template("modify_covenfolken.html", saving_categories=SAVING_CATEGORIES) if request.method == "POST": print("C1") covenant = session["current_covenant"] covenfolken = Covenfolken() #form = request.form #json = request.json #values = request.values #data = request.data #args = request.args print("C2") getlist = request.form.getlist("crafter_name") covenfolk_input = request.form.getlist("covenfolk_input") non_crafters = ["magi", "companion", "grog", "noble", "dependant", "laborer", "servant", "teamster", "animal"] print("C3") for nc in non_crafters: current = f"{nc}_name" these_covenfolk = request.form.getlist(current) for covenfolk in these_covenfolk: if nc == "animal": covenfolken.add_covenfolk(covenfolk, "horse") else: covenfolken.add_covenfolk(covenfolk, nc) print("C4") count = 0 crafter_names = request.form.getlist("crafter_name") crafter_professions = request.form.getlist("crafter_profession") crafter_saving_categories = request.form.getlist("crafter_saving_category") crafter_skills = request.form.getlist("crafter_skill") crafter_rarities = request.form.getlist("crafter_rarity") while count < len(crafter_names): covenfolken.add_covenfolk( crafter_names[count], "crafter", crafter_professions[count], crafter_saving_categories[count], int(crafter_skills[count]), crafter_rarities[count] ) count+=1 print("C5") count = 0 specialist_names = request.form.getlist("specialist_name") specialist_professions = request.form.getlist("specialist_profession") specialist_saving_categories = request.form.getlist("specialist_saving_category") specialist_skills = request.form.getlist("specialist_skill") specialist_rarities = request.form.getlist("specialist_rarity") while count < len(specialist_names): covenfolken.add_covenfolk( specialist_names[count], "specialist", specialist_professions[count], specialist_saving_categories[count], int(specialist_skills[count]), specialist_rarities[count] ) count+=1 print("C6") covenant.covenfolken = covenfolken session["current_covenant"] = covenant print("C7") return render_template("create_covenant_landing.html")
def it_returns_the_total_number_of_covenfolk_matching_profession(): cn = Covenfolken() cn.add_covenfolk("weber", "magi", "writer", "consumables", 10) cn.add_covenfolk("yawgma", "magi", "hammerer", "buildings", 5) cn.add_covenfolk("dog", "horse", "stables", "buildings", 2) assert cn.total_count_of("writer") == 1
def it_creates_new_covenfolk_when_passed_parameters(): cn = Covenfolken() cn.add_covenfolk("jane", "magi") assert "jane" in cn.covenfolk.keys() assert isinstance(cn.covenfolk["jane"], Covenfolk)
def it_accepts_new_covenfolk_objects(): cn = Covenfolken() folk = demo_folk() cn.add_covenfolk(folk) assert folk in cn.covenfolk.values()
def it_instantiates(): cn = Covenfolken() assert cn.covenfolk == {}
def it_calculates_the_savings_of_one_category(): cn = Covenfolken() folk = demo_folk() cn.add_covenfolk(folk) assert cn.calculate_savings_of("buildings") == {"woodworker": 1} cn.add_covenfolk("James", "crafter", "woodworker", "buildings", 3, "common") assert cn.calculate_savings_of("buildings") == {"woodworker": 3} cn.add_covenfolk("Arc", "crafter", "welder", "weapons and armor", 5, "rare") assert cn.calculate_savings_of("weapons and armor") == {"welder": 6}