From b1ec7efb3c6480077ef846ece8bfc9946cc44e0e Mon Sep 17 00:00:00 2001 From: Jimmy Berry Date: Mon, 5 Feb 2018 19:44:21 -0600 Subject: [PATCH] osclib/stagingapi: get_staging_projects(): utilize project_list_prefix(). --- osclib/stagingapi.py | 14 ++++---------- tests/obs.py | 4 +++- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/osclib/stagingapi.py b/osclib/stagingapi.py index 6fa31ea1..5387ebb8 100644 --- a/osclib/stagingapi.py +++ b/osclib/stagingapi.py @@ -49,6 +49,7 @@ from osc.core import streamfile from osclib.cache import Cache from osclib.core import devel_project_get +from osclib.core import project_list_prefix from osclib.comments import CommentAPI from osclib.ignore_command import IgnoreCommand from osclib.memoize import memoize @@ -333,17 +334,10 @@ class StagingAPI(object): :return list of known staging projects """ - projects = [] + projects = project_list_prefix(self.apiurl, self.cstaging + ':') + if not include_dvd: + projects = filter(lambda p: not p.endswith(':DVD'), projects) - query = "id?match=starts-with(@name,'{}:')".format(self.cstaging) - url = self.makeurl(['search', 'project', query]) - projxml = http_GET(url) - root = ET.parse(projxml).getroot() - for val in root.findall('project'): - project = val.get('name') - if not include_dvd and project.endswith(':DVD'): - continue - projects.append(project) return projects def extract_staging_short(self, p): diff --git a/tests/obs.py b/tests/obs.py index 4481d6e4..1f809435 100644 --- a/tests/obs.py +++ b/tests/obs.py @@ -19,6 +19,7 @@ import os import re import string import time +import urllib import urllib2 import urlparse import xml.etree.cElementTree as ET @@ -810,7 +811,8 @@ class OBS(object): @GET('/search/project/id') def search_project_id(self, request, uri, headers): """Return a search result /search/project/id.""" - assert urlparse.urlparse(uri).query == "match=starts-with(@name,'openSUSE:Factory:Staging:')" + assert urlparse.urlparse(uri).query == urllib.urlencode( + {'match': 'starts-with(@name, "openSUSE:Factory:Staging:")'}) response = (404, headers, 'Not found') try: