Beispiel #1
0
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()
Beispiel #2
0
 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))
Beispiel #3
0
 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)