Beispiel #1
0
 def do_k_add(self, line):
     """Add a keyword
     k_add @<keyword1> [@<keyword2>...]"""
     if not line:
         raise BadUsageException("You must provide at least one keyword name")
     for keyword in line.split():
         try:
             Keyword(name=keyword)
             print "Keyword %s has been created" % keyword
         except DuplicateEntryError:
             print "Keyword %s already exist" % keyword
Beispiel #2
0
 def do_k_add(self, line):
     """Add a keyword
     k_add @<keyword1> [@<keyword2>...]"""
     session = db.getSession()
     if not line:
         raise BadUsageException("You must provide at least one keyword name")
     for keyword in line.split():
         try:
             session.add(Keyword(name=keyword))
             session.commit()
             print("Keyword %s has been created" % keyword)
         except IntegrityError:
             session.rollback()
             print("Keyword %s already exist" % keyword)
Beispiel #3
0
def getOrCreateKeyword(keywordName, interactive=True):
    """Get a keyword by its name. Create it if needed
    @param keywordName: keyword name as a string
    @param interactive: Ask user before creating keyword (this is the default)
    @type interactive: Bool
    @return: Keyword instance or None if user cancel creation"""
    result = Keyword.selectBy(name=keywordName)
    result = list(result)
    if len(result):
        return result[0]

    if interactive and not tui.confirm("Keyword '%s' does not exist, create it" % keywordName):
        return None
    keyword = Keyword(name=keywordName)
    print "Added keyword '%s'" % keywordName
    return keyword
Beispiel #4
0
    def testRenderListSectionOrderKeywords(self):
        prj = Project(name="prj")
        keywordNames = ["kw_" + x for x in ("ccc", "aaa", "UPPER_CASE", "zzz", "mmm")]
        keywordList = []
        for name in keywordNames:
            keyword = Keyword(name=name)
            task = Task(project=prj, title="Hello")
            TaskKeyword(task=task, keyword=keyword)
            self.session.add(task)
            keywordList.append(prj)
        self.session.flush()

        renderer = testutils.TestRenderer()
        self.cmd._renderList(renderer, [prj], filters=[], order=[], groupKeyword="kw_%")

        self.assertEqual(list(renderer.taskDict.keys()), sorted(keywordNames, key=lambda x: x.lower()))
Beispiel #5
0
def getOrCreateKeyword(keywordName, interactive=True):
    """Get a keyword by its name. Create it if needed
    @param keywordName: keyword name as a string
    @param interactive: Ask user before creating keyword (this is the default)
    @type interactive: Bool
    @return: Keyword instance or None if user cancel creation"""
    session = db.getSession()
    try:
        return session.query(Keyword).filter_by(name=keywordName).one()
    except (NoResultFound, MultipleResultsFound):
        if interactive and not tui.confirm(
                "Keyword '%s' does not exist, create it" % keywordName):
            return None
        keyword = Keyword(name=keywordName)
        session.add(keyword)
        print("Added keyword '%s'" % keywordName)
        return keyword