예제 #1
0
    def test_VoucherRedeemer(self):
        switch_dbuser('testadmin')

        voucher_proxy = TestSalesforceVoucherProxy()
        self.registerUtility(voucher_proxy, ISalesforceVoucherProxy)

        # Mark has some unredeemed vouchers so set one of them as pending.
        mark = getUtility(IPersonSet).getByName('mark')
        voucher = voucher_proxy.getUnredeemedVouchers(mark)[0]
        product = self.factory.makeProduct(owner=mark)
        redeemed_id = voucher.voucher_id
        self.factory.makeCommercialSubscription(
            product, False, 'pending-%s' % redeemed_id)
        transaction.commit()

        self.runFrequently()

        # There should now be 0 pending vouchers in Launchpad.
        num_rows = IMasterStore(CommercialSubscription).find(
            CommercialSubscription,
            Like(CommercialSubscription.sales_system_id, u'pending-%')
            ).count()
        self.assertThat(num_rows, Equals(0))
        # Salesforce should also now have redeemed the voucher.
        unredeemed_ids = [
            v.voucher_id for v in voucher_proxy.getUnredeemedVouchers(mark)]
        self.assertNotIn(redeemed_id, unredeemed_ids)