def test_Race_Boggartgoblin(): ctx = Ctx(app_username='******') db = InvokePSQL() a = CharacterRace(db=db, ctx=ctx, race_candidate='Boggart goblin') assert(a.race == 'Boggart goblin') darkvision_ind = 0 nimble_escape_ind = 0 swamp_immunity_ind = 0 bog_swimmer_ind = 0 for b in a.traitContainer.traits: if (b.trait_name == 'Darkvision'): darkvision_ind = 1 if (b.trait_name == 'Nimble Escape'): nimble_escape_ind = 1 if (b.trait_name == 'Swamp Immunity'): swamp_immunity_ind = 1 if (b.trait_name == 'Bog Swimmer'): bog_swimmer_ind = 1 assert(darkvision_ind == 1) assert(nimble_escape_ind == 1) assert(swamp_immunity_ind == 1) assert(bog_swimmer_ind == 1) assert(any([v != 0 for v in a.ability_bonuses])) alignmentObj = a.get_alignment(db=db) assert('abbreviation' in alignmentObj) assert('alignment' in alignmentObj) assert(a.get_skin_tone(db=db)) assert(a.get_hair_color(db=db)) assert(a.get_hair_type(db=db)) assert(a.get_eye_color(db=db)) assert(a.get_name(db=db, gender='U'))
def test_Race_Gremlingoblin(): ctx = Ctx(app_username='******') db = InvokePSQL() a = CharacterRace(db=db, ctx=ctx, race_candidate='Gremlin goblin') assert(a.race == 'Gremlin goblin') darkvision_ind = 0 nimble_escape_ind = 0 dangerous_tinker_ind = 0 almost_fire_proof_ind = 0 for b in a.traitContainer.traits: if (b.trait_name == 'Darkvision'): darkvision_ind = 1 if (b.trait_name == 'Nimble Escape'): nimble_escape_ind = 1 if (b.trait_name == 'Dangerous Tinker'): dangerous_tinker_ind = 1 if (b.trait_name == 'Almost Fire Proof'): almost_fire_proof_ind = 1 assert(darkvision_ind == 1) assert(nimble_escape_ind == 1) assert(dangerous_tinker_ind == 1) assert(almost_fire_proof_ind == 1) assert(any([v != 0 for v in a.ability_bonuses])) alignmentObj = a.get_alignment(db=db) assert('abbreviation' in alignmentObj) assert('alignment' in alignmentObj) assert(a.get_skin_tone(db=db)) assert(a.get_hair_color(db=db)) assert(a.get_hair_type(db=db)) assert(a.get_eye_color(db=db)) assert(a.get_name(db=db, gender='U'))
def test_Race_Wingedkobold(): ctx = Ctx(app_username='******') db = InvokePSQL() a = CharacterRace(db=db, ctx=ctx, race_candidate='Winged kobold') assert(a.race == 'Winged kobold') darkvision_ind = 0 pack_tactics_ind = 0 slim_build_ind = 0 sunlight_sensitivity_ind = 0 flying_ind = 0 for b in a.traitContainer.traits: if (b.trait_name == 'Darkvision'): darkvision_ind = 1 if (b.trait_name == 'Pack Tactics'): pack_tactics_ind = 1 if (b.trait_name == 'Slim Build'): slim_build_ind = 1 if (b.trait_name == 'Sunlight Sensitivity'): sunlight_sensitivity_ind = 1 if (b.trait_name == 'Flying'): flying_ind = 1 assert(darkvision_ind == 1) assert(pack_tactics_ind == 1) assert(slim_build_ind == 1) assert(sunlight_sensitivity_ind == 1) assert(flying_ind == 1) assert(any([v != 0 for v in a.ability_bonuses])) alignmentObj = a.get_alignment(db=db) assert('abbreviation' in alignmentObj) assert('alignment' in alignmentObj) assert(a.get_skin_tone(db=db)) assert(a.get_hair_color(db=db)) assert(a.get_hair_type(db=db)) assert(a.get_eye_color(db=db)) assert(a.get_name(db=db, gender='U'))
def test_Race_Greenskingoblin(): ctx = Ctx(app_username='******') db = InvokePSQL() a = CharacterRace(db=db, ctx=ctx, race_candidate='Greenskin goblin') assert(a.race == 'Greenskin goblin') darkvision_ind = 0 nimble_escape_ind = 0 mud_slinger_ind = 0 run_for_it_ind = 0 for b in a.traitContainer.traits: if (b.trait_name == 'Darkvision'): darkvision_ind = 1 if (b.trait_name == 'Nimble Escape'): nimble_escape_ind = 1 if (b.trait_name == 'Mud Slinger'): mud_slinger_ind = 1 if (b.trait_name == 'Run For It'): run_for_it_ind = 1 assert(darkvision_ind == 1) assert(nimble_escape_ind == 1) assert(mud_slinger_ind == 1) assert(run_for_it_ind == 1) assert(any([v != 0 for v in a.ability_bonuses])) alignmentObj = a.get_alignment(db=db) assert('abbreviation' in alignmentObj) assert('alignment' in alignmentObj) assert(a.get_skin_tone(db=db)) assert(a.get_hair_color(db=db)) assert(a.get_hair_type(db=db)) assert(a.get_eye_color(db=db)) assert(a.get_name(db=db, gender='U'))
def test_Race_Polarbearkin(): ctx = Ctx(app_username='******') db = InvokePSQL() a = CharacterRace(db=db, ctx=ctx, race_candidate='Polar bearkin') assert(a.race == 'Polar bearkin') keen_smell_ind = 0 winter_hide_ind = 0 history_of_violence_ind = 0 for b in a.traitContainer.traits: if (b.trait_name == 'Keen Smell'): keen_smell_ind = 1 if (b.trait_name == 'Winter Hide'): winter_hide_ind = 1 if (b.trait_name == 'History of Violence'): history_of_violence_ind = 1 assert(keen_smell_ind == 1) assert(winter_hide_ind == 1) assert(history_of_violence_ind == 1) assert(any([v != 0 for v in a.ability_bonuses])) alignmentObj = a.get_alignment(db=db) assert('abbreviation' in alignmentObj) assert('alignment' in alignmentObj) assert(a.get_skin_tone(db=db)) assert(a.get_hair_color(db=db)) assert(a.get_hair_type(db=db)) assert(a.get_eye_color(db=db)) assert(a.get_name(db=db, gender='U'))
def test_Race_Hilldwarf(): ctx = Ctx(app_username='******') db = InvokePSQL() a = CharacterRace(db=db, ctx=ctx, race_candidate='Hill dwarf') assert(a.race == 'Hill dwarf') darkvision_ind = 0 dwarven_resillience_ind = 0 dwarven_toughness_ind = 0 for b in a.traitContainer.traits: if (b.trait_name == 'Darkvision'): darkvision_ind = 1 if (b.trait_name == 'Dwarven Resilience'): dwarven_resillience_ind = 1 if (b.trait_name == 'Dwarven Toughness'): dwarven_toughness_ind = 1 assert(darkvision_ind == 1) assert(dwarven_resillience_ind == 1) assert(dwarven_toughness_ind == 1) assert(any([v != 0 for v in a.ability_bonuses])) alignmentObj = a.get_alignment(db=db) assert('abbreviation' in alignmentObj) assert('alignment' in alignmentObj) assert(a.get_skin_tone(db=db)) assert(a.get_hair_color(db=db)) assert(a.get_hair_type(db=db)) assert(a.get_eye_color(db=db)) assert(a.get_name(db=db, gender='U'))
def test_Race_Brownbearkin(): ctx = Ctx(app_username='******') db = InvokePSQL() a = CharacterRace(db=db, ctx=ctx, race_candidate='Brown bearkin') assert(a.race == 'Brown bearkin') keen_smell_ind = 0 protector_ind = 0 powerful_build_ind = 0 for b in a.traitContainer.traits: if (b.trait_name == 'Keen Smell'): keen_smell_ind = 1 if (b.trait_name == 'Protector'): protector_ind = 1 if (b.trait_name == 'Powerful Build'): powerful_build_ind = 1 assert(keen_smell_ind == 1) assert(protector_ind == 1) assert(powerful_build_ind == 1) assert(any([v != 0 for v in a.ability_bonuses])) alignmentObj = a.get_alignment(db=db) assert('abbreviation' in alignmentObj) assert('alignment' in alignmentObj) assert(a.get_skin_tone(db=db)) assert(a.get_hair_color(db=db)) assert(a.get_hair_type(db=db)) assert(a.get_eye_color(db=db)) assert(a.get_name(db=db, gender='U'))
def test_Race_Koalabearkin(): ctx = Ctx(app_username='******') db = InvokePSQL() a = CharacterRace(db=db, ctx=ctx, race_candidate='Koala bearkin') assert(a.race == 'Koala bearkin') keen_smell_ind = 0 bear_drop_ind = 0 iron_tummy_ind = 0 tree_born_ind = 0 for b in a.traitContainer.traits: if (b.trait_name == 'Keen Smell'): keen_smell_ind = 1 if (b.trait_name == 'Bear Drop'): bear_drop_ind = 1 if (b.trait_name == 'Iron Tummy'): iron_tummy_ind = 1 if (b.trait_name == 'Tree Born'): tree_born_ind = 1 assert(keen_smell_ind == 1) assert(bear_drop_ind == 1) assert(iron_tummy_ind == 1) assert(tree_born_ind == 1) assert(any([v != 0 for v in a.ability_bonuses])) alignmentObj = a.get_alignment(db=db) assert('abbreviation' in alignmentObj) assert('alignment' in alignmentObj) assert(a.get_skin_tone(db=db)) assert(a.get_hair_color(db=db)) assert(a.get_hair_type(db=db)) assert(a.get_eye_color(db=db)) assert(a.get_name(db=db, gender='U'))
def test_Race_HalfOrc(): ctx = Ctx(app_username='******') db = InvokePSQL() a = CharacterRace(db=db, ctx=ctx, race_candidate='Half-Orc') assert(a.race == 'Half-Orc') darkvision_ind = 0 relentless_ind = 0 savage_attacks_ind = 0 for b in a.traitContainer.traits: if (b.trait_name == 'Darkvision'): darkvision_ind = 1 if (b.trait_name == 'Relentless'): relentless_ind = 1 if (b.trait_name == 'Savage Attacks'): savage_attacks_ind = 1 assert(darkvision_ind == 1) assert(relentless_ind == 1) assert(savage_attacks_ind == 1) assert(any([v != 0 for v in a.ability_bonuses])) alignmentObj = a.get_alignment(db=db) assert('abbreviation' in alignmentObj) assert('alignment' in alignmentObj) assert(a.get_skin_tone(db=db)) assert(a.get_hair_color(db=db)) assert(a.get_hair_type(db=db)) assert(a.get_eye_color(db=db)) assert(a.get_name(db=db, gender='U'))
def test_Race_Tiefling(): ctx = Ctx(app_username='******') db = InvokePSQL() a = CharacterRace(db=db, ctx=ctx, race_candidate='Tiefling') assert(a.race == 'Tiefling') darkvision_ind = 0 hellish_resistance_ind = 0 infernal_legacy_ind = 0 for b in a.traitContainer.traits: if (b.trait_name == 'Darkvision'): darkvision_ind = 1 if (b.trait_name == 'Hellish Resistance'): hellish_resistance_ind = 1 if (b.trait_name == 'Infernal Legacy'): infernal_legacy_ind = 1 assert(darkvision_ind == 1) assert(hellish_resistance_ind == 1) assert(infernal_legacy_ind == 1) assert(any([v != 0 for v in a.ability_bonuses])) alignmentObj = a.get_alignment(db=db) assert('abbreviation' in alignmentObj) assert('alignment' in alignmentObj) assert(a.get_skin_tone(db=db)) assert(a.get_hair_color(db=db)) assert(a.get_hair_type(db=db)) assert(a.get_eye_color(db=db)) assert(a.get_name(db=db, gender='U'))
def test_Race_Highelf(): ctx = Ctx(app_username='******') db = InvokePSQL() a = CharacterRace(db=db, ctx=ctx, race_candidate='High elf') assert(a.race == 'High elf') darkvision_ind = 0 fey_ancestry_ind = 0 cantrip_ind = 0 extra_language_ind = 0 for b in a.traitContainer.traits: if (b.trait_name == 'Darkvision'): darkvision_ind = 1 if (b.trait_name == 'Fey Ancestry'): fey_ancestry_ind = 1 if (b.trait_name == 'Cantrip'): cantrip_ind = 1 if (b.trait_name == 'Extra Language'): extra_language_ind = 1 assert(darkvision_ind == 1) assert(fey_ancestry_ind == 1) assert(cantrip_ind == 1) assert(extra_language_ind == 1) assert(any([v != 0 for v in a.ability_bonuses])) alignmentObj = a.get_alignment(db=db) assert('abbreviation' in alignmentObj) assert('alignment' in alignmentObj) assert(a.get_skin_tone(db=db)) assert(a.get_hair_color(db=db)) assert(a.get_hair_type(db=db)) assert(a.get_eye_color(db=db)) assert(a.get_name(db=db, gender='U'))
def test_Race_Halfelf(): ctx = Ctx(app_username='******') db = InvokePSQL() a = CharacterRace(db=db, ctx=ctx, race_candidate='Half-Elf') assert(a.race == 'Half-Elf') darkvision_ind = 0 fey_ancestry_ind = 0 skill_versatility_ind = 0 for b in a.traitContainer.traits: if (b.trait_name == 'Darkvision'): darkvision_ind = 1 if (b.trait_name == 'Fey Ancestry'): fey_ancestry_ind = 1 if (b.trait_name == 'Skill Versatility'): skill_versatility_ind = 1 assert(darkvision_ind == 1) assert(fey_ancestry_ind == 1) assert(skill_versatility_ind == 1) assert(any([v != 0 for v in a.ability_bonuses])) alignmentObj = a.get_alignment(db=db) assert('abbreviation' in alignmentObj) assert('alignment' in alignmentObj) assert(a.get_skin_tone(db=db)) assert(a.get_hair_color(db=db)) assert(a.get_hair_type(db=db)) assert(a.get_eye_color(db=db)) assert(a.get_name(db=db, gender='U'))
def test_Race_Stouthalfling(): ctx = Ctx(app_username='******') db = InvokePSQL() a = CharacterRace(db=db, ctx=ctx, race_candidate='Stout halfling') assert(a.race == 'Stout halfling') brave_ind = 0 halfling_nimbleness_ind = 0 lucky_ind = 0 stout_resilience_ind = 0 for b in a.traitContainer.traits: if (b.trait_name == 'Brave'): brave_ind = 1 if (b.trait_name == 'Halfling Nimbleness'): halfling_nimbleness_ind = 1 if (b.trait_name == 'Lucky'): lucky_ind = 1 if (b.trait_name == 'Stout Resilience'): stout_resilience_ind = 1 assert(brave_ind == 1) assert(halfling_nimbleness_ind == 1) assert(lucky_ind == 1) assert(stout_resilience_ind == 1) assert(any([v != 0 for v in a.ability_bonuses])) alignmentObj = a.get_alignment(db=db) assert('abbreviation' in alignmentObj) assert('alignment' in alignmentObj) assert(a.get_skin_tone(db=db)) assert(a.get_hair_color(db=db)) assert(a.get_hair_type(db=db)) assert(a.get_eye_color(db=db)) assert(a.get_name(db=db, gender='U'))
def test_Character_Checks(): db = InvokePSQL() ctx = Ctx(app_username='******', logger_name="test_logger") a1 = Foe(db=db, ctx=ctx, foe_candidate='Skeleton') assert(a1) assert(a1.get_name() == "Skeleton") res = a1.check(skill='Strength', vantage='Normal', dc=5) assert(res is True or res is False) res = a1.check(skill='Strength', vantage='Advantage', dc=15) assert(res is True or res is False) res = a1.check(skill='Strength', vantage='Disadvantage', dc=10) assert(res is True or res is False) assert(res is True or res is False) res = a1.check(skill='Dexterity', vantage='Normal', dc=5) assert(res is True or res is False) res = a1.check(skill='Dexterity', vantage='Advantage', dc=15) assert(res is True or res is False) res = a1.check(skill='Dexterity', vantage='Disadvantage', dc=10) assert(res is True or res is False) assert(res is True or res is False) res = a1.check(skill='Constitution', vantage='Normal', dc=5) assert(res is True or res is False) res = a1.check(skill='Constitution', vantage='Advantage', dc=15) assert(res is True or res is False) res = a1.check(skill='Constitution', vantage='Disadvantage', dc=10) assert(res is True or res is False) assert(res is True or res is False) res = a1.check(skill='Intelligence', vantage='Normal', dc=5) assert(res is True or res is False) res = a1.check(skill='Intelligence', vantage='Advantage', dc=15) assert(res is True or res is False) res = a1.check(skill='Intelligence', vantage='Disadvantage', dc=10) assert(res is True or res is False) assert(res is True or res is False) res = a1.check(skill='Wisdom', vantage='Normal', dc=5) assert(res is True or res is False) res = a1.check(skill='Wisdom', vantage='Advantage', dc=15) assert(res is True or res is False) res = a1.check(skill='Wisdom', vantage='Disadvantage', dc=10) assert(res is True or res is False) assert(res is True or res is False) res = a1.check(skill='Charisma', vantage='Normal', dc=5) assert(res is True or res is False) res = a1.check(skill='Charisma', vantage='Advantage', dc=15) assert(res is True or res is False) res = a1.check(skill='Charisma', vantage='Disadvantage', dc=10) assert(res is True or res is False) assert(res is True or res is False) res = a1.check(skill='Athletics', vantage='Normal', dc=5) assert(res is True or res is False) res = a1.check(skill='Athletics', vantage='Advantage', dc=15) assert(res is True or res is False) res = a1.check(skill='Athletics', vantage='Disadvantage', dc=10) assert(res is True or res is False)
def test_Foe_Default(): db = InvokePSQL() ctx = Ctx(app_username='******', logger_name="test_logger") a1 = Foe(db=db, ctx=ctx) assert(a1) assert(a1.get_name()) assert(a1.get_raw_ability_array()) assert(a1.get_ability_array()) assert(a1.level) assert(a1.get_alignment_str()) assert(a1.get_alignment_abbrev()) assert (a1.check_condition('blind') is False) assert (a1.check_condition('charmed') is False) assert (a1.check_condition('deafened') is False) assert (a1.check_condition('fatigued') is False) assert (a1.check_condition('frightened') is False) assert (a1.check_condition('grappled') is False) assert (a1.check_condition('incapacitated') is False) assert (a1.check_condition('invisible') is False) assert (a1.check_condition('paralyzed') is False) assert (a1.check_condition('petrified') is False) assert (a1.check_condition('poisoned') is False) assert (a1.check_condition('prone') is False) assert (a1.check_condition('stunned') is False) assert (a1.check_condition('unconscious') is False) assert(a1.alive is True) assert(a1.stabilized is True) assert(a1.exhaustion_level == 0) assert(a1.cur_movement > 10)
def test_getAlignment(): ctx = Ctx(app_username='******') db = InvokePSQL() a = CharacterRace(db=db, ctx=ctx) alignmentObj = a.get_alignment(db=db) assert(len(a.race) > 3) assert('abbreviation' in alignmentObj) assert('alignment' in alignmentObj)
def gen_party(character_id_str, party_composition_id, name, ability_array_str, level, gender_candidate): db = InvokePSQL() Party(db=db, character_id_str=character_id_str, party_composition_id=party_composition_id, name=name, ability_array_str=ability_array_str, level=level, gender_candidate=gender_candidate)
def gen_pc(race_candidate, class_candidate, ability_array_str, level, gender_candidate): print(f'Creating a {gender_candidate} level {level} {race_candidate} {class_candidate}' f' with abilities: {ability_array_str}') db = InvokePSQL() print("Debug info follows") a1 = PlayerCharacter(db=db, debug_ind=1, class_candidate=class_candidate, race_candidate=race_candidate, ability_array_str=ability_array_str, level=level, gender_candidate=gender_candidate) print("ClassEval info follows") for i in range(len(a1.get_class_eval())): for key, value in a1.get_class_eval()[i].items(): print(f"{i} -- {str(key).ljust(25)}: {value}")
def test_Race_Woodelf(): ctx = Ctx(app_username='******') db = InvokePSQL() a = CharacterRace(db=db, ctx=ctx, race_candidate='Wood elf') assert(a.race == 'Wood elf') assert(any([v != 0 for v in a.ability_bonuses])) alignmentObj = a.get_alignment(db=db) assert('abbreviation' in alignmentObj) assert('alignment' in alignmentObj) assert(a.get_skin_tone(db=db)) assert(a.get_hair_color(db=db)) assert(a.get_hair_type(db=db)) assert(a.get_eye_color(db=db)) assert(a.get_name(db=db, gender='U'))
def test_character_spell_list(): logger_name = 'character_test' ctx = Ctx(app_username='******', logger_name=logger_name) ctx.log_file_dir = os.path.expanduser('~/rpg/logs') db = InvokePSQL() a1 = PlayerCharacter(db=db, ctx=ctx, race_candidate='High elf', class_candidate='Sorcerer', ability_array_str='10,10,10,10,10,10') a1.set_name_str(group_str='Heroes', index_position=0) f1 = Foe(db=db, ctx=ctx, foe_candidate='Skeleton') f1.set_name_str(group_str='Opponents', index_position=0) assert a1 assert (a1.level == 1)
def test_class_fighter(): ctx = Ctx(app_username='******') db = InvokePSQL() a = FighterPCClass(db=db, ctx=ctx) assert (a.name == 'Fighter') assert (a.hit_die == 10) assert (a.ability_sort_array == [0, 2, 1, 5, 4, 3]) assert (a.source_material == 'SRD5') assert (a.archetype_label == 'Martial Archetype') assert (a.ranged_weapon == "Crossbow, light") assert (a.melee_weapon == "Glaive") assert (a.ranged_ammunition_type == "Bolt") assert (a.ranged_ammunition_amt == 20) assert (a.armor == "Chain mail") assert (a.shield is None) assert (a.background == "Soldier")
def test_class_druid(): ctx = Ctx(app_username='******') db = InvokePSQL() a = DruidPCClass(db=db, ctx=ctx) assert (a.name == 'Druid') assert (a.hit_die == 8) assert (a.ability_sort_array == [4, 2, 1, 3, 5, 0]) assert (a.source_material == 'SRD5') assert (a.archetype_label == 'Druid Circle') assert (a.ranged_weapon is None) assert (a.melee_weapon == "Club") assert (a.ranged_ammunition_type is None) assert (a.ranged_ammunition_amt == 0) assert (a.armor == "Leather") assert (a.shield == "Shield") assert (a.background == "Hermit")
def test_class_cleric(): ctx = Ctx(app_username='******') db = InvokePSQL() a = ClericPCClass(db=db, ctx=ctx) assert (a.name == 'Cleric') assert (a.hit_die == 8) assert (a.ability_sort_array == [4, 2, 0, 1, 5, 3]) assert (a.source_material == 'SRD5') assert (a.archetype_label == 'Divine Domain') assert (a.ranged_weapon == "Crossbow, light") assert (a.melee_weapon == "Warhammer") assert (a.ranged_ammunition_type == "Bolt") assert (a.ranged_ammunition_amt == 20) assert (a.armor == "Scale mail") assert (a.shield == "Shield") assert (a.background == "Acolyte")
def test_class_bard(): ctx = Ctx(app_username='******') db = InvokePSQL() a = BardPCClass(db=db, ctx=ctx) assert (a.name == 'Bard') assert (a.hit_die == 8) assert (a.ability_sort_array == [5, 1, 2, 0, 4, 3]) assert (a.source_material == 'SRD5') assert (a.archetype_label == 'Bard College') assert (a.ranged_weapon == "Dagger") assert (a.melee_weapon == "Rapier") assert (a.ranged_ammunition_type == "Dagger") assert (a.ranged_ammunition_amt == 1) assert (a.armor == "Leather") assert (a.shield is None) assert (a.background == "Entertainer")
def test_class_barbarian(): ctx = Ctx(app_username='******') db = InvokePSQL() a = BarbarianPCClass(db=db, ctx=ctx) assert (a.name == 'Barbarian') assert (a.hit_die == 12) assert (a.ability_sort_array == [0, 2, 1, 4, 5, 3]) assert (a.source_material == 'SRD5') assert (a.archetype_label == 'Primal Path') assert (a.ranged_weapon == "Javelin") assert (a.melee_weapon == "Greataxe") assert (a.ranged_ammunition_type == "Javelin") assert (a.ranged_ammunition_amt == 4) assert (a.armor is None) assert (a.shield is None) assert (a.background == "Outlander")
def test_class_wizard(): ctx = Ctx(app_username='******') db = InvokePSQL() a = WizardPCClass(db=db, ctx=ctx) assert (a.name == 'Wizard') assert (a.hit_die == 6) assert (a.ability_sort_array == [3, 1, 2, 4, 0, 5]) assert (a.source_material == 'SRD5') assert (a.archetype_label == 'Arcane Tradition') assert (a.ranged_weapon is None) assert (a.melee_weapon == "Dagger") assert (a.ranged_ammunition_type is None) assert (a.ranged_ammunition_amt == 0) assert (a.armor is None) assert (a.shield is None) assert (a.background == "Sage")
def test_class_paladin(): ctx = Ctx(app_username='******') db = InvokePSQL() a = PaladinPCClass(db=db, ctx=ctx) assert (a.name == 'Paladin') assert (a.hit_die == 10) assert (a.ability_sort_array == [0, 5, 2, 4, 1, 3]) assert (a.source_material == 'SRD5') assert (a.archetype_label == 'Sacred Oath') assert (a.ranged_weapon == "Javelin") assert (a.melee_weapon == "Greataxe") assert (a.ranged_ammunition_type == "Javelin") assert (a.ranged_ammunition_amt == 5) assert (a.armor == "Chain mail") assert (a.shield is None) assert (a.background == "Noble")
def test_class_monk(): ctx = Ctx(app_username='******') db = InvokePSQL() a = MonkPCClass(db=db, ctx=ctx) assert (a.name == 'Monk') assert (a.hit_die == 8) assert (a.ability_sort_array == [1, 4, 2, 0, 3, 5]) assert (a.source_material == 'SRD5') assert (a.archetype_label == 'Monastic Tradition') assert (a.ranged_weapon == "Dart") assert (a.melee_weapon == "Shortsword") assert (a.ranged_ammunition_type == "Dart") assert (a.ranged_ammunition_amt == 10) assert (a.armor is None) assert (a.shield is None) assert (a.background == "Hermit")
def test_class_warlock(): ctx = Ctx(app_username='******') db = InvokePSQL() a = WarlockPCClass(db=db, ctx=ctx) assert (a.name == 'Warlock') assert (a.hit_die == 8) assert (a.ability_sort_array == [5, 2, 1, 4, 3, 0]) assert (a.source_material == 'SRD5') assert (a.archetype_label == 'Otherworldly Patron') assert (a.ranged_weapon == "Crossbow, light") assert (a.melee_weapon == "Dagger") assert (a.melee_weapon_offhand == "Dagger") assert (a.ranged_ammunition_type == "Bolt") assert (a.ranged_ammunition_amt == 20) assert (a.armor == "Leather") assert (a.shield is None) assert (a.background == "Charlatan")
def test_class_sorcerer(): ctx = Ctx(app_username='******') db = InvokePSQL() a = SorcererPCClass(db=db, ctx=ctx) assert (a.name == 'Sorcerer') assert (a.hit_die == 6) assert (a.ability_sort_array == [5, 2, 1, 4, 3, 0]) assert (a.source_material == 'SRD5') assert (a.archetype_label == 'Sorcerous Origin') assert (a.ranged_weapon == "Crossbow, light") assert (a.melee_weapon == "Dagger") assert (a.melee_weapon_offhand == "Dagger") assert (a.ranged_ammunition_type == "Bolt") assert (a.ranged_ammunition_amt == 20) assert (a.armor is None) assert (a.shield is None) assert (a.background == "Hermit")