def test_rejected_atomic(self): main_account = Account.get_main_account() with patch('algorand.utils.transaction_info') as mock_transaction_info: mock_transaction_info.return_value = { 'pool-error': '', 'txn': { 'txn': { 'lv': utils.status()['last-round'] - 1000 } } } tx0 = Transaction.prepare_transfer(main_account, self.user_account, 0.21, Transaction.ALGO, Transaction.OPT_IN) tx1 = Transaction.prepare_transfer(self.user_account, self.user_account, 0, Transaction.USDC, Transaction.OPT_IN) tx2 = Transaction.prepare_transfer(main_account, self.user_account, 0.1, Transaction.USDC, Transaction.OPT_IN) txids = Transaction.atomic_transfer([tx0, tx1, tx2]) for txid in txids: self.assertTrue(utils.wait_for_confirmation(txid)) verify_transactions() self.assertEqual( Transaction.objects.filter( status=Transaction.REJECTED).count(), 3) self.assertEqual(Transaction.objects.count(), 6) one_without_prev = False for txn in Transaction.objects.filter(retries=1): if not one_without_prev and txn.atomic_prev is None: one_without_prev = True continue self.assertFalse(txn.atomic_prev is None)