forked from gpeterson2/JMdict-Parser
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest.py
More file actions
87 lines (70 loc) · 2.81 KB
/
test.py
File metadata and controls
87 lines (70 loc) · 2.81 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#! /usr/bin/env python
# -*- coding: utf-8 -*-
import unittest
from parser import Parser, Entry, Gloss
class TestJmdictParser(unittest.TestCase):
def test_entry_to_string(self):
entry_seq = 1
kanas = [u'どうじょう']
kanjis = [u'仝']
glosses = [
Gloss(u'"as above" mark', u'noun', u'eng'),
Gloss(u'Abkürzung für "siehe oben"', u'noun', u'ger'),
]
e = Entry(entry_seq, kanas, kanjis, glosses)
expected = u'1 [どうじょう] [仝] "as above" mark,Abkürzung für "siehe oben"'
result = unicode(e)
#for g in glosses:
#print(g.gloss)
self.assertEqual(expected, result)
def test_gloss_to_string(self):
gloss = u'"as above" mark',
pos = u'noun'
lang = u'eng'
g = Gloss(gloss, pos, lang)
self.assertEqual(g.gloss, gloss)
self.assertEqual(g.pos, pos)
self.assertEqual(g.lang, lang)
def test_from_string(self):
xml = '''<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE JMdict [
<!ENTITY n "noun (common) (futsuumeishi)">
]>
<JMdict>
<entry>
<ent_seq>1000050</ent_seq>
<k_ele>
<keb>仝</keb>
</k_ele>
<r_ele>
<reb>どうじょう</reb>
</r_ele>
<sense>
<pos>&n;</pos>
<gloss>"as above" mark</gloss>
<gloss xml:lang="ger">Abkürzung für "siehe oben"</gloss>
</sense>
</entry>
</JMdict>
'''
expected = Entry()
expected.entry_seq = 1000050
expected.kanas = [u'どうじょう']
expected.kanjis = [u'仝']
expected.glosses = [
Gloss(u'"as above" mark', u'noun (common) (futsuumeishi)', u'eng'),
Gloss(u'Abkürzung für "siehe oben"', u'noun (common) (futsuumeishi)', u'ger'),
]
results = Parser().parse_from_string(xml)
result = results[0]
self.assertEqual(int(expected.entry_seq), int(result.entry_seq))
self.assertEqual(expected.kanas, result.kanas)
self.assertEqual(expected.kanjis, result.kanjis)
self.assertEqual(expected.glosses[0].gloss, result.glosses[0].gloss)
self.assertEqual(expected.glosses[0].lang, result.glosses[0].lang)
self.assertEqual(expected.glosses[0].pos, result.glosses[0].pos)
self.assertEqual(expected.glosses[1].gloss, result.glosses[1].gloss)
self.assertEqual(expected.glosses[1].lang, result.glosses[1].lang)
self.assertEqual(expected.glosses[1].pos, result.glosses[1].pos)
if __name__ == '__main__':
unittest.main()