def METHOD_NAME(self):
    """
    file_integrity monitors watched directories (non recursive).
    """
    dirs = [self.temp_dir("auditbeat_test"),
            self.temp_dir("auditbeat_test")]
    with PathCleanup(dirs):
        self.render_config_template(
            modules=[{
                "name": "file_integrity",
                "extras": {
                    "paths": dirs,
                    "scan_at_start": False
                }
            }],
        )
        proc = self.start_beat()
        # wait until the directories to watch are printed in the logs
        # this happens when the file_integrity module starts.
        # Case must be ignored under windows as capitalisation of paths
        # may differ
        self.wait_log_contains(escape_path(dirs[0]), max_timeout=30, ignore_case=True)
        file1 = os.path.join(dirs[0], 'file.txt')
        self.create_file(file1, "hello world!")
        file2 = os.path.join(dirs[1], 'file2.txt')
        self.create_file(file2, "Foo bar")
        # wait until file1 is reported before deleting. Otherwise the hash
        # might not be calculated
        self.wait_log_contains("\"path\":\"{0}\"".format(escape_path(file1)), ignore_case=True)
        os.unlink(file1)
        subdir = os.path.join(dirs[0], "subdir")
        os.mkdir(subdir)
        file3 = os.path.join(subdir, "other_file.txt")
        self.create_file(file3, "not reported.")
        # log entries are JSON formatted, this value shows up as an escaped json string.
        self.wait_log_contains("\\\"deleted\\\"")
        self.wait_log_contains("\"path\":\"{0}\"".format(escape_path(subdir)), ignore_case=True)
        self.wait_output(3)
        self.wait_until(lambda: any(
            'file.path' in obj and obj['file.path'].lower() == subdir.lower() for obj in self.read_output()))
        proc.check_kill_and_wait()
        self.assert_no_logged_warnings()
        # Ensure all Beater stages are used.
        assert self.log_contains("Setup Beat: auditbeat")
        assert self.log_contains("auditbeat start running")
        assert self.log_contains("auditbeat stopped")
        objs = self.read_output()
        has_file(objs, file1, "430ce34d020724ed75a196dfc2ad67c77772d169")
        has_file(objs, file2, "d23be250530a24be33069572db67995f21244c51")
        has_dir(objs, subdir)
        file_events(objs, file1, ['created', 'deleted'])
        file_events(objs, file2, ['created'])
        # assert file inside subdir is not reported
        assert self.log_contains(file3) is False