提交 3d18d952 编写于 作者: P Praveen K Pandey 提交者: Caio Carrara

enhance avocado:utils:genio as a new utility

added utility which takes as argument a file and pattern
and return true or false respectively when pattern matches in
file or not

>>> from avocado.utils import genio
>>> genio.find_pattern("/home/praveen/file1", "praveen")
True
>>> genio.find_pattern("/home/praveen/file1", "Praveen")
False
>>> genio.find_pattern("/home/praveen/file12", "Praveen")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "avocado/utils/genio.py", line 219, in find_pattern
    % (filename, pattern))
avocado.utils.genio.GenIOError: invalid file /home/praveen/file12 to match pattern Praveen
>>>
Signed-off-by: NPraveen K Pandey <praveen@linux.vnet.ibm.com>
上级 960c8c61
......@@ -19,6 +19,7 @@ Avocado generic IO related functions.
import logging
import os
import time
import re
from six.moves import input
......@@ -200,3 +201,24 @@ def write_file_or_fail(filename, data):
except OSError as details:
raise GenIOError("The write to %s failed: %s" % (
filename, details))
def find_pattern(filename, pattern):
"""
Module for match pattern in a specified file
:param filename: Path to file
:type filename: str
:param pattern: pattern that need to match in file
:type pattern: str
:return: True when pattern matches in file if not
retun False
"""
if not os.path.isfile(filename):
raise GenIOError('invalid file %s to match pattern %s'
% (filename, pattern))
with open(filename, 'r') as content_file:
if re.search(pattern, content_file.read(), re.MULTILINE):
return True
return False
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册