Tests for eos\saveddata\fit.
This commit is contained in:
@@ -26,3 +26,41 @@ def KeepstarFit(DB, Gamedata, Saveddata):
|
||||
fit = Saveddata['Fit'](ship, "Keepstar Fit")
|
||||
|
||||
return fit
|
||||
|
||||
|
||||
# noinspection PyShadowingNames
|
||||
@pytest.fixture
|
||||
def CurseFit(DB, Gamedata, Saveddata):
|
||||
print("Creating Curse - With Neuts")
|
||||
item = DB['gamedata_session'].query(Gamedata['Item']).filter(Gamedata['Item'].name == "Curse").first()
|
||||
ship = Saveddata['Ship'](item)
|
||||
# setup fit
|
||||
fit = Saveddata['Fit'](ship, "Curse - With Neuts")
|
||||
|
||||
mod = Saveddata['Module'](DB['db'].getItem("Medium Energy Neutralizer II"))
|
||||
mod.state = Saveddata['State'].ONLINE
|
||||
|
||||
# Add 5 neuts
|
||||
for _ in xrange(5):
|
||||
fit.modules.append(mod)
|
||||
|
||||
return fit
|
||||
|
||||
|
||||
# noinspection PyShadowingNames
|
||||
@pytest.fixture
|
||||
def HeronFit(DB, Gamedata, Saveddata):
|
||||
print("Creating Heron - RemoteSebo")
|
||||
item = DB['gamedata_session'].query(Gamedata['Item']).filter(Gamedata['Item'].name == "Heron").first()
|
||||
ship = Saveddata['Ship'](item)
|
||||
# setup fit
|
||||
fit = Saveddata['Fit'](ship, "Heron - RemoteSebo")
|
||||
|
||||
mod = Saveddata['Module'](DB['db'].getItem("Remote Sensor Booster II"))
|
||||
mod.state = Saveddata['State'].ONLINE
|
||||
|
||||
# Add 5 neuts
|
||||
for _ in xrange(4):
|
||||
fit.modules.append(mod)
|
||||
|
||||
return fit
|
||||
125
tests/test_modules/test_eos/test_saveddata/test_fit_2.py
Normal file
125
tests/test_modules/test_eos/test_saveddata/test_fit_2.py
Normal file
@@ -0,0 +1,125 @@
|
||||
# TODO: Drop the `_2` from the file name once one of our fit files are renamed
|
||||
|
||||
# Add root folder to python paths
|
||||
# This must be done on every test in order to pass in Travis
|
||||
import os
|
||||
import sys
|
||||
from copy import deepcopy
|
||||
|
||||
script_dir = os.path.dirname(os.path.abspath(__file__))
|
||||
sys.path.append(os.path.realpath(os.path.join(script_dir, '..', '..', '..', '..')))
|
||||
|
||||
# noinspection PyPackageRequirements
|
||||
from _development.helpers import DBInMemory as DB, Gamedata, Saveddata
|
||||
from _development.helpers_fits import RifterFit, KeepstarFit, HeronFit
|
||||
|
||||
|
||||
def test_calculateModifiedAttributes(DB, RifterFit, KeepstarFit):
|
||||
rifter_modifier_dicts = {
|
||||
'_ModifiedAttributeDict__affectedBy' : 26,
|
||||
'_ModifiedAttributeDict__forced' : 0,
|
||||
'_ModifiedAttributeDict__intermediary' : 0,
|
||||
'_ModifiedAttributeDict__modified' : 26,
|
||||
'_ModifiedAttributeDict__multipliers' : 22,
|
||||
'_ModifiedAttributeDict__overrides' : 0,
|
||||
'_ModifiedAttributeDict__penalizedMultipliers': 0,
|
||||
'_ModifiedAttributeDict__postIncreases' : 0,
|
||||
'_ModifiedAttributeDict__preAssigns' : 0,
|
||||
'_ModifiedAttributeDict__preIncreases' : 4,
|
||||
}
|
||||
|
||||
# Test before calculating attributes
|
||||
for test_dict in rifter_modifier_dicts:
|
||||
assert len(getattr(RifterFit.ship.itemModifiedAttributes, test_dict)) == 0
|
||||
|
||||
RifterFit.calculateFitAttributes()
|
||||
|
||||
for test_dict in rifter_modifier_dicts:
|
||||
assert len(getattr(RifterFit.ship.itemModifiedAttributes, test_dict)) == rifter_modifier_dicts[test_dict]
|
||||
|
||||
# Keepstars don't have any basic skills that would change their attributes
|
||||
keepstar_modifier_dicts = {
|
||||
'_ModifiedAttributeDict__affectedBy' : 0,
|
||||
'_ModifiedAttributeDict__forced' : 0,
|
||||
'_ModifiedAttributeDict__intermediary' : 0,
|
||||
'_ModifiedAttributeDict__modified' : 0,
|
||||
'_ModifiedAttributeDict__multipliers' : 0,
|
||||
'_ModifiedAttributeDict__overrides' : 0,
|
||||
'_ModifiedAttributeDict__penalizedMultipliers': 0,
|
||||
'_ModifiedAttributeDict__postIncreases' : 0,
|
||||
'_ModifiedAttributeDict__preAssigns' : 0,
|
||||
'_ModifiedAttributeDict__preIncreases' : 0,
|
||||
}
|
||||
|
||||
# Test before calculating attributes
|
||||
for test_dict in keepstar_modifier_dicts:
|
||||
assert len(getattr(KeepstarFit.ship.itemModifiedAttributes, test_dict)) == 0
|
||||
|
||||
KeepstarFit.calculateFitAttributes()
|
||||
|
||||
for test_dict in keepstar_modifier_dicts:
|
||||
assert len(getattr(KeepstarFit.ship.itemModifiedAttributes, test_dict)) == keepstar_modifier_dicts[test_dict]
|
||||
|
||||
def test_calculateModifiedAttributes_withBooster(DB, RifterFit, HeronFit):
|
||||
# TODO: This test is not currently functional or meaningful as projections are not happening correctly.
|
||||
# This is true for all tested branches (master, dev, etc)
|
||||
rifter_modifier_dicts = {
|
||||
'_ModifiedAttributeDict__affectedBy' : 26,
|
||||
'_ModifiedAttributeDict__forced' : 0,
|
||||
'_ModifiedAttributeDict__intermediary' : 0,
|
||||
'_ModifiedAttributeDict__modified' : 26,
|
||||
'_ModifiedAttributeDict__multipliers' : 22,
|
||||
'_ModifiedAttributeDict__overrides' : 0,
|
||||
'_ModifiedAttributeDict__penalizedMultipliers': 0,
|
||||
'_ModifiedAttributeDict__postIncreases' : 0,
|
||||
'_ModifiedAttributeDict__preAssigns' : 0,
|
||||
'_ModifiedAttributeDict__preIncreases' : 4,
|
||||
}
|
||||
|
||||
# Test before calculating attributes
|
||||
for test_dict in rifter_modifier_dicts:
|
||||
assert len(getattr(RifterFit.ship.itemModifiedAttributes, test_dict)) == 0
|
||||
|
||||
# Get base stats
|
||||
max_target_range_1 = RifterFit.ship.getModifiedItemAttr('maxTargetRange')
|
||||
scan_resolution_1 = RifterFit.ship.getModifiedItemAttr('scanResolution')
|
||||
|
||||
RifterFit.clear()
|
||||
RifterFit.calculateFitAttributes()
|
||||
|
||||
# Get self calculated stats
|
||||
max_target_range_2 = RifterFit.ship.getModifiedItemAttr('maxTargetRange')
|
||||
scan_resolution_2 = RifterFit.ship.getModifiedItemAttr('scanResolution')
|
||||
|
||||
RifterFit.clear()
|
||||
# Project Heron fit onto Rifter
|
||||
RifterFit._Fit__projectedFits[HeronFit.ID] = HeronFit
|
||||
|
||||
DB['saveddata_session'].commit()
|
||||
#DB['saveddata_session'].flush()
|
||||
#DB['saveddata_session'].refresh(HeronFit)
|
||||
|
||||
RifterFit.calculateFitAttributes()
|
||||
|
||||
# Get stats with projections
|
||||
max_target_range_3 = RifterFit.ship.getModifiedItemAttr('maxTargetRange')
|
||||
scan_resolution_3 = RifterFit.ship.getModifiedItemAttr('scanResolution')
|
||||
|
||||
RifterFit.clear()
|
||||
RifterFit.calculateFitAttributes(withBoosters=True)
|
||||
|
||||
# Get stats with projections
|
||||
max_target_range_4 = RifterFit.ship.getModifiedItemAttr('maxTargetRange')
|
||||
scan_resolution_4 = RifterFit.ship.getModifiedItemAttr('scanResolution')
|
||||
|
||||
RifterFit.clear()
|
||||
HeronFit.calculateFitAttributes(targetFit=RifterFit, withBoosters=True)
|
||||
RifterFit.calculateFitAttributes(withBoosters=True)
|
||||
|
||||
# Get stats with projections
|
||||
max_target_range_5 = RifterFit.ship.getModifiedItemAttr('maxTargetRange')
|
||||
scan_resolution_5 = RifterFit.ship.getModifiedItemAttr('scanResolution')
|
||||
|
||||
for test_dict in rifter_modifier_dicts:
|
||||
assert len(getattr(RifterFit.ship.itemModifiedAttributes, test_dict)) == rifter_modifier_dicts[test_dict]
|
||||
|
||||
Reference in New Issue
Block a user