diff options
Diffstat (limited to 'test/test_util.py')
-rw-r--r-- | test/test_util.py | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/test/test_util.py b/test/test_util.py new file mode 100644 index 0000000..95c1cb4 --- /dev/null +++ b/test/test_util.py @@ -0,0 +1,62 @@ +import os +import sys + +import pytest + +from mako import compat +from mako import exceptions +from mako import util +from mako.testing.assertions import assert_raises_message +from mako.testing.assertions import eq_ +from mako.testing.assertions import in_ +from mako.testing.assertions import ne_ +from mako.testing.assertions import not_in + + +class UtilTest: + def test_fast_buffer_write(self): + buf = util.FastEncodingBuffer() + buf.write("string a ") + buf.write("string b") + eq_(buf.getvalue(), "string a string b") + + def test_fast_buffer_truncate(self): + buf = util.FastEncodingBuffer() + buf.write("string a ") + buf.write("string b") + buf.truncate() + buf.write("string c ") + buf.write("string d") + eq_(buf.getvalue(), "string c string d") + + def test_fast_buffer_encoded(self): + s = "drôl m’a rée « S’il" + buf = util.FastEncodingBuffer(encoding="utf-8") + buf.write(s[0:10]) + buf.write(s[10:]) + eq_(buf.getvalue(), s.encode("utf-8")) + + def test_read_file(self): + fn = os.path.join(os.path.dirname(__file__), "test_util.py") + data = util.read_file(fn, "rb") + assert b"test_util" in data + + @pytest.mark.skipif(compat.pypy, reason="Pypy does this differently") + def test_load_module(self): + path = os.path.join(os.path.dirname(__file__), "module_to_import.py") + some_module = compat.load_module("test.module_to_import", path) + + not_in("test.module_to_import", sys.modules) + in_("some_function", dir(some_module)) + import test.module_to_import + + ne_(some_module, test.module_to_import) + + def test_load_plugin_failure(self): + loader = util.PluginLoader("fakegroup") + assert_raises_message( + exceptions.RuntimeException, + "Can't load plugin fakegroup fake", + loader.load, + "fake", + ) |