Beispiel #1
0
 def setUp(self):
     super(TestRestNbhdAddProject, self).setUp()
     # create some troves we'll need
     M.TroveCategory(fullname="Root", trove_cat_id=1, trove_parent_id=0)
     M.TroveCategory(fullname="License", trove_cat_id=2, trove_parent_id=1)
     M.TroveCategory(fullname="Apache License V2.0",
                     fullpath="License :: Apache License V2.0",
                     trove_cat_id=4,
                     trove_parent_id=2)
     M.TroveCategory(fullname="Public Domain",
                     fullpath="License :: Public Domain",
                     trove_cat_id=5,
                     trove_parent_id=2)
     p_nbhd = M.Neighborhood.query.get(url_prefix='/p/')
     p_nbhd.features['private_projects'] = False
Beispiel #2
0
 def create_some_cats(self):
     root_parent = M.TroveCategory(fullname="Root",
                                   trove_cat_id=1,
                                   trove_parent_id=0)
     category_a = M.TroveCategory(fullname="CategoryA",
                                  trove_cat_id=2,
                                  trove_parent_id=1)
     category_b = M.TroveCategory(fullname="CategoryB",
                                  trove_cat_id=3,
                                  trove_parent_id=1)
     child_a = M.TroveCategory(fullname="ChildA",
                               trove_cat_id=4,
                               trove_parent_id=2)
     child_b = M.TroveCategory(fullname="ChildB",
                               trove_cat_id=5,
                               trove_parent_id=2)
Beispiel #3
0
def main():
    M.TroveCategory(trove_cat_id=670,
                    trove_parent_id=14,
                    shortname="agpl",
                    fullname="Affero GNU Public License",
                    fullpath="License :: OSI-Approved Open Source :: Affero GNU Public License")
    ThreadLocalORMSession.flush_all()
    ThreadLocalORMSession.close_all()
Beispiel #4
0
def main():
    M.TroveCategory(
        trove_cat_id=905,
        trove_parent_id=14,
        shortname='mpl20',
        fullname='Mozilla Public License 2.0 (MPL 2.0)',
        fullpath=
        'License :: OSI-Approved Open Source :: Mozilla Public License 2.0 (MPL 2.0)'
    )

    ThreadLocalORMSession.flush_all()
    ThreadLocalORMSession.close_all()
Beispiel #5
0
    def test_trove_hierarchy(self):
        root_parent = M.TroveCategory(fullname="Root",
                                      trove_cat_id=1,
                                      trove_parent_id=0)
        category_a = M.TroveCategory(fullname="CategoryA",
                                     trove_cat_id=2,
                                     trove_parent_id=1)
        category_b = M.TroveCategory(fullname="CategoryB",
                                     trove_cat_id=3,
                                     trove_parent_id=1)
        child_a = M.TroveCategory(fullname="ChildA",
                                  trove_cat_id=4,
                                  trove_parent_id=2)
        child_b = M.TroveCategory(fullname="ChildB",
                                  trove_cat_id=5,
                                  trove_parent_id=2)

        session(M.TroveCategory).flush()

        r = self.app.get('/categories/browse')
        rendered_tree = r.html.find('div', {
            'id': 'content_base'
        }).find('div').find('div').find('ul')
        expected = BeautifulSoup("""
        <ul>
            <li>Root</li>
            <ul>
                <li>CategoryA</li>
                <ul>
                    <li>ChildA</li>
                    <li>ChildB</li>
                </ul>
                <li>CategoryB</li>
            </ul>
        </ul>
        """.strip())
        assert str(expected) == str(rendered_tree)
Beispiel #6
0
    def create(self, **kw):
        name = kw.get('categoryname')
        upper_id = int(kw.get('uppercategory_id', 0))
        shortname = kw.get('shortname', None)

        upper = M.TroveCategory.query.get(trove_cat_id=upper_id)
        if upper_id == 0:
            path = name
            show_as_skill = True
        elif upper is None:
            flash('Invalid upper category.', "error")
            redirect('/categories')
            return
        else:
            path = upper.fullpath + " :: " + name
            show_as_skill = upper.show_as_skill

        newid = max(
            [el.trove_cat_id for el in M.TroveCategory.query.find()]) + 1
        shortname = h.slugify(shortname or name)[1]

        if upper:
            trove_type = upper.fullpath.split(' :: ')[0]
            fullpath_re = re.compile(r'^{} :: '.format(re.escape(trove_type)))  # e.g. scope within "Topic :: "
        else:
            # no parent, so making a top-level.  Don't limit fullpath_re, so enforcing global uniqueness
            fullpath_re = re.compile(r'')
        oldcat = M.TroveCategory.query.get(shortname=shortname, fullpath=fullpath_re)
        if oldcat:
            flash('A category with shortname "%s" already exists (%s).  Try a different, unique shortname'
                  % (shortname, oldcat.fullpath), "error")
            redir_params = u'?categoryname={}&shortname={}'.format(name, shortname)
        else:
            M.TroveCategory(
                trove_cat_id=newid,
                trove_parent_id=upper_id,
                fullname=name,
                shortname=shortname,
                fullpath=path,
                show_as_skill=show_as_skill)
            flash('Category "%s" successfully created.' % name)
            redir_params = ''
        if upper:
            redirect(u'/categories/{}/{}'.format(upper.trove_cat_id, redir_params))
        else:
            redirect(u'/categories/{}'.format(redir_params))
    def create(self, **kw):
        require_authenticated()

        name = kw.get('categoryname')
        upper_id = int(kw.get('uppercategory_id', 0))

        upper = M.TroveCategory.query.get(trove_cat_id=upper_id)
        if upper_id == 0:
            path = name
            show_as_skill = True
        elif upper is None:
            flash('Invalid upper category.', "error")
            redirect('/categories')
            return
        else:
            path = upper.fullpath + " :: " + name
            show_as_skill = upper.show_as_skill

        newid = max([el.trove_cat_id
                     for el in M.TroveCategory.query.find()]) + 1
        shortname = name.replace(" ", "_").lower()
        shortname = ''.join([(c if (c in digits or c in lowercase) else "_")
                             for c in shortname])

        oldcat = M.TroveCategory.query.get(shortname=shortname)
        if oldcat:
            flash('Category "%s" already exists.' % name, "error")
        else:
            category = M.TroveCategory(trove_cat_id=newid,
                                       trove_parent_id=upper_id,
                                       fullname=name,
                                       shortname=shortname,
                                       fullpath=path,
                                       show_as_skill=show_as_skill)
            if category:
                flash('Category "%s" successfully created.' % name)
            else:
                flash('An error occured while crearing the category.', "error")
        if upper:
            redirect('/categories/%s' % upper.shortname)
        else:
            redirect('/categories')
Beispiel #8
0
    def create(self, **kw):
        name = kw.get('categoryname')
        upper_id = int(kw.get('uppercategory_id', 0))
        shortname = kw.get('shortname', None)

        upper = M.TroveCategory.query.get(trove_cat_id=upper_id)
        if upper_id == 0:
            path = name
            show_as_skill = True
        elif upper is None:
            flash('Invalid upper category.', "error")
            redirect('/categories')
            return
        else:
            path = upper.fullpath + " :: " + name
            show_as_skill = upper.show_as_skill

        newid = max(
            [el.trove_cat_id for el in M.TroveCategory.query.find()]) + 1
        shortname = h.slugify(shortname or name)[1]

        oldcat = M.TroveCategory.query.get(shortname=shortname)
        if oldcat:
            flash('Category "%s" with shortname "%s" already exists.  Try a different, unique shortname' % (name, shortname), "error")
        else:
            category = M.TroveCategory(
                trove_cat_id=newid,
                trove_parent_id=upper_id,
                fullname=name,
                shortname=shortname,
                fullpath=path,
                show_as_skill=show_as_skill)
            if category:
                flash('Category "%s" successfully created.' % name)
            else:
                flash('An error occured while crearing the category.', "error")
        if upper:
            redirect(u'/categories/{}/?categoryname={}&shortname={}'.format(upper.trove_cat_id, name, shortname))
        else:
            redirect(u'/categories/?categoryname={}&shortname={}'.format(name, shortname))
Beispiel #9
0
def create_trove_cat(cat_data):
    M.TroveCategory(trove_cat_id=cat_data[0],
                    trove_parent_id=cat_data[1],
                    shortname=cat_data[2],
                    fullname=cat_data[3],
                    fullpath=cat_data[4])
def main():
    M.TroveCategory(trove_cat_id=862,
                    trove_parent_id=14,
                    shortname="lppl",
                    fullname="LaTeX Project Public License",
                    fullpath="License :: OSI-Approved Open Source :: LaTeX Project Public License")
    M.TroveCategory(trove_cat_id=655,
                    trove_parent_id=432,
                    shortname="win64",
                    fullname="64-bit MS Windows",
                    fullpath="Operating System :: Grouping and Descriptive Categories :: 64-bit MS Windows")
    M.TroveCategory(trove_cat_id=657,
                    trove_parent_id=418,
                    shortname="vista",
                    fullname="Vista",
                    fullpath="Operating System :: Modern (Vendor-Supported) Desktop Operating Systems :: Vista")
    M.TroveCategory(trove_cat_id=851,
                    trove_parent_id=418,
                    shortname="win7",
                    fullname="Windows 7",
                    fullpath="Operating System :: Modern (Vendor-Supported) Desktop Operating Systems :: Windows 7")
    M.TroveCategory(trove_cat_id=728,
                    trove_parent_id=315,
                    shortname="android",
                    fullname="Android",
                    fullpath="Operating System :: Handheld/Embedded Operating Systems :: Android")
    M.TroveCategory(trove_cat_id=780,
                    trove_parent_id=315,
                    shortname="ios",
                    fullname="Apple iPhone",
                    fullpath="Operating System :: Handheld/Embedded Operating Systems :: Apple iPhone")
    M.TroveCategory(trove_cat_id=863,
                    trove_parent_id=534,
                    shortname="architects",
                    fullname="Architects",
                    fullpath="Intended Audience :: by End-User Class :: Architects")
    M.TroveCategory(trove_cat_id=864,
                    trove_parent_id=534,
                    shortname="auditors",
                    fullname="Auditors",
                    fullpath="Intended Audience :: by End-User Class :: Auditors")
    M.TroveCategory(trove_cat_id=865,
                    trove_parent_id=534,
                    shortname="testers",
                    fullname="Testers",
                    fullpath="Intended Audience :: by End-User Class :: Testers")
    M.TroveCategory(trove_cat_id=866,
                    trove_parent_id=534,
                    shortname="secpros",
                    fullname="Security Professionals",
                    fullpath="Intended Audience :: by End-User Class :: Security Professionals")
    M.TroveCategory(trove_cat_id=867,
                    trove_parent_id=535,
                    shortname="secindustry",
                    fullname="Security",
                    fullpath="Intended Audience :: by Industry or Sector :: Security")
    ThreadLocalORMSession.flush_all()
    ThreadLocalORMSession.close_all()