Пример #1
0
    def test_first_offer_is_zero_and_second_is_not_if_offer_not_accepted(self):
        strategy = BasicAvailabilityWeightedStrategy(DummyBlobAvailabilityTracker())
        peer = "1.1.1.1"

        blobs = strategy.price_model.blob_tracker.availability.keys()
        offer1 = strategy.make_offer(peer, blobs)

        offer2 = strategy.make_offer(peer, blobs)

        self.assertEquals(offer1.rate, 0.0)
        self.assertNotEqual(offer2.rate, 0.0)
Пример #2
0
    def test_first_offer_is_zero_and_second_is_not_if_offer_not_accepted(self):
        strategy = BasicAvailabilityWeightedStrategy(DummyBlobAvailabilityTracker())
        peer = "1.1.1.1"

        blobs = strategy.price_model.blob_tracker.availability.keys()
        offer1 = strategy.make_offer(peer, blobs)

        offer2 = strategy.make_offer(peer, blobs)

        self.assertEquals(offer1.rate, 0.0)
        self.assertNotEqual(offer2.rate, 0.0)
Пример #3
0
    def test_accept_zero_and_persist_if_accepted(self):
        host_strategy = BasicAvailabilityWeightedStrategy(DummyBlobAvailabilityTracker())
        client_strategy = BasicAvailabilityWeightedStrategy(DummyBlobAvailabilityTracker())

        client = "1.1.1.1"
        host = "1.1.1.2"
        blobs = host_strategy.price_model.blob_tracker.availability.keys()

        offer = client_strategy.make_offer(host, blobs)
        response1 = host_strategy.respond_to_offer(offer, client, blobs)
        client_strategy.update_accepted_offers(host, response1)

        offer = client_strategy.make_offer(host, blobs)
        response2 = host_strategy.respond_to_offer(offer, client, blobs)
        client_strategy.update_accepted_offers(host, response2)

        self.assertEquals(response1.is_too_low, False)
        self.assertEquals(response1.is_accepted, True)
        self.assertEquals(response1.rate, 0.0)

        self.assertEquals(response2.is_too_low, False)
        self.assertEquals(response2.is_accepted, True)
        self.assertEquals(response2.rate, 0.0)
Пример #4
0
    def test_accept_zero_and_persist_if_accepted(self):
        host_strategy = BasicAvailabilityWeightedStrategy(
            DummyBlobAvailabilityTracker())
        client_strategy = BasicAvailabilityWeightedStrategy(
            DummyBlobAvailabilityTracker())

        client = "1.1.1.1"
        host = "1.1.1.2"
        blobs = host_strategy.price_model.blob_tracker.availability.keys()

        offer = client_strategy.make_offer(host, blobs)
        response1 = host_strategy.respond_to_offer(offer, client, blobs)
        client_strategy.update_accepted_offers(host, response1)

        offer = client_strategy.make_offer(host, blobs)
        response2 = host_strategy.respond_to_offer(offer, client, blobs)
        client_strategy.update_accepted_offers(host, response2)

        self.assertFalse(response1.is_too_low)
        self.assertTrue(response1.is_accepted)
        self.assertEqual(response1.rate, 0.0)

        self.assertFalse(response2.is_too_low)
        self.assertTrue(response2.is_accepted)
        self.assertEqual(response2.rate, 0.0)