Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion pre_commit/util.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ def clean_path_on_failure(path: str) -> Generator[None]:

def resource_text(filename: str) -> str:
files = importlib.resources.files('pre_commit.resources')
return files.joinpath(filename).read_text()
return files.joinpath(filename).read_text(encoding='UTF-8')


def make_executable(filename: str) -> None:
Expand Down
14 changes: 14 additions & 0 deletions tests/util_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import os.path
import stat
import subprocess
from unittest import mock

import pytest

Expand All @@ -12,6 +13,7 @@
from pre_commit.util import cmd_output_b
from pre_commit.util import cmd_output_p
from pre_commit.util import make_executable
from pre_commit.util import resource_text
from pre_commit.util import rmtree


Expand Down Expand Up @@ -106,3 +108,15 @@ def test_rmtree_read_only_directories(tmpdir):
tmpdir.join('x/y/z').chmod(mode_no_w)
tmpdir.join('x/y/z').chmod(mode_no_w)
rmtree(str(tmpdir.join('x')))


def test_resource_text_uses_utf8():
resource = mock.Mock()
resource.read_text.return_value = 'héllo'

with mock.patch('importlib.resources.files') as files:
files.return_value.joinpath.return_value = resource

assert resource_text('resource.txt') == 'héllo'

resource.read_text.assert_called_once_with(encoding='UTF-8')
Loading