def subscribe_artifact(self, url, user): artifact_url = urlparse(url).path[1:-1].split("/") neighborhood = M.Neighborhood.query.find({ "url_prefix": "/" + artifact_url[0] + "/" }).first() if artifact_url[0] == "u": project = M.Project.query.find({ "shortname": artifact_url[0] + "/" + artifact_url[1], "neighborhood_id": neighborhood._id }).first() else: project = M.Project.query.find({ "shortname": artifact_url[1], "neighborhood_id": neighborhood._id }).first() appconf = M.AppConfig.query.find({ "options.mount_point": artifact_url[2], "project_id": project._id }).first() if appconf.url() == urlparse(url).path: M.Mailbox.subscribe(user_id=user._id, app_config_id=appconf._id, project_id=project._id) return True tool_package = h.get_tool_package(appconf.tool_name) classes = set() for depth, cls in dfs(M.Artifact, build_model_inheritance_graph()): if cls.__module__.startswith(tool_package + '.'): classes.add(cls) for cls in classes: for artifact in cls.query.find({"app_config_id": appconf._id}): if artifact.url() == urlparse(url).path: M.Mailbox.subscribe(user_id=user._id, app_config_id=appconf._id, project_id=project._id, artifact=artifact) return True return False
def subscribe_artifact(self, url, user): artifact_url = urlparse(url).path[1:-1].split("/") neighborhood = M.Neighborhood.query.find({ "url_prefix": "/" + artifact_url[0] + "/"}).first() if artifact_url[0] == "u": project = M.Project.query.find({ "shortname": artifact_url[0] + "/" + artifact_url[1], "neighborhood_id": neighborhood._id}).first() else: project = M.Project.query.find({ "shortname": artifact_url[1], "neighborhood_id": neighborhood._id}).first() appconf = M.AppConfig.query.find({ "options.mount_point": artifact_url[2], "project_id": project._id}).first() if appconf.url() == urlparse(url).path: M.Mailbox.subscribe( user_id=user._id, app_config_id=appconf._id, project_id=project._id) return True tool_package = h.get_tool_package(appconf.tool_name) classes = set() for depth, cls in dfs(M.Artifact, build_model_inheritance_graph()): if cls.__module__.startswith(tool_package + '.'): classes.add(cls) for cls in classes: for artifact in cls.query.find({"app_config_id": appconf._id}): if artifact.url() == urlparse(url).path: M.Mailbox.subscribe( user_id=user._id, app_config_id=appconf._id, project_id=project._id, artifact=artifact) return True return False
def test_get_tool_package(): assert h.get_tool_package('tickets') == 'forgetracker' assert h.get_tool_package('Wiki') == 'forgewiki' assert h.get_tool_package('wrong_tool') == ''
def test_get_tool_package(): assert h.get_tool_package("tickets") == "forgetracker" assert h.get_tool_package("Wiki") == "forgewiki" assert h.get_tool_package("wrong_tool") == ""