예제 #1
0
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'
예제 #2
0
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()
예제 #3
0
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'
예제 #4
0
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()
예제 #5
0
    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'
예제 #6
0
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)
예제 #7
0
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()