def get_provider(url): protocol, path, params = m.parse_provider_url(url) dirname = os.path.dirname(__file__) provider_name = (protocol + "provider").lower() for filename in os.listdir(dirname): name, ext = os.path.splitext(os.path.basename(filename)) if name == "__init__" or name == "__main__" or ext != ".py": continue temp = SourceFileLoader(name, os.path.join(dirname, filename)).load_module() for entryname in dir(temp): if entryname.lower() != provider_name: continue return getattr(temp, entryname)(path, params) raise Exception("Provider does not found")
def test_parse_provider_url_wo_params(self): protocol, path, params = m.parse_provider_url("test://node1/à faire") self.assertEqual(protocol, "test") self.assertEqual(path, ["node1", "à faire"]) self.assertEqual(params, {})
def test_parse_provider_url(self): protocol, path, params = m.parse_provider_url( "test://node1/node2?param1=2¶m2=1") self.assertEqual(protocol, "test") self.assertEqual(path, ["node1", "node2"]) self.assertEqual(params, {"param1": "2", "param2": "1"})
def test_parse_provider_url(self): protocol, path, params = m.parse_provider_url("test://node1/node2?param1=2¶m2=1") self.assertEqual(protocol, "test") self.assertEqual(path, ["node1", "node2"]) self.assertEqual(params, {"param1": "2", "param2": "1"})