def _get_active_balance(self, session, curs, data, log_user_id=True, for_update=True): balance_f = BalanceFilter(session, {'id': data['balance_id']}, {}, None) balance = balance_f.filter_one_obj(curs, for_update=for_update) if log_user_id: # setting user_id for correct action logging data['user_id'] = balance.user_id if not balance.is_active: raise BalanceDisabled() else: return balance
def test_add_balance(self, curs=None): sess = self.login_actor() user_id = 4444 # not used currency req = {'session_id': sess.session_id, 'user_id': user_id, 'currency_code': 'RUB'} self.assertRaises(RequestProcessingError, self.add_balance, **req) self.set_used_currencies(sess, ['RUB', 'BZD']) # correct balance creation req = {'session_id': sess.session_id, 'user_id': user_id, 'currency_code': 'RUB'} resp = self.add_balance(**req) self.check_response_ok(resp) balance_f = BalanceFilter(sess, {'id': resp['id']}, {}, {}) balance = balance_f.filter_one_obj(curs) self.assertEquals(True, balance.is_active) self.assertEquals(sess.environment_id, balance.environment_id) self.assertEquals(0, balance.overdraft_limit) self.assertEquals(0, balance.real_amount) self.assertEquals(0, balance.virtual_amount) self.assertEquals(0, balance.locked_amount) req = {'session_id': sess.session_id, 'user_id': user_id, 'currency_code': 'BZD', 'overdraft_limit': '102.30'} resp = self.add_balance(**req) self.check_response_ok(resp) balance_f = BalanceFilter(sess, {'id': resp['id']}, {}, {}) balance = balance_f.filter_one_obj(curs) self.assertEquals(True, balance.is_active) self.assertEquals(sess.environment_id, balance.environment_id) self.assertEquals(10230, balance.overdraft_limit) self.assertEquals(0, balance.real_amount) self.assertEquals(0, balance.virtual_amount) self.assertEquals(0, balance.locked_amount) # wrong currency code req = {'session_id': sess.session_id, 'user_id': user_id, 'currency_code': 'XXX'} self.assertRaises(RequestProcessingError, self.add_balance, **req) # adding duplicate balance req = {'session_id': sess.session_id, 'user_id': user_id, 'currency_code': 'RUB'} self.assertRaises(RequestProcessingError, self.add_balance, **req)