when tests are modifying important global state, they should reset it in teardown.

TODO: actually, they probably should not modify state in the first place.
This commit is contained in:
Enno Rehling 2015-01-03 16:11:33 +01:00
parent 4ed469c126
commit 14b1a164ed
2 changed files with 45 additions and 9 deletions

View File

@ -5,10 +5,21 @@ module('eressea.tests.stealth', package.seeall, lunit.testcase)
local f local f
local u local u
local settings
local function set_rule(key, value)
if value==nil then
eressea.settings.set(key, settings[key])
else
settings[key] = settings[key] or eressea.settings.get(key)
eressea.settings.set(key, value)
end
end
function setup() function setup()
eressea.game.reset() eressea.game.reset()
eressea.settings.set('rules.economy.food', '4') set_rule('rules.economy.food', '4')
eressea.settings.set('rules.magic.playerschools', '') set_rule('rules.magic.playerschools', '')
local r = region.create(0,0, "plain") local r = region.create(0,0, "plain")
f = faction.create("stealthy@eressea.de", "human", "de") f = faction.create("stealthy@eressea.de", "human", "de")
@ -16,11 +27,17 @@ function setup()
f = faction.create("stealth@eressea.de", "human", "de") f = faction.create("stealth@eressea.de", "human", "de")
end end
function teardown()
set_rule('rules.economy.food')
set_rule('rules.magic.playerschools')
set_rule('rules.stealth.faction')
end
function test_stealth_faction_on() function test_stealth_faction_on()
u:clear_orders() u:clear_orders()
u:add_order("TARNEN PARTEI") u:add_order("TARNEN PARTEI")
eressea.settings.set("rules.stealth.faction", 1) set_rule("rules.stealth.faction", 1)
process_orders() process_orders()
assert_not_match("Partei", report.report_unit(u, f)) assert_not_match("Partei", report.report_unit(u, f))
assert_match("anonym", report.report_unit(u, f)) assert_match("anonym", report.report_unit(u, f))
@ -30,7 +47,7 @@ function test_stealth_faction_off()
u:clear_orders() u:clear_orders()
u:add_order("TARNEN PARTEI") u:add_order("TARNEN PARTEI")
eressea.settings.set("rules.stealth.faction", 0) set_rule("rules.stealth.faction", 0)
process_orders() process_orders()
assert_match("Partei", report.report_unit(u, f)) assert_match("Partei", report.report_unit(u, f))
assert_not_match("anonym", report.report_unit(u, f)) assert_not_match("anonym", report.report_unit(u, f))

View File

@ -2,9 +2,31 @@ require "lunit"
module("tests.e3.e3features", package.seeall, lunit.testcase) module("tests.e3.e3features", package.seeall, lunit.testcase)
local settings
local function set_rule(key, value)
if value==nil then
eressea.settings.set(key, settings[key])
else
settings[key] = settings[key] or eressea.settings.get(key)
eressea.settings.set(key, value)
end
end
function setup() function setup()
eressea.game.reset() eressea.game.reset()
eressea.settings.set("rules.economy.food", "4") settings = {}
set_rule("rules.move.owner_leave", "1")
set_rule("rules.economy.food", "4")
set_rule("rules.ship.drifting", "0")
set_rule("rules.ship.storms", "0")
end
function teardown()
set_rule("rules.move.owner_leave")
set_rule("rules.economy.food")
set_rule("rules.ship.drifting")
set_rule("rules.ship.storms")
end end
function disable_test_bug_1738_build_castle_e3() function disable_test_bug_1738_build_castle_e3()
@ -235,8 +257,6 @@ function test_fishing()
end end
function test_ship_capacity() function test_ship_capacity()
eressea.settings.set("rules.ship.drifting", "0")
eressea.settings.set("rules.ship.storms", "0")
local r = region.create(0,0, "ocean") local r = region.create(0,0, "ocean")
region.create(1,0, "ocean") region.create(1,0, "ocean")
local r2 = region.create(2,0, "ocean") local r2 = region.create(2,0, "ocean")
@ -342,7 +362,6 @@ function test_taxes()
end end
function test_region_owner_cannot_leave_castle() function test_region_owner_cannot_leave_castle()
eressea.settings.set("rules.move.owner_leave", "1")
local r = region.create(0, 0, "plain") local r = region.create(0, 0, "plain")
local f = faction.create("noreply@eressea.de", "human", "de") local f = faction.create("noreply@eressea.de", "human", "de")
f.id = 42 f.id = 42
@ -703,7 +722,7 @@ end
function test_building_owner_can_enter_ship() function test_building_owner_can_enter_ship()
local r1 = region.create(1, 2, "plain") local r1 = region.create(1, 2, "plain")
local f1 = faction.create("noreply@tteessttiinngg.de", "human", "de") local f1 = faction.create("noreply@eressea.de", "human", "de")
local b1 = building.create(r1, "castle") local b1 = building.create(r1, "castle")
b1.size = 10 b1.size = 10
local s1 = ship.create(r1, "cutter") local s1 = ship.create(r1, "cutter")