Example #1
0
 def test_compare_text(self):
     diff_text_src = text_file.read_file('test_file/diff_text_src')
     diff_text_dst = text_file.read_file('test_file/diff_text_dst')
     
     compare_result = diff.compare_text(diff_text_src, diff_text_dst)
     summary = diff.stat_compare(compare_result)
     self.assertEqual(summary.get('equal'), 3)
     self.assertEqual(summary.get('delete'), 1)
     self.assertEqual(summary.get('insert'), 1)
     self.assertEqual(summary.get('replace'), 1)
     
     src_text = compare_result.get('src-text')
     dst_text = compare_result.get('dst-text')
     self.assertEqual(len(src_text), 9)
     self.assertEqual(len(dst_text), 9)
Example #2
0
def sed(target, pattern, match_model, replace, operate, output):
    '''
    sed : stream editor for filtering and transforming text
    
    @param target: target: string list ,text file name or stdio
    @param pattern: regex pattern or line number pattern
    @param match_model: s: substring model, e: regex model, n: line number model
    @param replace: replacement string
    @param operate: d: delete, s: replace, a: append, i: insert
    @prarm output: : rl: return as list , rt: return as string , p: print screen, w: write to file
    
    '''
    text = text_file.read_file(target)
    if not text:
        return None
    
    result = []
    
    line_num = 1
    for line in text:

        if grep.__match(line_num, line, match_model, pattern):
            if operate == 's':
                if str_utils.is_not_blank(replace):
                    result.append(replace)
                else:
                    result.append(line)
            elif operate == 'd':
                continue
            elif operate == 'i':
                if str_utils.is_not_blank(replace):
                    result.append(replace)
                result.append(line)
            elif operate == 'a':
                result.append(line)
                if str_utils.is_not_blank(replace):
                    result.append(replace)
        else:
            result.append(line)
        line_num = line_num + 1
                
    output_result = ''.join(result)
    
    if output == 'p':
        print output_result
    elif output == 'w':
        if isinstance(target, str) or isinstance(target, unicode):
            text_file.write_file(target, output_result)
    elif output == 'rl':
        return result
    elif output == 'rt':
        return output_result
Example #3
0
 def __load(self, filename):
     conf = {}
     lines = text_file.read_file(filename)
     for line in lines:
         line = line.strip()
         if line == '' or line.startswith('#'):
             continue
         else:
             try:
                 key, value = line.split('=')
                 conf[key] = value
             except:
                 pass
     return conf
Example #4
0
 def test_edit(self):
     shutil.copyfile('test_file/interface_config', 'test_file/interface_config_bak')
     
     edit.edit('script_file/edit.script')
     content = text_file.read_file('test_file/interface_config_bak')
     
     self.assertTrue('iface eth0 inet static\n' in content)
     self.assertTrue('\taddress 192.168.228.31\n' in content)
     self.assertTrue('\tnetmask 255.255.255.0\n' in content)
     self.assertTrue('\tgateway 192.168.228.2\n' in content)
     self.assertTrue('iface eth1 inet dhcp\n' in content)
     
     self.assertEquals('# network interface config\n', content[0])
     self.assertEquals('# end of config\n', content[len(content) - 1])
     
     os.remove('test_file/interface_config_bak')
Example #5
0
 def test_read_file(self):
     text = text_file.read_file('test_file/log_data')
     self.assertEqual(len(text), 19)
     
     text = text_file.read_file('test_file/log_data', 5)
     self.assertEqual(len(text), 5)
Example #6
0
def read_log():
    return text_file.read_file('test_file/log_data')