| 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", |
| ) |