1from translate.lang import factory 2 3 4def test_punctranslate(): 5 """Tests that we can translate punctuation.""" 6 language = factory.getlanguage("fr") 7 assert language.punctranslate("") == "" 8 assert language.punctranslate("abc efg") == "abc efg" 9 assert language.punctranslate("abc efg.") == "abc efg." 10 assert language.punctranslate("abc efg!") == "abc efg\u00a0!" 11 assert language.punctranslate("abc efg? hij!") == "abc efg\u00a0? hij\u00a0!" 12 assert language.punctranslate("Delete file: %s?") == "Delete file\u00a0: %s\u00a0?" 13 assert ( 14 language.punctranslate('"root" is powerful') == "«\u00a0root\u00a0» is powerful" 15 ) 16 assert ( 17 language.punctranslate("'root' is powerful") == "«\u00a0root\u00a0» is powerful" 18 ) 19 assert ( 20 language.punctranslate("`root' is powerful") == "«\u00a0root\u00a0» is powerful" 21 ) 22 assert language.punctranslate('The user "root"') == "The user «\u00a0root\u00a0»" 23 assert language.punctranslate("The user 'root'") == "The user «\u00a0root\u00a0»" 24 assert language.punctranslate("The user `root'") == "The user «\u00a0root\u00a0»" 25 assert ( 26 language.punctranslate('The user "root"?') 27 == "The user «\u00a0root\u00a0»\u00a0?" 28 ) 29 assert ( 30 language.punctranslate("The user 'root'?") 31 == "The user «\u00a0root\u00a0»\u00a0?" 32 ) 33 assert ( 34 language.punctranslate("The user `root'?") 35 == "The user «\u00a0root\u00a0»\u00a0?" 36 ) 37 assert language.punctranslate('Watch the " mark') == 'Watch the " mark' 38 assert language.punctranslate("Watch the ' mark") == "Watch the ' mark" 39 assert language.punctranslate("Watch the ` mark") == "Watch the ` mark" 40 assert language.punctranslate("Watch the “mark”") == "Watch the «\u00a0mark\u00a0»" 41 assert ( 42 language.punctranslate('The <a href="info">user</a> "root"?') 43 == 'The <a href="info">user</a> «\u00a0root\u00a0»\u00a0?' 44 ) 45 assert ( 46 language.punctranslate("The <a href='info'>user</a> 'root'?") 47 == "The <a href='info'>user</a> «\u00a0root\u00a0»\u00a0?" 48 ) 49 # Broken because we test for equal number of ` and ' in the string 50 # assert language.punctranslate("The <a href='info'>user</a> `root'?") == "The <a href='info'>user</a> «\u00a0root\u00a0»\u00a0?" 51 assert ( 52 language.punctranslate("The <a href='http://koeie'>user</a>") 53 == "The <a href='http://koeie'>user</a>" 54 ) 55 56 assert ( 57 language.punctranslate("Copying `%s' to `%s'") 58 == "Copying «\u00a0%s\u00a0» to «\u00a0%s\u00a0»" 59 ) 60 61 62def test_sentences(): 63 """Tests basic functionality of sentence segmentation.""" 64 language = factory.getlanguage("fr") 65 sentences = language.sentences("") 66 assert sentences == [] 67 68 sentences = language.sentences("Normal case. Nothing interesting.") 69 assert sentences == ["Normal case.", "Nothing interesting."] 70 sentences = language.sentences("Is that the case ? Sounds interesting !") 71 assert sentences == ["Is that the case ?", "Sounds interesting !"] 72