def test_search_packagers(self):
        """ Test the search_packagers function. """
        pkg = pkgdblib.search_packagers(self.session, 'pin*')
        self.assertEqual(pkg, [])

        create_package_listing(self.session)

        pkg = pkgdblib.search_packagers(self.session, 'pi*')
        self.assertEqual(len(pkg), 1)
        self.assertEqual(pkg[0][0], 'pingou')

        pkg = pkgdblib.search_packagers(self.session, 'pi*', page=0)
        self.assertEqual(len(pkg), 1)
        self.assertEqual(pkg[0][0], 'pingou')

        pkg = pkgdblib.search_packagers(self.session, 'pi*', limit=1, page=1)
        self.assertEqual(len(pkg), 1)
        self.assertEqual(pkg[0][0], 'pingou')

        self.assertRaises(pkgdblib.PkgdbException,
                          pkgdblib.search_packagers,
                          self.session,
                          'p*',
                          limit='a'
                          )

        self.assertRaises(pkgdblib.PkgdbException,
                          pkgdblib.search_packagers,
                          self.session,
                          'p*',
                          page='a'
                          )
Exemple #2
0
    def test_search_packagers(self):
        """ Test the search_packagers function. """
        pkg = pkgdblib.search_packagers(self.session, 'pin*')
        self.assertEqual(pkg, [])

        create_package_listing(self.session)

        pkg = pkgdblib.search_packagers(self.session, 'pi*')
        self.assertEqual(len(pkg), 1)
        self.assertEqual(pkg[0][0], 'pingou')

        pkg = pkgdblib.search_packagers(self.session, 'pi*', page=0)
        self.assertEqual(len(pkg), 1)
        self.assertEqual(pkg[0][0], 'pingou')

        pkg = pkgdblib.search_packagers(self.session, 'pi*', limit=1, page=1)
        self.assertEqual(len(pkg), 1)
        self.assertEqual(pkg[0][0], 'pingou')

        self.assertRaises(pkgdblib.PkgdbException,
                          pkgdblib.search_packagers,
                          self.session,
                          'p*',
                          limit='a')

        self.assertRaises(pkgdblib.PkgdbException,
                          pkgdblib.search_packagers,
                          self.session,
                          'p*',
                          page='a')
Exemple #3
0
def api_packager_list(pattern=None):
    ''' List packagers.

    :kwarg pattern: String of the pattern to use to list find packagers.
        If no pattern is provided, it returns the list of all packagers.

    '''
    httpcode = 200
    output = {}

    pattern = flask.request.args.get('pattern', None) or pattern
    if pattern:
        packagers = pkgdblib.search_packagers(SESSION,
                                              pattern=pattern,
                                              )
        packagers = [pkg[0] for pkg in packagers]
        SESSION.commit()
        output['output'] = 'ok'
        output['packagers'] = packagers
    else:
        output = {'output': 'notok', 'error': 'Invalid request'}
        httpcode = 500

    jsonout = flask.jsonify(output)
    jsonout.status_code = httpcode
    return jsonout
Exemple #4
0
def api_packager_list(pattern=None):
    ''' List packagers.

    :kwarg pattern: String of the pattern to use to list find packagers.
        If no pattern is provided, it returns the list of all packagers.

    '''
    httpcode = 200
    output = {}

    pattern = flask.request.args.get('pattern', None) or pattern
    if pattern:
        packagers = pkgdblib.search_packagers(
            SESSION,
            pattern=pattern,
        )
        packagers = [pkg[0] for pkg in packagers]
        SESSION.commit()
        output['output'] = 'ok'
        output['packagers'] = packagers
    else:
        output = {'output': 'notok', 'error': 'Invalid request'}
        httpcode = 500

    jsonout = flask.jsonify(output)
    jsonout.status_code = httpcode
    return jsonout
Exemple #5
0
def api_packager_list(pattern=None):
    '''
List packagers
--------------
    List packagers based on a pattern. If no pattern is provided, return
    all the packagers.

    ::

        /api/packagers/<pattern>/

        /api/packagers/?pattern=<pattern>

    :kwarg pattern: String of the pattern to use to list find packagers.
        If no pattern is provided, it returns the list of all packagers.


    Sample response:

    ::

        /api/packagers/rem*

        {
          "output": "ok",
          "packagers": [
            "remi"
          ]
        }

        /api/packagers/?pattern=pi*

        {
          "output": "ok",
          "packagers": [
            "pilcher",
            "pingou"
          ]
        }
    '''
    httpcode = 200
    output = {}

    pattern = flask.request.args.get('pattern', None) or pattern
    if pattern:
        packagers = pkgdblib.search_packagers(SESSION,
                                              pattern=pattern,
                                              )
        packagers = [pkg[0] for pkg in packagers]
        SESSION.commit()
        output['output'] = 'ok'
        output['packagers'] = packagers
    else:
        output = {'output': 'notok', 'error': 'Invalid request'}
        httpcode = 500

    jsonout = flask.jsonify(output)
    jsonout.status_code = httpcode
    return jsonout
Exemple #6
0
def list_packagers(motif=None):
    ''' Display the list of packagers corresponding to the motif. '''

    pattern = flask.request.args.get('motif', motif) or '*'
    limit = flask.request.args.get('limit', APP.config['ITEMS_PER_PAGE'])
    page = flask.request.args.get('page', 1)

    try:
        page = int(page)
    except ValueError:
        page = 1

    try:
        int(limit)
    except ValueError:
        limit = APP.config['ITEMS_PER_PAGE']
        flask.flash('Incorrect limit provided, using default', 'errors')

    packagers = pkgdblib.search_packagers(
        SESSION,
        pattern=pattern,
        page=page,
        limit=limit,
    )

    packagers_count = pkgdblib.search_packagers(
        SESSION,
        pattern=pattern,
        page=page,
        limit=limit,
        count=True,
    )
    total_page = int(ceil(packagers_count / float(limit)))

    return flask.render_template(
        'list_packagers.html',
        packagers=[pkg[0] for pkg in packagers],
        motif=motif,
        total_page=total_page,
        page=page
    )
Exemple #7
0
def list_packagers(motif=None):
    ''' Display the list of packagers corresponding to the motif. '''

    pattern = flask.request.args.get('motif', motif) or '*'
    limit = flask.request.args.get('limit', APP.config['ITEMS_PER_PAGE'])
    page = flask.request.args.get('page', 1)

    try:
        page = int(page)
    except ValueError:
        page = 1

    try:
        int(limit)
    except ValueError:
        limit = APP.config['ITEMS_PER_PAGE']
        flask.flash('Incorrect limit provided, using default', 'errors')

    packagers = pkgdblib.search_packagers(
        SESSION,
        pattern=pattern,
        page=page,
        limit=limit,
    )

    packagers_count = pkgdblib.search_packagers(
        SESSION,
        pattern=pattern,
        page=page,
        limit=limit,
        count=True,
    )
    total_page = int(ceil(packagers_count / float(limit)))

    return flask.render_template('list_packagers.html',
                                 packagers=[pkg[0] for pkg in packagers],
                                 motif=motif,
                                 total_page=total_page,
                                 page=page)