From 96ad68794489edd360b3e9374698d9b64e1fa37c Mon Sep 17 00:00:00 2001 From: Ebag333 Date: Tue, 21 Mar 2017 23:49:12 -0700 Subject: [PATCH] Baby's first (real) Eos test. (cherry picked from commit df51f9f) --- tests/test_smoketests/helpers.py | 53 ++++++++++++++++++++++++++++ tests/test_smoketests/test_rifter.py | 49 +++++++++++++++++++++++++ 2 files changed, 102 insertions(+) create mode 100644 tests/test_smoketests/helpers.py create mode 100644 tests/test_smoketests/test_rifter.py diff --git a/tests/test_smoketests/helpers.py b/tests/test_smoketests/helpers.py new file mode 100644 index 000000000..369e64ddb --- /dev/null +++ b/tests/test_smoketests/helpers.py @@ -0,0 +1,53 @@ +# noinspection PyPackageRequirements +import pytest + + +# noinspection PyUnresolvedReferences,PyUnusedLocal +@pytest.fixture +def DBInMemory(): + import eos.config + from os.path import realpath, join, dirname, abspath + + debug = False + gamedataCache = True + saveddataCache = True + gamedata_version = "" + eos.config.gamedata_connectionstring = 'sqlite:///' + realpath(join(dirname(abspath(unicode(__file__))), "..", "..", "eve.db")) + # saveddata_connectionstring = 'sqlite:///' + unicode(realpath(join(dirname(abspath(__file__)), "..", "saveddata", "saveddata.db")), sys.getfilesystemencoding()) + eos.config.saveddata_connectionstring = 'sqlite:///:memory:' + + import eos + import eos.db + + helper = { + 'config': eos.config, + 'db' : eos.db, + } + return helper + + +@pytest.fixture +def Gamedata(): + from eos.gamedata import Item + + helper = { + 'Item': Item, + } + return helper + + +@pytest.fixture +def Saveddata(): + from eos.saveddata.ship import Ship + from eos.saveddata.fit import Fit + from eos.saveddata.character import Character + from eos.saveddata.module import Module, State + + helper = { + 'Ship' : Ship, + 'Fit' : Fit, + 'Character': Character, + 'Module' : Module, + 'State' : State, + } + return helper diff --git a/tests/test_smoketests/test_rifter.py b/tests/test_smoketests/test_rifter.py new file mode 100644 index 000000000..f4dee72b1 --- /dev/null +++ b/tests/test_smoketests/test_rifter.py @@ -0,0 +1,49 @@ +# noinspection PyPackageRequirements +import pytest + +# noinspection PyUnresolvedReferences +from helpers import DBInMemory as DB +# noinspection PyUnresolvedReferences +from helpers import Gamedata +# noinspection PyUnresolvedReferences +from helpers import Saveddata + + +# noinspection PyShadowingNames +@pytest.fixture +def Rifter(DB, Gamedata, Saveddata): + item = DB['db'].gamedata_session.query(Gamedata['Item']).filter(Gamedata['Item'].name == "Rifter").first() + ship = Saveddata['Ship'](item) + # setup fit + fit = Saveddata['Fit'](ship, "My Rifter Fit") + + return fit + + +# noinspection PyShadowingNames +def test_rifter_cpu_output(DB, Saveddata, Rifter): + char5 = Saveddata['Character'].getAll5() + char0 = Saveddata['Character'].getAll0() + + Rifter.character = char0 + mod = Saveddata['Module'](DB['db'].getItem("Co-Processor II")) + mod.state = Saveddata['State'].OFFLINE + Rifter.modules.append(mod) + + assert Rifter.ship.getModifiedItemAttr("cpuOutput") == 130 + + Rifter.calculateModifiedAttributes() + assert Rifter.ship.getModifiedItemAttr("cpuOutput") == 130 + + mod.state = Saveddata['State'].ONLINE + Rifter.clear() + Rifter.calculateModifiedAttributes() + assert Rifter.ship.getModifiedItemAttr("cpuOutput") == 143 + + Rifter.character = char5 + Rifter.clear() + Rifter.calculateModifiedAttributes() + assert Rifter.ship.getModifiedItemAttr("cpuOutput") == 178.75 + + # No reason to save it, but as an example how + # DB['db'].save(Rifter) # tada, it's now in database and can be accessed in pyfa