def _register_resource_duplicate(self, resource1, resource2): '''This method executes register resource test case for duplicate exception.''' registry = ResourcesRegistry() registry.register_resource(resource1) with self.assertRaises(FantasticoRoaDuplicateError): registry.register_resource(resource2)
def test_find_resource_by_url_version_notfound(self): '''This test case ensures None is returned if the resource url is found but the requested version is not registered.''' registry = ResourcesRegistry() registry.register_resource(Resource(name="app-setting", url="/app-settings", version="1.0")) resource = registry.find_by_url("/app-settings", 2.0) self.assertIsNone(resource)
def test_unregister_resource_versionnotfound(self): '''This test case ensures no exception is raised if the given resource version is not registered.''' registry = ResourcesRegistry() registry.register_resource(Resource(name="for_test", url="/for_test", version=2.0)) registry.unregister_resource("for_test", 1.0) self.assertIsNone(registry.find_by_name("for_test", 1.0))
def test_find_resource_by_url_version_notfound(self): '''This test case ensures None is returned if the resource url is found but the requested version is not registered.''' registry = ResourcesRegistry() registry.register_resource( Resource(name="app-setting", url="/app-settings", version="1.0")) resource = registry.find_by_url("/app-settings", 2.0) self.assertIsNone(resource)
def test_find_resource_by_name_version_notfound(self): '''This test case ensures no exception is raised when we try to retrieve a resource which does not have the version requested registered.''' registry = ResourcesRegistry() registry.register_resource(Resource(name="app-setting", url="/app-settings")) resource = registry.find_by_name("app-setting", 2.0) self.assertIsNone(resource)
def test_unregister_resource_versionnotfound(self): '''This test case ensures no exception is raised if the given resource version is not registered.''' registry = ResourcesRegistry() registry.register_resource( Resource(name="for_test", url="/for_test", version=2.0)) registry.unregister_resource("for_test", 1.0) self.assertIsNone(registry.find_by_name("for_test", 1.0))
def test_find_resource_by_name_version_notfound(self): '''This test case ensures no exception is raised when we try to retrieve a resource which does not have the version requested registered.''' registry = ResourcesRegistry() registry.register_resource( Resource(name="app-setting", url="/app-settings")) resource = registry.find_by_name("app-setting", 2.0) self.assertIsNone(resource)
def test_unregister_resource_latestnotallowed(self): '''This test case ensures that nothing happens if latest is given as version.''' registry = ResourcesRegistry() expected_name = "app-setting" expected_url = "/app-setting" resource1 = Resource(name=expected_name, url=expected_url, version=1.0) registry.register_resource(resource1) registry.unregister_resource(expected_name, version="latest") self.assertEqual(registry.find_by_name(expected_name), resource1) self.assertEqual(registry.find_by_url(expected_url), resource1)
def _find_resource_by_name(self, name, version): '''This method provides a test case template for find by name method.''' resource = Resource(name=name, url="/%ss" % name) registry = ResourcesRegistry() registry.register_resource(resource) if version != "latest": found_resource = registry.find_by_name(name, version) else: found_resource = registry.find_by_name(name) self.assertEqual(resource.name, found_resource.name) self.assertEqual(resource.version, found_resource.version) self.assertEqual(resource.url, found_resource.url) self.assertEqual(resource.model, found_resource.model)
def test_all_resources_list(self): '''This test case ensures registered resources can be listed correctly (sorted by name).''' resource1 = Resource(name="triplex", url="/triplex", version=2.0) resource2 = Resource(name="triplex", url="/triplex", version=1.0) resource3 = Resource(name="abc", url="/abc", version=1.0) registry = ResourcesRegistry() registry.register_resource(resource1) registry.register_resource(resource2) registry.register_resource(resource3) expected_resources = [resource3, resource3, resource2, resource1, resource1] resources = registry.all_resources() self.assertEqual(resources, expected_resources)
def _find_resource_by_url(self, url, version): '''This method provides a test case template for find by url method.''' resource = Resource(name=url[1:-1], url=url) registry = ResourcesRegistry() registry.register_resource(resource) if version != "latest": found_resource = registry.find_by_url(url, version) else: found_resource = registry.find_by_url(url) self.assertEqual(resource.name, found_resource.name) self.assertEqual(resource.version, found_resource.version) self.assertEqual(resource.url, found_resource.url) self.assertEqual(resource.model, found_resource.model)
def test_unregister_resource_noremaining_version(self): '''This test case ensures latest version is also removed when all resource versions are removed.''' registry = ResourcesRegistry() expected_name = "app-setting" expected_url = "/app-setting" resource1 = Resource(name=expected_name, url=expected_url, version=1.0) registry.register_resource(resource1) self.assertEqual(registry.find_by_name(expected_name), resource1) self.assertEqual(registry.find_by_url(expected_url), resource1) registry.unregister_resource(expected_name, version=1.0) self.assertIsNone(registry.find_by_name(expected_name)) self.assertIsNone(registry.find_by_url(expected_url))
def test_unregister_resource_ok(self): '''This test case ensures unregister is ok for registered resources.''' registry = ResourcesRegistry() expected_name = "app-setting" expected_url = "/app-setting" resource1 = Resource(name=expected_name, url=expected_url, version=1.0) resource2 = Resource(name=expected_name, url=expected_url, version=2.0) registry.register_resource(resource1) registry.register_resource(resource2) registry.unregister_resource(expected_name, 2.0) self.assertIsNone(registry.find_by_name(expected_name, 2.0)) self.assertIsNone(registry.find_by_url(expected_url, 2.0)) self.assertEqual(registry.find_by_name(expected_name), resource1) self.assertEqual(registry.find_by_url(expected_url), resource1)
def test_all_resources_list(self): '''This test case ensures registered resources can be listed correctly (sorted by name).''' resource1 = Resource(name="triplex", url="/triplex", version=2.0) resource2 = Resource(name="triplex", url="/triplex", version=1.0) resource3 = Resource(name="abc", url="/abc", version=1.0) registry = ResourcesRegistry() registry.register_resource(resource1) registry.register_resource(resource2) registry.register_resource(resource3) expected_resources = [ resource3, resource3, resource2, resource1, resource1 ] resources = registry.all_resources() self.assertEqual(resources, expected_resources)