3
3
import csv
4
4
import logging
5
5
from multiprocessing import Queue , cpu_count
6
- import tempfile
7
6
import unittest
8
7
import warnings
9
8
@@ -63,6 +62,8 @@ def setUpClass(cls):
63
62
[200 , 200 , 1 , 200 , 200 ],
64
63
[200 , 200 , 1 , 200 , 200 ]]
65
64
65
+ cls .filename = "test_results.csv"
66
+
66
67
def test_init (self ):
67
68
tournament = axelrod .Tournament (
68
69
name = self .test_name ,
@@ -100,9 +101,9 @@ def test_warning(self):
100
101
with warnings .catch_warnings (record = True ) as w :
101
102
# Check that no warning is raised if no results set is built and a
102
103
# is filename given
103
- tmp_file = tempfile . NamedTemporaryFile ( mode = 'w' , delete = False )
104
- results = tournament .play (build_results = False ,
105
- filename = tmp_file . name , progress_bar = False )
104
+
105
+ tournament .play (build_results = False ,
106
+ filename = self . filename , progress_bar = False )
106
107
self .assertEqual (len (w ), 0 )
107
108
108
109
def test_serial_play (self ):
@@ -156,11 +157,10 @@ def test_no_progress_bar_play(self):
156
157
self .assertRaises (AttributeError , call_progress_bar )
157
158
158
159
# Test without build results
159
- tmp_file = tempfile .NamedTemporaryFile (mode = 'w' , delete = False )
160
160
results = tournament .play (progress_bar = False , build_results = False ,
161
- filename = tmp_file . name )
161
+ filename = self . filename )
162
162
self .assertIsNone (results )
163
- results = axelrod .ResultSetFromFile (tmp_file . name )
163
+ results = axelrod .ResultSetFromFile (self . filename )
164
164
self .assertIsInstance (results , axelrod .ResultSet )
165
165
self .assertRaises (AttributeError , call_progress_bar )
166
166
@@ -182,11 +182,10 @@ def test_progress_bar_play(self):
182
182
self .assertEqual (tournament .progress_bar .total , 15 )
183
183
184
184
# Test without build results
185
- tmp_file = tempfile .NamedTemporaryFile (mode = 'w' , delete = False )
186
185
results = tournament .play (progress_bar = True , build_results = False ,
187
- filename = tmp_file . name )
186
+ filename = self . filename )
188
187
self .assertIsNone (results )
189
- results = axelrod .ResultSetFromFile (tmp_file . name )
188
+ results = axelrod .ResultSetFromFile (self . filename )
190
189
self .assertIsInstance (results , axelrod .ResultSet )
191
190
self .assertEqual (tournament .progress_bar .total , 15 )
192
191
@@ -391,13 +390,12 @@ def test_no_build_result_set(self):
391
390
turns = 200 ,
392
391
repetitions = self .test_repetitions )
393
392
394
- tmp_file = tempfile .NamedTemporaryFile (mode = 'w' , delete = False )
395
- results = tournament .play (build_results = False , filename = tmp_file .name ,
393
+ results = tournament .play (build_results = False , filename = self .filename ,
396
394
progress_bar = False )
397
395
self .assertIsNone (results )
398
396
399
397
# Checking that results were written properly
400
- results = axelrod .ResultSetFromFile (tmp_file . name )
398
+ results = axelrod .ResultSetFromFile (self . filename )
401
399
self .assertIsInstance (results , axelrod .ResultSet )
402
400
403
401
@given (turns = integers (min_value = 1 , max_value = 200 ))
@@ -442,7 +440,6 @@ def make_chunk_generator():
442
440
self .assertEqual ((len (list (chunk_generator ))), 0 )
443
441
444
442
def test_write_interactions (self ):
445
- tmp_file = tempfile .NamedTemporaryFile (mode = 'w' , delete = False )
446
443
tournament = axelrod .Tournament (
447
444
name = self .test_name ,
448
445
players = self .players ,
@@ -453,7 +450,7 @@ def test_write_interactions(self):
453
450
name = '_write_interactions' )
454
451
tournament ._build_result_set = MagicMock (
455
452
name = '_build_result_set' ) # Mocking this as it is called by play
456
- self .assertTrue (tournament .play (filename = tmp_file . name ,
453
+ self .assertTrue (tournament .play (filename = self . filename ,
457
454
progress_bar = False ))
458
455
tournament .outputfile .close () # This is normally closed by `build_result_set`
459
456
@@ -462,16 +459,14 @@ def test_write_interactions(self):
462
459
self .assertEqual (len (calls ), 15 )
463
460
464
461
def test_write_to_csv (self ):
465
- tmp_file = tempfile .NamedTemporaryFile (mode = 'w' , delete = False )
466
462
tournament = axelrod .Tournament (
467
463
name = self .test_name ,
468
464
players = self .players ,
469
465
game = self .game ,
470
466
turns = 2 ,
471
467
repetitions = 2 )
472
- tournament .play (filename = tmp_file .name , progress_bar = False )
473
- tmp_file .close ()
474
- with open (tmp_file .name , 'r' ) as f :
468
+ tournament .play (filename = self .filename , progress_bar = False )
469
+ with open (self .filename , 'r' ) as f :
475
470
written_data = [[int (r [0 ]), int (r [1 ])] + r [2 :] for r in csv .reader (f )]
476
471
expected_data = [[0 , 1 , 'Cooperator' , 'Tit For Tat' , 'CC' , 'CC' ],
477
472
[0 , 1 , 'Cooperator' , 'Tit For Tat' , 'CC' , 'CC' ],
@@ -669,7 +664,7 @@ def test_particular_tournament(self):
669
664
# Check that this tournament runs with noise
670
665
tournament = axelrod .SpatialTournament (players , edges = edges , noise = .5 )
671
666
results = tournament .play (progress_bar = False )
672
- self .assertIsInstance (results , axelrod .ResultSetFromFile )
667
+ self .assertIsInstance (results , axelrod .ResultSet )
673
668
674
669
675
670
class TestProbEndingSpatialTournament (unittest .TestCase ):
0 commit comments