Esempio n. 1
0
 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
Esempio n. 2
0
    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)
Esempio n. 3
0
 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