1
+ # -*- coding: utf-8 -*-
2
+ from datetime import datetime
3
+
1
4
from django .test import TestCase
5
+ from django .utils import simplejson
6
+ from knesset .mmm .fuzzy_match import fuzzy_match
7
+
2
8
from knesset .settings import PROJECT_ROOT
3
9
from knesset .mks .models import Member
4
10
from knesset .committees .models import Committee
5
11
from knesset .mmm .models import Document , text_lookup , verify
6
12
from knesset .mmm .management .commands .update_mmm import parse_json , combine_jsons
7
- from datetime import datetime
8
- import simplejson
9
13
10
14
11
15
matches = PROJECT_ROOT + "/mmm/test_matches.json"
12
16
mmm = PROJECT_ROOT + "/mmm/test_mmm.json"
13
- JSON = simplejson .load (open (matches , 'rt' ))
14
- MMM = simplejson .load (open (mmm , 'rt' ))
15
- OK_CANDIDATES = JSON [0 ]['entityName' ]
16
- OK_DATE = datetime .strptime (JSON [0 ]['date' ], '%d/%m/%Y' )
17
17
18
18
class MmmTest (TestCase ):
19
19
""" Testing mmm functions """
@@ -35,4 +35,57 @@ def test_combine_jsons(self):
35
35
36
36
self .assertTrue (isinstance (j [0 ]['author' ], basestring ))
37
37
38
+ def test_fuzzy_match (self ):
39
+ name = u'הוועדה לקידום מעמד האישה'
40
+ text = u'מוגש ועדה לקידו4 מעמד האישה'
41
+
42
+ self .assertTrue (fuzzy_match (name , text ))
43
+
38
44
def test_text_lookup (self ):
45
+ m1 = Member .objects .create (name = u'משה בינת' )
46
+ m2 = Member .objects .create (name = u'בני' )
47
+ text = u'מסמך זה נכתב בשביל משה בינת'
48
+ text_fuzzy = u'מסמך זה נכתב לבקשת משה בינט, חבר כנסת'
49
+
50
+ self .assertTrue (m1 .name in text )
51
+ self .assertEqual (1 , len (text_lookup (Member , text )))
52
+ self .assertEqual (1 , len (text_lookup (Member , text_fuzzy )))
53
+
54
+ def test_vairfy (self ):
55
+ match = {
56
+ "docid" : "m02254" ,
57
+ "title" : u"\u05ea \u05d9 \u05e2 \u05d5 \u05d3 \u05d7 \u05d6 \u05d5 \u05ea \u05d9 \u05d5 \u05e7 \u05d5 \u05dc \u05d9 \u05e9 \u05dc \u05d7 \u05e7 \u05d9 \u05e8 \u05ea \u05d7 \u05e9 \u05d5 \u05d3 \u05d9 \u05dd " ,
58
+ "url" : u"http://knesset.gov.il/mmm/data/pdf/m02254.pdf" ,
59
+ "entityName" : u"\u05d5 \u05e2 \u05d3 \u05ea \u05d4 \u05d7 \u05d5 \u05e7 \u05d4 \u05d7 \u05d5 \u05e7 \u05d5 \u05de \u05e9 \u05e4 \u05d8 " ,
60
+ "heading" : u"\u05de \u05e1 \u05de \u05da \u05d6 \u05d4 \u05e0 \u05db \u05ea \u05d1 \u05dc \u05e7 \u05e8 \u05d0 \u05ea \u05d3 \u05d9 \u05d5 \u05df \u05d5 \u05e2 \u05d3 \u05ea \u05d4 \u05d7 \u05d5 \u05e7 \u05d4 \u05d7 \u05d5 \u05e7 \u05d5 \u05de \u05e9 \u05e4 \u05d8 \u05e9 \u05dc \u05d4 \u05db \u05e0 \u05e1 \u05ea \u05d1 \u05e1 \u05e2 \u05d9 \u05e3 23 \u05dc \u05d4 \u05e6 \u05e2 \u05ea \u05d7 \u05d5 \u05e7 \u05d4 \u05d4 \u05ea \u05d9 \u05d9 \u05e2 \u05dc \u05d5 \u05ea \u05d4 \u05db \u05dc \u05db \u05dc \u05d9 \u05ea \u05ea \u05d9 \u05e7 \u05d5 \u05e0 \u05d9 \u05d7 \u05e7 \u05d9 \u05e7 \u05d4 \u05dc \u05d9 \u05d9 \u05e9 \u05d5 \u05dd \u05d4 \u05ea \u05d5 \u05db \u05e0 \u05d9 \u05ea \u05d4 \u05db \u05dc \u05db \u05dc \u05d9 \u05ea \u05dc \u05e9 \u05e0 \u05d9 \u05dd 9002 \u05d5 0102 \u05d4 \u05ea \u05e9 \u05e1 \u05d8 90021 \u05dc \u05d4 \u05dc \u05df \u05d4 \u05e6 \u05e2 \u05ea \u05d4 \u05d7 \u05d5 \u05e7 " ,
61
+ "score" : 100 ,
62
+ "date" : "2/7/2009" ,
63
+ "id" : 10005 ,
64
+ "author" : u"\u05d3 \u05d9 \u05e0 \u05d4 \u05e6 \u05d3 \u05d5 \u05e7 "
65
+ }
66
+
67
+ match ['date' ] = datetime .strptime (match ['date' ], '%d/%m/%Y' ).date ()
68
+
69
+ mmm_doc = Document .objects .create (
70
+ url = match ['url' ],
71
+ title = match ['title' ],
72
+ publication_date = match ['date' ],
73
+ author_names = match ['author' ],
74
+ )
75
+
76
+
77
+ m = Member .objects .create (name = 'name' )
78
+ m2 = Member .objects .create (name = 'name1' )
79
+ mks = [m .id , m2 .id ]
80
+ committees = []
81
+ mmm_doc .req_mks = mks
82
+
83
+ self .assertEqual (mks , list (mmm_doc .req_mks .values_list ('pk' , flat = True )))
84
+ doc = Document .objects .get (url = match ['url' ])
85
+
86
+ # self.assertTrue(verify(match, i, mks, committees))
87
+ m3 = Member .objects .create (name = 'name3' )
88
+ m4 = Member .objects .create (name = 'name4' )
89
+ mks2 = [m3 .id , m4 .id ]
90
+ self .assertNotEqual (mks2 , list (doc .req_mks .values_list ('pk' , flat = True )))
91
+ self .assertTrue (verify (match , doc , mks2 , committees ))
0 commit comments