# Copyright 2020 Huawei Technologies Co., Ltd # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Test file_handler.py.""" from unittest import mock, TestCase from mindinsight.lineagemgr.summary.file_handler import FileHandler class TestFileHandler(TestCase): """Test file_handler.py""" @mock.patch("os.path.getsize", return_value=12) @mock.patch("builtins.open") def setUp(self, *args): args[0].return_value.__enter__.return_value.read.return_value = b'\x0a\x0b\x0c' * 4 self.file_handler = FileHandler("fake_path.log") def test_seek(self): """Test seek method.""" self.file_handler.seek(5) cur_pos = self.file_handler.tell() self.assertEqual(cur_pos, 5) def test_read(self): """Test read method.""" res = self.file_handler.read(3) self.assertEqual(res, b'\x0a\x0b\x0c') def test_read_with_pos(self): """Test read method with specific position.""" res = self.file_handler.read(3, 1) self.assertEqual(res, b'\x0b\x0c\x0a') def test_size(self): """Test size property.""" size = self.file_handler.size self.assertEqual(size, 12)