def setUp(self): self.platform = getPlatform() self.translator = Mock() self.settings = MythSettings(self.platform, self.translator) privateConfig = OnDemandConfig() self.settings.put('mysql_host', privateConfig.get('mysql_host')) self.settings.put('mysql_port', privateConfig.get('mysql_port')) self.settings.setMySqlDatabase(privateConfig.get('mysql_database')) self.settings.setMySqlUser(privateConfig.get('mysql_user')) self.settings.put('mysql_password', privateConfig.get('mysql_password')) self.settings.put('paths_recordedprefix', privateConfig.get('paths_recordedprefix')) self.bus = EventBus() self.domainCache = Mock() pools['dbPool'] = Pool( MythDatabaseFactory(settings=self.settings, translator=self.translator, domainCache=self.domainCache)) pools['connPool'] = Pool( ConnectionFactory(settings=self.settings, translator=self.translator, platform=self.platform, bus=self.bus))
def test_checkout_after_shutdown_raises_exception(self): p = Pool(WidgetFactory()) p.shutdown() try: p.checkout() except Exception, e: pass # Success
def test_shrink_reclaims_unused_resources_with_existing_checkouts(self): p = Pool(WidgetFactory()) w1 = p.checkout() w2 = p.checkout() w3 = p.checkout() p.checkin(w1) p.checkin(w2) p.shrink() self.assertEquals(1, p.size()) self.assertEquals(0, p.available())
def test_multiple_consumers(self): p = Pool(WidgetFactory()) numConsumers = 10 consumers = [] for c in xrange(numConsumers): consumers.append(self.multiple_consumers_thread(c, p, numConsumers)) for consumer in consumers: consumer.join() self.assertTrue(p.available() > 0) self.assertTrue(p.size() > 0) p.shutdown()
def test_state_on_construction(self): p = Pool(WidgetFactory()) self.assertEquals(0, p.size()) self.assertEquals(0, p.available()) p.shutdown() self.assertEquals(0, p.size()) self.assertEquals(0, p.available())
def test_checkin_after_shutdown_raises_exception(self): p = Pool(WidgetFactory()) w1 = p.checkout() p.shutdown() try: p.checkin(w1) except Exception, e: pass # Success
def test_multiple_consumers(self): p = Pool(WidgetFactory()) numConsumers = 10 consumers = [] for c in xrange(numConsumers): consumers.append(self.multiple_consumers_thread( c, p, numConsumers)) for consumer in consumers: consumer.join() self.assertTrue(p.available() > 0) self.assertTrue(p.size() > 0) p.shutdown()
def test_checkin_checkout(self): p = Pool(WidgetFactory()) w1 = p.checkout() log.debug(w1) self.assertEquals(1, p.size()) self.assertEquals(0, p.available()) p.checkin(w1) self.assertEquals(1, p.size()) self.assertEquals(1, p.available()) w2 = p.checkout() self.assertEquals(w1, w2) self.assertEquals(1, p.size()) self.assertEquals(0, p.available())
def test_grow_shrink_combos(self): p = Pool(WidgetFactory()) p.grow(5) p.shrink() p.grow(20) p.checkout() p.shrink() p.checkout() p.grow(3) self.assertEquals(3, p.size()) self.assertEquals(1, p.available())
def test_grow_expands_resource_pool_when_requested_size_greater_than_current_size(self): p = Pool(WidgetFactory()) p.grow(3) self.assertEquals(3, p.size()) self.assertEquals(3, p.available()) for i in range(5): p.checkout() p.grow(10) self.assertEquals(10, p.size()) self.assertEquals(10-5, p.available())
def test_grow_does_nothing_when_requested_size_less_than_or_equal_to_current_size(self): p = Pool(WidgetFactory()) for i in range(10): p.checkout() p.grow(5) self.assertEquals(10, p.size()) self.assertEquals(0, p.available()) p.grow(10) self.assertEquals(10, p.size()) self.assertEquals(0, p.available())
def test_grow_expands_resource_pool_when_requested_size_greater_than_current_size( self): p = Pool(WidgetFactory()) p.grow(3) self.assertEquals(3, p.size()) self.assertEquals(3, p.available()) for i in range(5): p.checkout() p.grow(10) self.assertEquals(10, p.size()) self.assertEquals(10 - 5, p.available())
def test_shrink_does_nothing_to_empty_pool(self): p = Pool(WidgetFactory()) p.shrink() self.assertEquals(0, p.size()) self.assertEquals(0, p.available())
def test_shrink_does_nothing_to_pool_when_available_is_zero(self): p = Pool(WidgetFactory()) p.checkout() p.shrink() self.assertEquals(1, p.size()) self.assertEquals(0, p.available())
def test_grow_does_nothing_when_requested_size_less_than_or_equal_to_current_size( self): p = Pool(WidgetFactory()) for i in range(10): p.checkout() p.grow(5) self.assertEquals(10, p.size()) self.assertEquals(0, p.available()) p.grow(10) self.assertEquals(10, p.size()) self.assertEquals(0, p.available())