From 8c5ee9257fe5f285826e7ab92d85ab9dfc0d3008 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Wed, 20 Nov 2019 14:40:33 +0100 Subject: [PATCH] Fix for frozen_enough test --- osclib/stagingapi.py | 2 +- tests/OBSLocal.py | 23 +++++++++++++++++++++-- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/osclib/stagingapi.py b/osclib/stagingapi.py index 829f4e70..a0d8b9fa 100644 --- a/osclib/stagingapi.py +++ b/osclib/stagingapi.py @@ -1222,7 +1222,7 @@ class StagingAPI(object): """ data = self.project_status(project) - if data.get('state') == 'empty': + if data.get('state') != 'empty': return True # already has content # young enough diff --git a/tests/OBSLocal.py b/tests/OBSLocal.py index 788d5e70..ec0e8c42 100644 --- a/tests/OBSLocal.py +++ b/tests/OBSLocal.py @@ -287,6 +287,9 @@ class StagingWorkflow(object): url = osc.core.makeurl(APIURL, ['staging', self.project, 'workflow']) data = "" osc.core.http_POST(url, data=data) + # creates A and B as well + self.projects['staging:A'] = Project(self.project + ':Staging:A', create=False) + self.projects['staging:B'] = Project(self.project + ':Staging:B', create=False) def setup_rings(self): self.create_target() @@ -333,15 +336,28 @@ class StagingWorkflow(object): return self.submit_package(package) def create_staging(self, suffix, freeze=False, rings=None): + staging_key = 'staging:{}'.format(suffix) + # do not reattach if already present + if not staging_key in self.projects: + staging_name = self.project + ':Staging:' + suffix + staging = Project(staging_name, create=False) + url = osc.core.makeurl(APIURL, ['staging', self.project, 'staging_projects']) + data = '{}' + osc.core.http_POST(url, data=data.format(staging_name)) + self.projects[staging_key] = staging + else: + staging = self.projects[staging_key] + project_links = [] if rings == 0: project_links.append(self.project + ":Rings:0-Bootstrap") if rings == 1 or rings == 0: project_links.append(self.project + ":Rings:1-MinimalX") - staging = Project(self.project + ':Staging:' + suffix, project_links=project_links) + staging.update_meta(project_links=project_links) + if freeze: FreezeCommand(self.api).perform(staging.name) - self.projects['staging:{}'.format(suffix)] = staging + return staging def __del__(self): @@ -379,6 +395,9 @@ class Project(object): if not create: return + self.update_meta(reviewer, maintainer, project_links) + + def update_meta(self, reviewer={}, maintainer={}, project_links=[]): meta = """