Пример #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""'))