1 # -*- coding: utf-8 -*-
4 from parsers
import edict
9 SRC_NAME
= "/".join((SRC_DIR
, SRC_NAME
))
11 class EdictTest(unittest
.TestCase
):
14 self
.parser
= edict
.EdictParser(SRC_NAME
)
16 def test_japanese_search(self
):
17 """EDICT: Search for Japanese word/phrase"""
19 l
= [entry
for entry
in self
.parser
.search(query
)]
20 self
.assertTrue(len(l
) > 0)
22 def test_native_search(self
):
23 """EDICT: Search for non-Japanese word/phrase"""
25 l
= [entry
for entry
in self
.parser
.search(query
)]
26 self
.assertTrue(len(l
) > 0)
28 def test_unparsed(self
):
29 """EDICT: Check for unhandled EDICT fields"""
30 l
= [k
for k
in self
.parser
.search(u
"")]
32 for key
, entry
in self
.parser
.cache
.iteritems():
33 for item
in entry
.unparsed
: unparsed
.add(item
)
35 #self.fail(u"Unhandled fields found: %s" % u", ".join(unparsed))
36 print u
"\n\tWARNING: Unhandled fields found: %s" \
37 % u
", ".join(unparsed
)
39 def test_caching(self
):
40 """EDICT: Check that caching is working"""
41 self
.assertFalse(self
.parser
.cache
)
43 self
.test_japanese_search()
44 first_t
= time
.time() - t
46 self
.assertTrue(self
.parser
.cache
)
48 self
.test_japanese_search()
49 second_t
= time
.time() - t
51 print "\n\tFirst query time: %f" % first_t
52 print "\tSecond query time: %f" % second_t
53 self
.assertTrue(second_t
<= first_t
)
55 def test_no_cache(self
):
56 """EDICT: Check that parser works without caching."""
57 self
.parser
= edict
.EdictParser(SRC_NAME
, use_cache
=False)
59 self
.assertFalse(self
.parser
.cache
)
61 self
.test_japanese_search()
62 first_t
= time
.time() - t
64 self
.assertFalse(self
.parser
.cache
)
66 self
.test_japanese_search()
67 second_t
= time
.time() - t
69 print "\n\tFirst query time: %f" % first_t
70 print "\tSecond query time: %f" % second_t
75 if __name__
== "__main__":