1+ from odoo .exceptions import UserError
12from odoo .tests .common import TransactionCase
23
34
@@ -21,17 +22,18 @@ def setUpClass(cls):
2122 }
2223 )
2324
24- def test_on_scan_id_document_details_success (self ):
25+ def test_01_on_scan_id_document_details (self ):
2526 self .applicant .id_document_details = (
2627 "{"
2728 '"photo": "",'
2829 '"given_name": "Blue",'
2930 '"family_name": "Red",'
3031 '"birth_date": "1970-06-18",'
31- '"document_type": "Passport ",'
32+ '"document_type": "PassportTest ",'
3233 '"document_number": "162401579884",'
33- '"expiry_date": "06/18/ 2025",'
34+ '"expiry_date": "2025-10-10 ",'
3435 '"nationality": "Philippines",'
36+ '"gender": "MaleTest",'
3537 '"birth_place_city": "Caloocan",'
3638 '"image": "iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz'
3739 "AAAApgAAAKYB3X3/OAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAANCSURBVEiJtZZPbBtFFMZ/M7ubXdtdb1xSFyeilBapySVU8h8OoFaooFSqiihIVIpQBKci6KEg9Q6H9"
@@ -45,19 +47,40 @@ def test_on_scan_id_document_details_success(self):
4547 "}"
4648 )
4749
50+ # Should raise a user error since gender type does not exist
51+ with self .assertRaises (UserError ):
52+ self .applicant .on_scan_id_document_details ()
53+
54+ # Create the gender type
55+ gender_type = self .env ["gender.type" ].search (
56+ ["|" , ("code" , "=" , "MaleTest" ), ("value" , "=" , "MaleTest" )], limit = 1
57+ )
58+ if not gender_type :
59+ self .env ["gender.type" ].create ({"code" : "MaleTest" , "value" : "MaleTest" })
60+
61+ # Should still raise a user error since document type does not exist
62+ with self .assertRaises (UserError ):
63+ self .applicant .on_scan_id_document_details ()
64+
65+ # Create the document type
66+ doc_type = self .env ["g2p.id.type" ].search ([("name" , "=" , "PassportTest" )], limit = 1 )
67+ if not doc_type :
68+ self .env ["g2p.id.type" ].create ({"name" : "PassportTest" })
69+
70+ # Now it should work
4871 self .applicant .on_scan_id_document_details ()
4972
5073 self .assertEqual (self .applicant .family_name , "Red" )
5174 self .assertEqual (self .applicant .given_name , "Blue" )
5275
53- def test_on_scan_id_document_details_failure (self ):
76+ def test_02_on_scan_id_document_details_failure (self ):
5477 # Invalid JSON
5578 self .applicant .id_document_details = """{
5679 "photo": "",
5780 "given_name": "Blue",
5881 "family_name": "Red",
5982 "birth_date": "1970-06-18",
60- "document_type": "Passport ",
83+ "document_type": "PassportTest ",
6184 "document_number": "162401579884",
6285 "expiry_date": "06/18/2025",
6386 "nationality": "Philippines",
@@ -69,35 +92,66 @@ def test_on_scan_id_document_details_failure(self):
6992 self .assertEqual (self .applicant .given_name , "Chin" )
7093 self .assertEqual (self .applicant .id_document_details , "" )
7194
72- def test_scan_id_document_details_vals (self ):
95+ def test_03_scan_id_document_details_vals (self ):
7396 details = {
7497 "photo" : "" ,
7598 "given_name" : "Blue" ,
7699 "family_name" : "Red" ,
77100 "birth_date" : "1970-06-18" ,
78- "gender" : "Male " ,
79- "document_type" : "Passport " ,
101+ "gender" : "MaleTest " ,
102+ "document_type" : "PassportTest " ,
80103 "document_number" : "162401579884" ,
81- "expiry_date" : "06/18/2025 " ,
104+ "expiry_date" : "2025-06-18 " ,
82105 "nationality" : "Philippines" ,
83106 "birth_place_city" : "Caloocan" ,
84107 }
85-
108+ # create the gender type and document type
109+ gender_male = self .env ["gender.type" ].search ([("code" , "=" , "MaleTest" )], limit = 1 )
110+ if not gender_male :
111+ gender_male = self .env ["gender.type" ].create ({"code" : "MaleTest" , "value" : "MaleTest" })
112+ doc_type_passport = self .env ["g2p.id.type" ].search ([("name" , "=" , "PassportTest" )], limit = 1 )
113+ if not doc_type_passport :
114+ doc_type_passport = self .env ["g2p.id.type" ].create ({"name" : "PassportTest" })
86115 vals = self .applicant .scan_id_document_details_vals (details )
87116
88- self .assertEqual (
89- [
90- details ["family_name" ],
91- details ["given_name" ],
92- details ["birth_date" ],
93- details ["gender" ],
94- details ["birth_place_city" ],
95- ],
96- [
97- vals .get ("family_name" ),
98- vals .get ("given_name" ),
99- vals .get ("birthdate" ),
100- vals .get ("gender" ),
101- vals .get ("birth_place" ),
102- ],
103- )
117+ self .assertEqual (vals .get ("family_name" ), details ["family_name" ])
118+ self .assertEqual (vals .get ("given_name" ), details ["given_name" ])
119+ self .assertEqual (vals .get ("birthdate" ), details ["birth_date" ])
120+ self .assertEqual (vals .get ("birth_place" ), details ["birth_place_city" ])
121+ self .assertEqual (vals .get ("gender" ), gender_male .id )
122+
123+ self .assertIn ("reg_ids" , vals )
124+ self .assertEqual (len (vals ["reg_ids" ]), 1 )
125+
126+ reg_id_command = vals ["reg_ids" ][0 ]
127+ self .assertEqual (reg_id_command [0 ], 0 )
128+ self .assertEqual (reg_id_command [1 ], 0 )
129+
130+ reg_id_vals = reg_id_command [2 ]
131+ self .assertEqual (reg_id_vals .get ("id_type" ), doc_type_passport .id )
132+ self .assertEqual (reg_id_vals .get ("value" ), details ["document_number" ])
133+ self .assertEqual (reg_id_vals .get ("expiry_date" ), details ["expiry_date" ])
134+
135+ def test_04_scan_id_document_details_vals_invalid_date (self ):
136+ details = {
137+ "photo" : "" ,
138+ "given_name" : "Blue" ,
139+ "family_name" : "Red" ,
140+ "birth_date" : "1970-06-18" ,
141+ "gender" : "MaleTest" ,
142+ "document_type" : "PassportTest" ,
143+ "document_number" : "162401579884" ,
144+ "expiry_date" : "06/18/2025" ,
145+ "nationality" : "Philippines" ,
146+ "birth_place_city" : "Caloocan" ,
147+ }
148+ # create the gender type and document type
149+ gender_male = self .env ["gender.type" ].search ([("code" , "=" , "Male" )], limit = 1 )
150+ if not gender_male :
151+ gender_male = self .env ["gender.type" ].create ({"code" : "MaleTest" , "value" : "MaleTest" })
152+ doc_type_passport = self .env ["g2p.id.type" ].search ([("name" , "=" , "PassportTest" )], limit = 1 )
153+ if not doc_type_passport :
154+ doc_type_passport = self .env ["g2p.id.type" ].create ({"name" : "PassportTest" })
155+
156+ with self .assertRaises (UserError ):
157+ self .applicant .scan_id_document_details_vals (details )
0 commit comments