Exemple #1
0
    def test_2(self):
        """basic resource loading test."""
        pool = ResourcePool(cache_size=None)
        pool.register_resource(ResourceA)
        pool.register_resource(ResourceB)

        # test that resource matches our request, and its data isn't loaded
        variables = dict(foo="hey", bah="ho")
        resource = pool.get_resource("resource.a", variables)
        self.assertTrue(isinstance(resource, ResourceA))
        self.assertEqual(resource.variables, variables)

        # test that a request via a resource's own handle gives the same resource
        resource_ = pool.get_resource_from_handle(resource.handle)
        self.assertTrue(resource_ is resource)

        # test that the same request again gives the cached resource
        resource_ = pool.get_resource("resource.a", variables)
        self.assertTrue(resource_ is resource)

        # clear caches, then test that the same request gives a new resource
        pool.clear_caches()
        resource_ = pool.get_resource("resource.a", variables)
        self.assertEqual(resource_.variables, variables)
        self.assertTrue(resource_ is not resource)
Exemple #2
0
    def test_1(self):
        """resource registration test."""
        pool = ResourcePool(cache_size=None)

        with self.assertRaises(ResourceError):
            pool.get_resource("resource.a")

        pool.register_resource(ResourceA)
        pool.register_resource(ResourceB)

        with self.assertRaises(ResourceError):
            pool.register_resource(ResourceBad)

        resource_a = pool.get_resource("resource.a")
        resource_b = pool.get_resource("resource.b")
        self.assertTrue(isinstance(resource_a, ResourceA))
        self.assertTrue(isinstance(resource_b, ResourceB))