Skip to content

Commit 3ec4c90

Browse files
author
Mohab Hassan
committed
add tests for fnewdir, fremovedir, chartoint, teamswitchdelay
bindweap is manually tested for now, seems to work properly
1 parent 1ba9efe commit 3ec4c90

File tree

9 files changed

+81
-3
lines changed

9 files changed

+81
-3
lines changed

tests/bot_manager.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -181,12 +181,15 @@ def new_muliple_instances(self, n, should_connect=True):
181181

182182
return insts
183183

184+
def join_team(self, team=b'axis'):
185+
assert self.send_cmd_await_output(b'join_team ' + team, b'mohpc_test' + str(self.instance_id).encode() + b' has joined the ' + team.capitalize())
186+
self.send_command(b'primarydmweapon rifle')
187+
184188
def spawn(self, team=b'axis'):
185189
print('BotManager: spawn: team:', team.decode(), 'instance_id:', self.instance_id)
186190
self.send_command(b'set dm_playermodel american_army')
187191
self.send_command(b'set dm_playergermanmodel german_wehrmacht_soldier')
188192
assert self.instance_id != -1
189-
assert self.send_cmd_await_output(b'join_team ' + team, b'mohpc_test' + str(self.instance_id).encode() + b' has joined the ' + team.capitalize())
190-
self.send_command(b'primarydmweapon rifle')
193+
self.join_team(team)
191194
time.sleep(1) #for spawn
192195
print('BotManager: spawned:', team.decode())

tests/file_manager.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,4 +60,13 @@ def unload(self):
6060
elif os.path.isdir(fpath):
6161
shutil.rmtree(fpath, ignore_errors=True)
6262

63-
print('unloaded test files')
63+
print('unloaded test files')
64+
def delete(self, path, is_main=False):
65+
if is_main:
66+
fpath = self.game_path / path
67+
else:
68+
fpath = self.main_path / path
69+
if os.path.isfile(fpath):
70+
os.remove(fpath)
71+
elif os.path.isdir(fpath):
72+
shutil.rmtree(fpath, ignore_errors=True)

tests/testfiles/scriptfilesystem/mainfiles/tests/scriptfilesystem.scr

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@ main:
3535
waitthread test_freadpak
3636
waitthread test_flist
3737

38+
waitthread test_fnewdir
39+
waitthread test_fremovedir
40+
3841
setcvar test_filesystem_score (level.filesystem_testcases_passed + "/" + level.filesystem_testcases_total)
3942
setcvar test_filesystem_failed level.filesystem_failed_testscases
4043
setcvar test_filesystem_status finished
@@ -229,4 +232,23 @@ test_flist:
229232
waitthread validate_test (local.ret[2]) "test_folder/" "(flist test25)"
230233

231234

235+
end
236+
237+
test_fnewdir:
238+
local.ret = fnewdir "test_fnewdir"
239+
waitthread validate_test (local.ret==0) 1 "(fnewdir test1)"
240+
local.ret = fnewdir "test_fnewdir2/test_fnewdir" // non-existent path
241+
waitthread validate_test (local.ret==0) 0 "(fnewdir test2)"
242+
local.ret = fnewdir "test_fnewdir3" // already exists
243+
waitthread validate_test (local.ret==0) 1 "(fnewdir test3)"
244+
end
245+
246+
247+
test_fremovedir:
248+
local.ret = fremovedir "test_fremovedir" // empty
249+
waitthread validate_test (local.ret==0) 1 "(fremovedir test1)"
250+
local.ret = fremovedir "test_fremovedir2" // non-empty
251+
waitthread validate_test (local.ret==0) 0 "(fremovedir test2)"
252+
local.ret = fremovedir "test_fremovedir3" //non-existent
253+
waitthread validate_test (local.ret==0) 1 "(fremovedir test3)"
232254
end

tests/testfiles/scriptfilesystem/test_fremovedir2/test.txt

Whitespace-only changes.

tests/testfiles/scriptmiscall/mainfiles/tests/misc.scr

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@ main:
2020
local.t = "ttt"
2121
waitthread validate_test (typeof local.t) "const string" "(typeof local.t=ttt)"
2222

23+
waitthread validate_test (chartoint "a") 97 "(chartoint a)"
24+
waitthread validate_test (chartoint "A") 65 "(chartoint A)"
25+
waitthread validate_test (chartoint "#") 35 "(chartoint #)"
26+
2327
waitthread validate_test (getproperty "nightfall_test") -3 "(getproperty nightfall_test)"
2428
waitthread validate_test (setproperty "nightfall_test" "nf_t_1") 0 "(setproperty nightfall_test nf_t_1)"
2529
waitthread validate_test (getproperty "nightfall_test") "nf_t_1" "(getproperty nightfall_test)"
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
main:
2+
exec tests/teamswitchdelay.scr
3+
end
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
main:
2+
teamswitchdelay 16
3+
wait 1
4+
setcvar test_scriptteamswitchdelay_stage 1
5+
6+
while(!$player) waitframe;
7+
while($player.dmteam != "axis") waitframe;
8+
local.axistime = level.time
9+
while($player.dmteam == "axis") waitframe;
10+
local.axistime = level.time - local.axistime
11+
println "axistime " local.axistime
12+
teamswitchdelay 60
13+
14+
local.alliestime = level.time
15+
while($player.dmteam == "allies") waitframe;
16+
local.alliestime = level.time - local.alliestime
17+
println "alliestime " local.axistime
18+
19+
end

tests/tests/test_scriptfilesystem.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,5 @@ def test_scriptfilesystem(self, game_manager, file_manager, rcon_manager):
2424
failed = rcon_manager.get_cvar_value(b'test_filesystem_failed')
2525
failed = failed.replace('\n','\\n')
2626
assert passed == total, f'Score is {score}, failed tests are: {failed}'
27+
file_manager.delete('test_fnewdir')
2728

tests/tests/test_scriptmisc.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,23 @@ def test_scriptgettimezone(self, game_manager, file_manager, rcon_manager):
6464
tz = -time.timezone//3600
6565
assert int(res) == tz
6666

67+
#@pytest.mark.supported_game_vers('1.11')
68+
@pytest.mark.timeout(240)
69+
def test_scriptteamswitchdelay(self, game_manager, file_manager, rcon_manager, bot_manager):
70+
time.sleep(30) #team switch delays are ignored for the first 30 seconds
71+
bot_manager.spawn(b'axis')
72+
time.sleep(1)
73+
bot_manager.send_cmd_await_output(b'join_team allies', b'Can not change teams again for another')
74+
time.sleep(16)
75+
bot_manager.join_team(b'allies')
76+
77+
time.sleep(1)
78+
79+
#bot_manager.join_team(b'allies')
80+
time.sleep(30)
81+
bot_manager.send_cmd_await_output(b'join_team axis', b'Can not change teams again for another')
82+
time.sleep(30)
83+
bot_manager.join_team(b'axis')
6784

6885

6986
def test_scriptmiscall(self, game_manager, file_manager, rcon_manager, bot_manager):

0 commit comments

Comments
 (0)