Exemple #1
0
    def test_keep_tail_not_touched_file(self):
        self.newFile(1)
        f = None
        try:
            ctail._verbose = False

            f, error = ctail.open_tail(self.file_path)
            self.assertEqual(False, error)

            offset = f.tell()
            size = os.path.getsize(self.file_path)
            self.assertEqual(8, size)
            self.assertEqual(0, offset)

            # 첫 번째 tail
            offset, error = ctail.keep_tail(f)
            self.assertEqual(False, error)
            self.assertEqual(8, size)
            self.assertEqual(8, offset)

            # 두 번째 tail
            offset, error = ctail.keep_tail(f)
            self.assertEqual(False, error)
            self.assertEqual(8, size)
            self.assertEqual(8, offset)

        except Exception as e:
            self.assertTrue(False, "error, {}".format(e))
        finally:
            if f is not None:
                f.close()
Exemple #2
0
    def test_keep_tail_the_file_with_option_f(self):
        self.newFile(1)
        time.sleep(0.1)
        self.newAnotherFile(1)
        f = None
        try:
            ctail._verbose = False
            ctail._follow_file = True

            target, exist, inode = ctail.get_tail_filename(
                self.file_path, True)
            self.assertEqual(True, exist)
            self.assertEqual(os.path.abspath(self.file_path), target)

            f, error = ctail.open_tail(target)
            self.assertEqual(False, error)

            offset = f.tell()
            size = os.path.getsize(target)
            self.assertEqual(8, size)
            self.assertEqual(0, offset)

            # 첫 번째 tail
            offset, error = ctail.keep_tail(f)
            self.assertEqual(False, error)
            self.assertEqual(8, size)
            self.assertEqual(8, offset)

            # 두 번째 tail
            offset, error = ctail.keep_tail(f)
            self.assertEqual(False, error)
            self.assertEqual(8, size)
            self.assertEqual(8, offset)

            time.sleep(0.1)
            self.appendFile(2, 2)
            time.sleep(0.1)
            self.appendAnotherFile(2, 2)

            # 세 번째 tail
            offset, error = ctail.keep_tail(f)
            size = os.path.getsize(target)
            self.assertEqual(False, error)
            self.assertEqual(16, size)
            self.assertEqual(16, offset)

        except Exception as e:
            self.assertTrue(False, "error, {}".format(e))
        finally:
            if f is not None:
                f.close()
Exemple #3
0
    def test_error_in_keeping_tail_the_file_with_option_f(self):
        self.newFile(1)
        f = None
        try:
            ctail._verbose = False
            ctail._follow_file = True

            target, exist, inode = ctail.get_tail_filename(
                self.file_path, True)
            print("get tail file:{}, {} ".format(
                os.path.abspath(self.file_path), target))
            self.assertEqual(True, exist)
            self.assertEqual(os.path.abspath(self.file_path), target)

            f, error = ctail.open_tail(target)
            self.assertEqual(False, error)

            offset = f.tell()
            size = os.path.getsize(target)
            self.assertEqual(8, size)
            self.assertEqual(0, offset)

            # 첫 번째 tail
            offset, error = ctail.keep_tail(f)
            self.assertEqual(False, error)
            self.assertEqual(8, size)
            self.assertEqual(8, offset)

            # file 이 지워지는 경우
            self.removeFile()

            # file 이 지워져도 f 가 유효한 건지, error가 나지 않음
            offset, error = ctail.keep_tail(f)
            self.assertEqual(False, error)
            self.assertEqual(8, offset)

            offset, error = ctail.keep_tail(f)
            self.assertEqual(False, error)
            self.assertEqual(8, offset)

        except Exception as e:
            self.assertTrue(False, "error, {}".format(e))
        finally:
            if f is not None:
                f.close()
Exemple #4
0
    def test_the_filesize_eqless_than_2048(self):
        self.newFile(256)
        f = None
        try:
            ctail._verbose = False

            f, error = ctail.open_tail(self.file_path)
            self.assertEqual(False, error)

            offset = f.tell()
            size = os.path.getsize(self.file_path)

            self.assertEqual(2048, size)
            self.assertEqual(0, offset)

        except Exception as e:
            self.assertTrue(False, "error, {}".format(e))
        finally:
            if f is not None:
                f.close()
Exemple #5
0
    def test_first_error_in_opening_tail_the_file_with_option_f(self):
        self.newFile(1)
        f = None
        try:
            ctail._verbose = False
            ctail._follow_file = True

            target, exist, inode = ctail.get_tail_filename(
                self.file_path, True)
            self.assertEqual(True, exist)
            self.assertEqual(os.path.abspath(self.file_path), target)

            # file 이 지워지는 경우
            self.removeFile()

            f, error = ctail.open_tail(target)
            self.assertEqual(True, error)

        except Exception as e:
            self.assertTrue(False, "error, {}".format(e))
        finally:
            if f is not None:
                f.close()