def save_database(db_user: User, slug: str, path: str, history: str = '') -> None: """ Saves a path into the database :param db_user: User :param slug: Issue.slug :param path: String :param history: String :return: None """ LOG.debug("Path: %s, history: %s, slug: %s", path, history, slug) if path.startswith('/discuss'): path = path[len('/discuss'):] path = path[path.index('/') if '/' in path else 0:] db_issues = DBDiscussionSession.query(Issue).all() slugs = [issue.slug for issue in db_issues] if not any([slug in path for slug in slugs]) or slug not in path: path = '/{}/{}'.format(slug, path) if len(history) > 0: history = '?history=' + history LOG.debug("Saving %s%s", path, history) DBDiscussionSession.add( History(author_uid=db_user.uid, path=path + history)) DBDiscussionSession.flush()
def test_get_user_history(self): self.config.testing_securitypolicy(userid='Tobias', permissive=True) DBDiscussionSession.add( History(author_uid=3, path='http://localhost:4284/discuss/cat-or-dog')) transaction.commit() self.config.testing_securitypolicy(userid='Tobias', permissive=True) request = construct_dummy_request() response = get_user_history(request) self.assertIsNotNone(response) self.assertLessEqual(0, len(response))
def test_delete_user_history(self): self.config.testing_securitypolicy(userid='Tobias', permissive=True) DBDiscussionSession.add( History(author_uid=3, path='http://localhost:4284/discuss/cat-or-dog')) transaction.commit() request = construct_dummy_request() response = delete_user_history(request) transaction.commit() self.assertTrue(response) db_his = DBDiscussionSession.query(History).filter_by( author_uid=2).count() self.assertEqual(db_his, 0)