def test_serialize_gems(): jack = Character('jack') jack.gems = [ GemSlotAssociation('wrist', Gem(168641, 5, 'Quick Sand Spinel', 'inv_misc_gem_x4_uncommon_perfectcut_yellow', '+50 Haste')), GemSlotAssociation('waist', Gem(168645, 5, 'Masterful Name', 'inv_misc_gem_x5_uncommon_perfectcut_purple', '+50 Mastery')) ] _serialize_gems(jack) assert jack.gem_ids == '168641|168645' assert jack.gem_qualities == '5|5' assert jack.gem_names == 'Quick Sand Spinel|Masterful Name' assert jack.gem_icons == 'inv_misc_gem_x4_uncommon_perfectcut_yellow|inv_misc_gem_x5_uncommon_perfectcut_purple' assert jack.gem_stats == '+50 Haste|+50 Mastery' assert jack.gem_slots == 'wrist|waist'
def test_character_can_have_multiple_gem_in_different_slots(db_session): clegg = Character('clegg') gem = Gem(168641, 5, 'Quick Sand Spinel', 'inv_misc_gem_x4_uncommon_perfectcut_yellow', '+50 Haste') gemslotWrist = GemSlotAssociation('wrist', gem) gemSlotWaist = GemSlotAssociation('waist', gem) clegg.gems.append(gemslotWrist) clegg.gems.append(gemSlotWaist) db_session.add(clegg) db_session.flush()
def test_add_character_gems(db_session): clegg = Character('clegg') gemslot = GemSlotAssociation( 'wrist', Gem(168641, 5, 'Quick Sand Spinel', 'inv_misc_gem_x4_uncommon_perfectcut_yellow', '+50 Haste')) clegg.gems.append(gemslot) db_session.add(clegg) db_session.flush() assert clegg.gems[0].slot == 'wrist' assert clegg.gems[0].gem.name == 'Quick Sand Spinel'
def test_cascade_gem_slot_association_delete(db_session): clegg = Character('clegg') gemslot = GemSlotAssociation( 'wrist', Gem(168641, 5, 'Quick Sand Spinel', 'inv_misc_gem_x4_uncommon_perfectcut_yellow', '+50 Haste')) clegg.gems.append(gemslot) db_session.add(clegg) db_session.flush() clegg.gems = [] assert None == db_session.query(GemSlotAssociation).first()
def test_create_gems_does_not_delete(self, db_session): g = Gem(14330, 1, 'Fake Stone', 'inv_fake', '+20 BS') db_session.add(g) db_session.commit() db_session.close() self.audit._create_gems(db_session) result = db_session.query(Gem).filter_by(id=14330).first() assert result != None assert result.quality == 1 assert result.name == 'Fake Stone' assert result.icon == 'inv_fake' assert result.stat == '+20 BS'
def db(): engine = create_engine('sqlite://') Base.metadata.create_all(engine) session = sessionmaker(engine)() session.add_all([ Gem(k, v['quality'], v['name'], v['icon'], v['stat']) for k, v in gem_lookup.items() ]) session.commit() session.close() yield engine Base.metadata.drop_all(engine)
def test_add_gem(db_session): quick_sand = Gem(168641, 5, 'Quick Sand Spinel', 'inv_misc_gem_x4_uncommon_perfectcut_yellow', '+50 Haste') db_session.add(quick_sand) assert quick_sand == db_session.query(Gem).filter_by(id=168641).first()