1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
# ==============================================================================
# Copyright (C) 2019 - Philip Paquette
#
# This program is free software: you can redistribute it and/or modify it under
# the terms of the GNU Affero General Public License as published by the Free
# Software Foundation, either version 3 of the License, or (at your option) any
# later version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
# details.
#
# You should have received a copy of the GNU Affero General Public License along
# with this program. If not, see <https://www.gnu.org/licenses/>.
# ==============================================================================
""" Test Map Generation
- Contains test for map generation
"""
import glob
import os
import pickle
import sys
from diplomacy.engine.map import Map
from diplomacy.utils.convoy_paths import INTERNAL_CACHE_PATH, get_file_md5
MODULE_PATH = sys.modules['diplomacy'].__path__[0]
def test_map_creation():
""" Tests for map creation """
maps = glob.glob(os.path.join(MODULE_PATH, 'maps', '*.map'))
assert maps, 'Expected maps to be found.'
for current_map in maps:
map_name = current_map[current_map.rfind('/') + 1:].replace('.map', '')
this_map = Map(map_name)
assert this_map.error == [], 'Map %s should have no errors' % map_name
del this_map
def test_map_with_full_path():
""" Tests for map creation """
maps = glob.glob(os.path.join(MODULE_PATH, 'maps', '*.map'))
assert maps, 'Expected maps to be found.'
for current_map in maps:
this_map = Map(current_map)
assert this_map.error == [], 'Map %s should have no errors' % current_map
del this_map
def test_internal_cache():
""" Tests that all maps with a SVG are in the internal cache """
maps = glob.glob(os.path.join(MODULE_PATH, 'maps', '*.map'))
assert maps, 'Expected maps to be found.'
assert os.path.exists(INTERNAL_CACHE_PATH), 'Expected internal cache to exist'
# Checking that maps with a svg are in the internal cache
with open(INTERNAL_CACHE_PATH, 'rb') as cache_file:
internal_cache = pickle.load(cache_file)
for current_map in maps:
map_name = current_map[current_map.rfind('/') + 1:].replace('.map', '')
this_map = Map(map_name)
if not this_map.svg_path:
continue
assert get_file_md5(current_map) in internal_cache, 'Map "%s" not found in internal cache' % map_name
del this_map
|