示例#1
0
    def test_consumer_versions_callback(self):
        cached_tracker = version_manager.CachedResourceConsumerTracker()
        self._set_consumer_versions_callback(cached_tracker)

        self.assertIn(TEST_VERSION_A,
                      cached_tracker.get_resource_versions(
                          TEST_RESOURCE_TYPE))
    def test_versions_ttl(self):

        cached_tracker = version_manager.CachedResourceConsumerTracker()
        with mock.patch('time.time') as time_patch:
            time_patch.return_value = 1
            cached_tracker.get_resource_versions(TEST_RESOURCE_TYPE)
            self.assertTrue(self.refreshed)
            self.refreshed = False

            time_patch.return_value = 2
            cached_tracker.get_resource_versions(TEST_RESOURCE_TYPE)
            self.assertFalse(self.refreshed)

            time_patch.return_value = 2 + version_manager.VERSIONS_TTL
            cached_tracker.get_resource_versions(TEST_RESOURCE_TYPE)
            self.assertTrue(self.refreshed)
示例#3
0
    def test_update_versions(self):
        cached_tracker = version_manager.CachedResourceConsumerTracker()
        self._set_consumer_versions_callback(cached_tracker)

        initial_versions = cached_tracker.get_resource_versions(
            TEST_RESOURCE_TYPE)

        initial_versions_2 = cached_tracker.get_resource_versions(
            TEST_RESOURCE_TYPE_2)

        cached_tracker.update_versions(
            CONSUMER_1, {TEST_RESOURCE_TYPE: TEST_VERSION_B,
                         TEST_RESOURCE_TYPE_2: TEST_VERSION_A})

        final_versions = cached_tracker.get_resource_versions(
            TEST_RESOURCE_TYPE)
        final_versions_2 = cached_tracker.get_resource_versions(
            TEST_RESOURCE_TYPE_2)

        self.assertNotEqual(initial_versions, final_versions)
        self.assertNotEqual(initial_versions_2, final_versions_2)
示例#4
0
    def test_versions_ttl(self):
        self.refreshed = False

        def consumer_versions_callback(consumer_tracker):
            consumer_tracker.set_versions(
                CONSUMER_1, {TEST_RESOURCE_TYPE: TEST_RESOURCE_VERSION_A})
            self.refreshed = True

        cached_tracker = version_manager.CachedResourceConsumerTracker()
        cached_tracker.set_consumer_versions_callback(
            consumer_versions_callback)
        with mock.patch('time.time') as time_patch:
            time_patch.return_value = 1
            cached_tracker.get_resource_versions(TEST_RESOURCE_TYPE)
            self.assertTrue(self.refreshed)
            self.refreshed = False

            time_patch.return_value = 2
            cached_tracker.get_resource_versions(TEST_RESOURCE_TYPE)
            self.assertFalse(self.refreshed)

            time_patch.return_value = 2 + version_manager.VERSIONS_TTL
            cached_tracker.get_resource_versions(TEST_RESOURCE_TYPE)
            self.assertTrue(self.refreshed)
 def test_plugin_does_not_implement_agentsdb_exception(self):
     self.get_plugin.return_value = object()
     cached_tracker = version_manager.CachedResourceConsumerTracker()
     self.assertRaises(exceptions.NoAgentDbMixinImplemented,
                       cached_tracker.get_resource_versions,
                       resources.QOS_POLICY)
示例#6
0
 def _test_exception_with_no_callback(self):
     cached_tracker = version_manager.CachedResourceConsumerTracker()
     self.assertRaises(exceptions.VersionsCallbackNotFound,
                       cached_tracker.get_resource_versions, [mock.ANY])