def test_unwatch(self): w = CQDEWatchlistStore() w.watch_project(32, 23, "immediate") w.watch_project(34, 23, "daily") w.unwatch_project(32, 23) watchlist = w.get_projects_by_user(32) self.assertTrue(len(watchlist) == 0) watchlist = w.get_projects_by_user(34) self.assertTrue(len(watchlist) == 1) watchlist = w.get_watchers_by_project(23) self.assertTrue(len(watchlist) == 1) self.assertFalse(w.is_watching(32, 23))
def test_watch(self): w = CQDEWatchlistStore() self.assertTrue(w) w.watch_project(32, 23) w.watch_project(34, 23, "daily") watchlist = w.get_projects_by_user(32) self.assertTrue(len(watchlist) == 1) self.assertTrue(watchlist[0].user_id == 32) self.assertTrue(watchlist[0].project_id == 23) self.assertTrue(watchlist[0].notification == "immediate") watchlist = w.get_watchers_by_project(23) self.assertTrue(len(watchlist) == 2) self.assertTrue(w.is_watching(32, 23)) self.assertTrue(w.is_watching(34, 23))
def _get_status(self, req, project_id): """ Returns the watching status as a tuple: - Number of followers - True/False whether current user is already following or not :param req: Trac Request :return: Status :rtype: tuple """ # Load watching info userstore = get_userstore() user = userstore.getUser(req.authname) watchstore = CQDEWatchlistStore() is_watching = False # NOTE: Some environments may not have special anonymous/authenticated users, thus user can be None if user: is_watching = watchstore.is_watching(user.id, project_id) watchers = len(watchstore.get_watchers_by_project(project_id)) return watchers, is_watching