示例#1
0
    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))
示例#2
0
 def test_checkout_after_shutdown_raises_exception(self):
     p = Pool(WidgetFactory())
     p.shutdown()
     
     try:
         p.checkout()
     except Exception, e:
         pass  # Success
示例#3
0
 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())
示例#4
0
 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()
示例#5
0
 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())
示例#6
0
    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())
示例#7
0
 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())
示例#8
0
    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
示例#9
0
 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()
示例#10
0
 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())
示例#11
0
 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())
示例#12
0
 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())
示例#13
0
 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())
示例#14
0
    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())
示例#15
0
 def test_shrink_does_nothing_to_empty_pool(self):
     p = Pool(WidgetFactory())
     p.shrink()
     self.assertEquals(0, p.size())
     self.assertEquals(0, p.available())
示例#16
0
 def test_shrink_does_nothing_to_empty_pool(self):
     p = Pool(WidgetFactory())
     p.shrink()
     self.assertEquals(0, p.size())
     self.assertEquals(0, p.available())
示例#17
0
    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())
示例#18
0
 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())
示例#19
0
 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())
示例#20
0
 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())
示例#21
0
    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())