Esempio n. 1
0
    def test_bank_card_manager(self):
        with patch('core.models.profile.bankcard.DEBUG', True):
            b1 = BankCard.add(self.local_account.id, '13800138000',
                              '6222980000000002', '1', '440113', '440000',
                              '大望路支行', False)
            b2 = BankCard.add(self.local_account.id, '13800138001',
                              '6222980000010001', '2', '440113', '440000',
                              '大望路支行', False)

        cards = self.bankcards.get_all()
        assert len(cards) == 2

        assert cards[0].mobile_phone == b1.mobile_phone
        assert cards[0].card_number == b1.card_number
        assert cards[0].local_bank_name == b1.local_bank_name

        assert cards[1].mobile_phone == b2.mobile_phone
        assert cards[1].card_number == b2.card_number
        assert cards[1].local_bank_name == b2.local_bank_name

        self.bankcards.add(mobile_phone='13800138002',
                           card_number='6222980000030009',
                           bank_id='3',
                           city_id='440113',
                           province_id='440000',
                           local_bank_name='西二旗支行',
                           is_default=False)

        cards = self.bankcards.get_all()
        assert len(cards) == 3

        assert cards[2].mobile_phone == '13800138002'
        assert cards[2].card_number == '6222980000030009'
        assert cards[2].local_bank_name == '西二旗支行'
Esempio n. 2
0
    def test_create(self):
        with patch('core.models.profile.bankcard.DEBUG', True):
            b1 = BankCard.add(self.local_account.id, '13800138000',
                              '6222980000000002', '1', '440113', '440000',
                              '大望路支行', True)
            b2 = BankCard.add(self.local_account.id, '13800138001',
                              '6222980000010001', '2', '440113', '440000',
                              '西二旗支行', False)
            assert b1
            assert b2

        bank_card = BankCard.get(b1.id_)
        assert bank_card.mobile_phone == '13800138000'
        assert bank_card.card_number == '6222980000000002'
        assert bank_card.city_id == '440113'
        assert bank_card.province_id == '440000'
        assert bank_card.local_bank_name == '大望路支行'
        assert bank_card.is_default

        bank_card = BankCard.get(b2.id_)
        assert bank_card.mobile_phone == '13800138001'
        assert bank_card.card_number == '6222980000010001'
        assert bank_card.city_id == '440113'
        assert bank_card.province_id == '440000'
        assert bank_card.local_bank_name == '西二旗支行'
        assert bank_card.is_default is False
Esempio n. 3
0
    def test_discard(self):
        def create_bankcard_in_the_same_bank():
            return BankCard.add(self.local_account.id, '13800138000',
                                '6222980000010001', '1', '440113', '440000',
                                '大望路支行', False)

        with patch('core.models.profile.bankcard.DEBUG', True):
            bankcard = BankCard.add(self.local_account.id, '13800138000',
                                    '6222980000000002', '1', '440113',
                                    '440000', '大望路支行', False)

            with raises(BankConflictError):
                create_bankcard_in_the_same_bank()

            bankcard.discard()
            assert self.bankcards.get_all() == []
            assert self.bankcards.get_latest() is None
            assert self.bankcards.get_last_used() is None

            new_bankcard = create_bankcard_in_the_same_bank()
            assert new_bankcard

        card_ids = {c.id_ for c in self.bankcards.get_all()}
        assert bankcard.id_ not in card_ids
        assert new_bankcard.id_ in card_ids
        assert BankCard.get(bankcard.id_).status is BankCard.Status.discarded
        assert self.bankcards.get_latest().id_ == new_bankcard.id_
        assert self.bankcards.get_last_used().id_ == new_bankcard.id_
Esempio n. 4
0
def generate_fake_transactions():
    user = Account.get_by_alias('*****@*****.**')
    if not user:
        return
    with patch('core.models.profile.bankcard.DEBUG', True):
        b1 = BankCard.add(
            user_id=user.id_,
            mobile_phone='13800138000',
            card_number='6222000000000009',
            bank_id='4',  # 建设银行
            city_id='110100',  # 朝阳
            province_id='110000',  # 北京
            local_bank_name='西夏支行',
            is_default=True)
        b2 = BankCard.add(
            user_id=user.id_,
            mobile_phone='13800138000',
            card_number='6222000000010008',
            bank_id='10002',  # 中信银行
            city_id='110100',  # 朝阳
            province_id='110000',  # 北京
            local_bank_name='天龙寺支行',
            is_default=True)

    bcolors.run(repr(b1), key='wallet')
    bcolors.run(repr(b2), key='wallet')

    wallet_account = WalletAccount.get_or_add(user, zhongshan)
    t1 = WalletTransaction.add(
        wallet_account, b1, decimal.Decimal('40'),
        WalletTransaction.Type.purchase, uuid.uuid4().hex, WalletTransaction.Status.failure)
    t2 = WalletTransaction.add(
        wallet_account, b1, decimal.Decimal('42'),
        WalletTransaction.Type.purchase, uuid.uuid4().hex, WalletTransaction.Status.success)
    t3 = WalletTransaction.add(
        wallet_account, b2, decimal.Decimal('10'),
        WalletTransaction.Type.redeeming, uuid.uuid4().hex, WalletTransaction.Status.success)

    bcolors.run(repr(t1), key='wallet')
    bcolors.run(repr(t2), key='wallet')
    bcolors.run(repr(t3), key='wallet')
Esempio n. 5
0
    def add_bankcard(self,
                     user_id,
                     bank_id='10005',
                     card_number='6222980000000002',
                     mobile_phone='13800138000',
                     division_code='440300',
                     local_bank_name=u'深大支行',
                     is_default=False):
        from core.models.profile.bankcard import BankCard

        with patch('core.models.profile.bankcard.DEBUG', True):
            province_code = division_code[:2] + '00'
            prefecture_code = division_code[:4] + '00'
            return BankCard.add(user_id, mobile_phone, card_number, bank_id,
                                prefecture_code, province_code,
                                local_bank_name, is_default)
Esempio n. 6
0
    def test_failed_to_create(self):
        with patch('core.models.profile.bankcard.DEBUG', True):
            BankCard.add(self.local_account.id, '13800138000',
                         '6222980000000002', '1', '440113', '440000', '大望路支行',
                         False)

            with raises(CardConflictError):
                BankCard.add(self.local_account.id, '13800138000',
                             '6222980000000002', '2', '440113', '440000',
                             '大望路支行', False)

            with raises(BankConflictError):
                BankCard.add(self.local_account.id, '13800138000',
                             '6222980000010001', '1', '440113', '440000',
                             '大望路支行', False)
Esempio n. 7
0
    def test_delete_and_restore(self):
        with patch('core.models.profile.bankcard.DEBUG', True):
            b1 = BankCard.add(self.local_account.id, '13800138000',
                              '6222980000000002', '1', '440113', '440000',
                              '大望路支行', False)
            assert b1

        BankCard.delete_by_card_number('6222980000000002',
                                       self.local_account.id)
        b2 = BankCard.get(b1.id_)
        assert b2 is None

        BankCard.restore(b1.id_, self.local_account.id)
        b3 = BankCard.get(b1.id_)
        assert b3

        assert b3.mobile_phone == '13800138000'
        assert b3.card_number == '6222980000000002'
        assert b3.city_id == '440113'
        assert b3.province_id == '440000'
        assert b3.local_bank_name == '大望路支行'
Esempio n. 8
0
def profile_bankcard(sqlstore, couchstore, redis):
    with patch('core.models.profile.bankcard.DEBUG', True):
        return BankCard.add('1', '13800138000', '6222980000000002', '1',
                            '440113', '440000', '大望路支行', True)
Esempio n. 9
0
 def create_bankcard_in_the_same_bank():
     return BankCard.add(self.local_account.id, '13800138000',
                         '6222980000010001', '1', '440113', '440000',
                         '大望路支行', False)