blob: 59fbcbd9e9cf53288a049e1b2c3aeeebcd05f426 [file] [log] [blame]
# Copyright 2021 The ChromiumOS Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Tests for file_util."""
import os
from chromite.lib import cros_test_lib
from chromite.lib import osutils
from chromite.utils import file_util
class OpenTests(cros_test_lib.TempDirTestCase):
"""Tests for cros_build_lib.Open."""
def testFile(self) -> None:
"""Read/write a file by path."""
path = os.path.join(self.tempdir, "test.txt")
with file_util.Open(path, mode="w") as fp:
fp.write("foo")
with file_util.Open(path, mode="r") as fp:
self.assertEqual("foo", fp.read())
def testHandle(self) -> None:
"""Read/write a file by an open handle."""
path = os.path.join(self.tempdir, "test.txt")
with open(path, mode="w", encoding="utf-8") as fp:
with file_util.Open(fp) as fp2:
fp2.write("foo")
with open(path, mode="r", encoding="utf-8") as fp:
with file_util.Open(fp) as fp2:
self.assertEqual("foo", fp2.read())
def testPath(self) -> None:
"""Read/write a file by Path."""
path = self.tempdir / "test.txt"
with file_util.Open(path, mode="w") as fp:
fp.write("foo")
with file_util.Open(path, mode="r") as fp:
self.assertEqual("foo", fp.read())
self.assertEqual("foo", path.read_text(encoding="utf-8"))
def testEncoding(self) -> None:
"""Verify we pass kwargs down."""
path = os.path.join(self.tempdir, "test.txt")
with file_util.Open(path, mode="w", encoding="utf-8") as fp:
fp.write("ßomß")
self.assertEqual("ßomß", osutils.ReadFile(path))