def test_real(self): self.add_coins() self.assertFalse(self.agent0.has_active_ep()) self.agent0.register_my_offer(self.offer0) self.agent1.register_my_offer(self.offer1) for i in range(3): self.agent0._update_state() self.agent1._update_state() self.assertFalse(self.agent0.has_active_ep()) self.assertFalse(self.agent1.has_active_ep()) m0 = self.comm0.get_messages() m1 = self.comm1.get_messages() self.assertEquals(len(m0), 2) self.assertEquals(len(m1), 2) self.assertEquals(self.offer0.get_data(), m0[1]['offer']) self.assertEquals(self.offer0.get_data(), m1[1]['offer']) # expire offers offer2 = MyEOffer(None, self.cv0, self.cv1) self.agent0.register_my_offer(offer2) self.agent0.update() self.agent0.update() self.agent1.update() self.agent0.cancel_my_offer(offer2) self.agent0.update() self.agent1.update() self.assertFalse(self.agent0.has_active_ep()) self.assertFalse(self.agent1.has_active_ep()) offer3 = MyEOffer(None, self.cv1, self.cv0) self.agent0.make_exchange_proposal(offer3, offer2) self.assertRaises(Exception, self.agent0.make_exchange_proposal, offer3, offer2) ep = MyEProposal(self.ewc, offer3, offer2) def raiseException(x): raise Exception() self.agent0.set_event_handler('accept_ep', raiseException) # methods that should do nothing now that we have an active ep self.agent0.accept_exchange_proposal(ep) self.agent0.match_offers() self.agent0.register_their_offer(offer3) self.agent0.accept_exchange_proposal(ep) ep2 = MyEProposal(self.ewc, offer3, offer2) self.agent0.dispatch_exchange_proposal(ep2.get_data()) # test a few corner cases self.agent0.register_my_offer(offer2) offer2.refresh(-1000) self.assertTrue(offer2.expired()) self.agent0.service_my_offers() self.agent0.cancel_my_offer(offer2) self.agent0.register_their_offer(offer3) offer3.refresh(-1000) self.agent0.service_their_offers()
def test_real(self): self.add_coins() self.assertFalse(self.agent0.has_active_ep()) self.agent0.register_my_offer(self.offer0) self.agent1.register_my_offer(self.offer1) for i in range(3): self.agent0._update_state() self.agent1._update_state() self.assertFalse(self.agent0.has_active_ep()) self.assertFalse(self.agent1.has_active_ep()) m0 = self.comm0.get_messages() m1 = self.comm1.get_messages() self.assertEquals(len(m0), 2) self.assertEquals(len(m1), 2) self.assertEquals(self.offer0.get_data(), m0[1]["offer"]) self.assertEquals(self.offer0.get_data(), m1[1]["offer"]) # expire offers offer2 = MyEOffer(None, self.cv0, self.cv1) self.agent0.register_my_offer(offer2) self.agent0.update() self.agent0.update() self.agent1.update() self.agent0.cancel_my_offer(offer2) self.agent0.update() self.agent1.update() self.assertFalse(self.agent0.has_active_ep()) self.assertFalse(self.agent1.has_active_ep()) offer3 = MyEOffer(None, self.cv1, self.cv0) self.agent0.make_exchange_proposal(offer3, offer2) self.assertRaises(Exception, self.agent0.make_exchange_proposal, offer3, offer2) ep = MyEProposal(self.ewc, offer3, offer2) def raiseException(x): raise Exception() self.agent0.set_event_handler("accept_ep", raiseException) # methods that should do nothing now that we have an active ep self.agent0.accept_exchange_proposal(ep) self.agent0.match_offers() self.agent0.register_their_offer(offer3) self.agent0.accept_exchange_proposal(ep) ep2 = MyEProposal(self.ewc, offer3, offer2) self.agent0.dispatch_exchange_proposal(ep2.get_data()) # test a few corner cases self.agent0.register_my_offer(offer2) offer2.refresh(-1000) self.assertTrue(offer2.expired()) self.agent0.service_my_offers() self.agent0.cancel_my_offer(offer2) self.agent0.register_their_offer(offer3) offer3.refresh(-1000) self.agent0.service_their_offers()
def test_get_data_etx_data(self): ewctrl = MockEWalletController() a = EOffer(1, "A", "B") b = EOffer(1, "B", "A") src = MyEProposal(ewctrl, a, b) src.etx_data = "etx_data" result = src.get_data() expected = {'pid':src.pid, 'offer':a.get_data(), 'etx_data': "etx_data"} self.assertEqual(result, expected) self.assertEqual(result.get('etx_spec'), None)
def test_get_data_etx_data(self): ewctrl = MockEWalletController() a = EOffer(1, "A", "B") b = EOffer(1, "B", "A") src = MyEProposal(ewctrl, a, b) src.etx_data = "etx_data" result = src.get_data() expected = { 'pid': src.pid, 'offer': a.get_data(), 'etx_data': "etx_data" } self.assertEqual(result, expected) self.assertEqual(result.get('etx_spec'), None)
def test_construction(self): ewctrl = MockEWalletController() a = EOffer(1, "A", "B") b = EOffer(1, "B", "A") mep = MyEProposal(ewctrl, a, b) self.assertEqual(mep.my_offer, b)