示例#1
0
def validate_dict(dict_path, output_stream):
    with open(dict_path, 'r') as dict:
        for index, line in enumerate(dict.readlines()):
            line = line.strip()
            if not validate_line(line):
                print("ERROR: invalid dictionary entry '%s' in %s:%d" %
                      (line, dict_path, index + 1),
                      file=stderr)
                return False
            if output_stream:
                output_stream.write(line + "\n")
    return True
示例#2
0
 def test_single_quote(self):
     self.assertFalse(validate_line('"'))
示例#3
0
 def test_plain_words(self):
     self.assertFalse(validate_line('Invalid dictionary entries'))
示例#4
0
 def test_spaces(self):
     self.assertTrue(validate_line('   '))
示例#5
0
 def test_empty_string(self):
     self.assertTrue(validate_line(''))
示例#6
0
 def test_empty_entry(self):
     self.assertFalse(validate_line('""'))
示例#7
0
 def test_nonspace_after_entry(self):
     self.assertFalse(validate_line('"entry"suffix'))
示例#8
0
 def test_space_after_entry(self):
     self.assertTrue(validate_line('"entry" \t\r\f'))
示例#9
0
 def test_comment(self):
     self.assertTrue(validate_line('# valid dictionary entries'))
示例#10
0
 def test_unfinished_escape(self):
     self.assertFalse(validate_line('"\\"'))
     self.assertFalse(validate_line('"\\x"'))
     self.assertFalse(validate_line('"\\x1"'))
示例#11
0
 def test_invalid_escaped_words(self):
     self.assertFalse(validate_line('"\\A"'))
示例#12
0
 def test_escaped_words(self):
     self.assertTrue(validate_line('kw2="\\"ac\\\\dc\\""'))
     self.assertTrue(validate_line('kw3="\\xF7\\xF8"'))
     self.assertTrue(validate_line('"foo\\x0Abar"'))
示例#13
0
 def test_plain_entries(self):
     self.assertTrue(validate_line('kw1="blah"'))
     self.assertTrue(validate_line('":path"'))
     self.assertTrue(validate_line('"keep-alive"'))
     self.assertTrue(validate_line('"te"'))
     self.assertTrue(validate_line('"ab""'))