Ejemplo n.º 1
0
    def test_set_new_undercut(self):
        db_argument = DBDiscussionSession.query(Argument).get(1)

        before = DBDiscussionSession.query(Argument).filter_by(
            argument_uid=1).all()
        set_new_undercut(1, db_argument, self.db_user, self.db_issue)
        after = DBDiscussionSession.query(Argument).filter_by(
            argument_uid=1).all()
        self.assertLess(len(before), len(after))
Ejemplo n.º 2
0
    def test_set_new_undercut(self):
        db_argument = DBDiscussionSession.query(Argument).get(1)

        before = DBDiscussionSession.query(Argument).filter_by(
            argument_uid=1).all()
        set_new_undercut(1, db_argument, self.user_christian,
                         self.issue_cat_or_dog)
        after = DBDiscussionSession.query(Argument).filter_by(
            argument_uid=1).all()
        self.assertLess(len(before), len(after))
Ejemplo n.º 3
0
def insert_new_premises_for_argument(premisegroup: List[str], current_attack,
                                     arg_uid, db_issue: Issue, db_user: User):
    """
    Creates premises for a given argument

    :param premisegroup: List of strings
    :param current_attack: String
    :param arg_uid: Argument.uid
    :param db_issue: Issue
    :param db_user: User
    :return: Argument
    """
    LOG.debug("Entering insert_new_premises_for_argument with arg_uid: %s",
              arg_uid)

    statements = []
    for premise in premisegroup:
        statement = insert_as_statement(premise, db_user, db_issue)
        statements.append(statement)

    # set the new statements as premise group and get current user as well as current argument
    new_pgroup = set_statements_as_new_premisegroup(statements, db_user,
                                                    db_issue)
    current_argument = DBDiscussionSession.query(Argument).get(arg_uid)

    new_argument = None
    if current_attack == Relations.UNDERMINE:
        new_argument = set_new_undermine_or_support_for_pgroup(
            new_pgroup.uid, current_argument, False, db_user, db_issue)

    elif current_attack == Relations.SUPPORT:
        new_argument, duplicate = set_new_support(new_pgroup.uid,
                                                  current_argument, db_user,
                                                  db_issue)

    elif current_attack == Relations.UNDERCUT:
        new_argument, duplicate = set_new_undercut(new_pgroup.uid,
                                                   current_argument, db_user,
                                                   db_issue)

    elif current_attack == Relations.REBUT:
        new_argument, duplicate = set_new_rebut(new_pgroup.uid,
                                                current_argument, db_user,
                                                db_issue)

    if not new_argument:
        LOG.debug("No statement or any premise = conclusion")
        return Translator(db_issue.lang).get(_.premiseAndConclusionAreEqual)

    LOG.debug("Returning argument %s", new_argument.uid)
    return new_argument