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)