0
This repository has been archived on 2025-04-25. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
Minecraft-Overviewer/test/test_settings.py
Nicolas F e348a548b6 Initial Python 3 port
Many things work, some don't. Notably, genPOI doesn't work, and
there's some signedness comparison stuff going on in the C extension.

This also completely drops support for Python 2, as maintaining a C
extension for both Python 2 and 3 is a pain and not worth it for the
9 months that Python 2 is still going to be supported upstream.

The documentation needs to be adjusted as well.

All of the few tests we have pass, and rendering a map works, both
with a configuration file and without. We can also use optimizeimages.

Concerns #1528.
2019-03-17 17:57:07 +01:00

86 lines
3.0 KiB
Python

import unittest
from collections import OrderedDict
from overviewer_core import configParser
from overviewer_core.settingsValidators import ValidationException
from overviewer_core import world
from overviewer_core import rendermodes
class SettingsTest(unittest.TestCase):
def setUp(self):
self.s = configParser.MultiWorldParser()
def test_missing(self):
"Validates that a non-existant settings.py causes an exception"
self.assertRaises(configParser.MissingConfigException, self.s.parse, "doesnotexist.py")
def test_existing_file(self):
self.s.parse("test/data/settings/settings_test_1.py")
things = self.s.get_validated_config()
# no exceptions so far. that's a good thing
# Test the default
self.assertEqual(things['renders']['myworld']['bgcolor'], (26,26,26,0))
# Test a non-default
self.assertEqual(things['renders']['otherworld']['bgcolor'], (255,255,255,0))
self.assertEqual(things['renders']['myworld']['northdirection'],
world.UPPER_LEFT)
def test_rendermode_validation(self):
self.s.parse("test/data/settings/settings_test_rendermode.py")
self.assertRaises(ValidationException,self.s.get_validated_config)
def test_manual(self):
"""Tests that manually setting the config parser works, you don't have
to do it from a file
"""
fromfile = configParser.MultiWorldParser()
fromfile.parse("test/data/settings/settings_test_1.py")
self.s.set_config_item("worlds", {
'test': "test/data/settings/test_world",
})
self.s.set_config_item("renders", OrderedDict([
("myworld", {
"title": "myworld title",
"world": "test",
"rendermode": rendermodes.normal,
"northdirection": "upper-left",
}),
("otherworld", {
"title": "otherworld title",
"world": "test",
"rendermode": rendermodes.normal,
"bgcolor": "#ffffff"
}),
]))
self.s.set_config_item("outputdir", "/tmp/fictional/outputdir")
self.assertEqual(fromfile.get_validated_config(), self.s.get_validated_config())
def test_rendermode_string(self):
self.s.set_config_item("worlds", {
'test': "test/data/settings/test_world",
})
self.s.set_config_item("outputdir", "/tmp/fictional/outputdir")
self.s.set_config_item("renders", {
"myworld": {
"title": "myworld title",
"world": "test",
"rendermode": "normal",
"northdirection": "upper-left",
},
})
p = self.s.get_validated_config()
self.assertEqual(p['renders']['myworld']['rendermode'], rendermodes.normal)
if __name__ == "__main__":
unittest.main()