- Timestamp:
- 6 Dec 2012, 08:42:16 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
main/waeup.uniben/trunk/src/waeup/uniben/interswitch/tests.py
r9731 r9775 16 16 ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 17 ## 18 import os 18 19 from zope.component import createObject, getUtility 19 20 from zope.catalog.interfaces import ICatalog … … 58 59 self.browser.contents) 59 60 ctrl = self.browser.getControl(name='val_id') 60 value = ctrl.options[0]61 self.browser.getLink( value).click()61 self.value = ctrl.options[0] 62 self.browser.getLink(self.value).click() 62 63 self.assertMatches('...Amount Authorized...', 63 64 self.browser.contents) … … 122 123 ctrl = self.browser.getControl(name='val_id') 123 124 value = ctrl.options[1] 125 self.assertEqual(self.student['payments'][value].provider_amt, 0.0) 126 self.assertEqual(self.student['payments'][value].gateway_amt, 0.0) 124 127 self.browser.getLink(value).click() 125 128 self.browser.getLink("CollegePAY", index=0).click() 129 # Split amounts have been set. 130 self.assertEqual(self.student['payments'][value].provider_amt, 1500.0) 131 self.assertEqual(self.student['payments'][value].gateway_amt, 150.0) 126 132 self.assertMatches('...<input type="hidden" name="pay_item_id" value="5701" />...', 127 133 self.browser.contents) … … 148 154 # Manager can access InterswitchForm 149 155 self.browser.getLink("CollegePAY", index=0).click() 156 self.assertEqual(self.student['payments'][value].provider_amt, 1500.0) 157 self.assertEqual(self.student['payments'][value].gateway_amt, 150.0) 150 158 self.assertMatches('...<input type="hidden" name="pay_item_id" value="5702" />...', 151 159 self.browser.contents) … … 176 184 # Manager can access InterswitchForm 177 185 self.browser.getLink("CollegePAY", index=0).click() 186 self.assertEqual(self.student['payments'][value].provider_amt, 0.0) 187 self.assertEqual(self.student['payments'][value].gateway_amt, 150.0) 178 188 self.assertMatches('...<input type="hidden" name="pay_item_id" value="5704" />...', 179 189 self.browser.contents) … … 201 211 # Manager can access InterswitchForm 202 212 self.browser.getLink("CollegePAY", index=0).click() 213 self.assertEqual(self.student['payments'][value].provider_amt, 0.0) 214 self.assertEqual(self.student['payments'][value].gateway_amt, 150.0) 203 215 self.assertMatches('...<input type="hidden" name="pay_item_id" value="5705" />...', 204 216 self.browser.contents) … … 237 249 @external_test 238 250 def test_webservice(self): 239 251 # First we have open InterswitchPageStudent to set provider_amt 252 # and gateway_amt 253 self.browser.open(self.payment_url + '/goto_interswitch') 254 # Now we can call the webservice 240 255 self.browser.open(self.payment_url + '/request_webservice') 241 256 self.assertMatches('...Unsuccessful callback...', … … 250 265 self.assertEqual(len(results), 1) 251 266 self.assertEqual(results[0].p_state, 'failed') 267 268 # Let's replace the p_id with a valid p_id of the Uniben 269 # live system. This is definitely not an appropriate 270 # solution for testing, but we have no choice since 271 # Interswitch doesn't provide any interface 272 # for testing. 273 payment = self.student['payments'][self.value] 274 payment.p_id = 'p3547789850240' 275 self.browser.open(self.payment_url + '/request_webservice') 276 self.assertMatches('...Callback amount does not match...', 277 self.browser.contents) 278 # The payment is now in state failed ... 279 self.assertMatches('...<span>Failed</span>...', 280 self.browser.contents) 281 # Let's replace the amount autorized with the amount of the 282 # live system payment 283 payment.amount_auth = payment.r_amount_approved 284 self.browser.open(self.payment_url + '/request_webservice') 285 self.assertMatches('...Successful payment...', 286 self.browser.contents) 287 # The payment is now in state paid ... 288 self.assertMatches('...<span>Paid</span>...', 289 self.browser.contents) 290 # ... and the catalog has been updated 291 cat = getUtility(ICatalog, name='payments_catalog') 292 results = list( 293 cat.searchResults(p_state=('paid', 'paid'))) 294 self.assertEqual(len(results), 1) 295 self.assertEqual(results[0].p_state, 'paid') 296 # Approval is logged in students.log ... 297 logfile = os.path.join( 298 self.app['datacenter'].storage, 'logs', 'students.log') 299 logcontent = open(logfile).read() 300 self.assertTrue( 301 'zope.mgr - ' 302 'waeup.uniben.interswitch.browser.InterswitchPaymentRequestWebservicePageStudent - ' 303 'B1000000 - successful schoolfee payment: p3547789850240\n' 304 in logcontent) 305 # ... and in payments.log 306 logfile = os.path.join( 307 self.app['datacenter'].storage, 'logs', 'payments.log') 308 logcontent = open(logfile).read() 309 self.assertTrue( 310 '"zope.mgr",B1000000,p3547789850240,schoolfee,' 311 '12000.0,00,1500.0,150.0,0.0,,,\n' 312 in logcontent) 313 252 314 253 315 class InterswitchTestsApplicants(ApplicantsFullSetup):
Note: See TracChangeset for help on using the changeset viewer.