Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package openSUSE-release-tools for
openSUSE:Factory checked in at 2022-03-05 14:44:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/openSUSE-release-tools (Old)
and /work/SRC/openSUSE:Factory/.openSUSE-release-tools.new.1958 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openSUSE-release-tools"
Sat Mar 5 14:44:38 2022 rev:389 rq:959580 version:20220304.1479a628
Changes:
--------
---
/work/SRC/openSUSE:Factory/openSUSE-release-tools/openSUSE-release-tools.changes
2022-03-04 20:20:53.632681528 +0100
+++
/work/SRC/openSUSE:Factory/.openSUSE-release-tools.new.1958/openSUSE-release-tools.changes
2022-03-05 14:45:20.839730145 +0100
@@ -1,0 +2,39 @@
+Fri Mar 04 13:19:41 UTC 2022 - [email protected]
+
+- Update to version 20220304.1479a628:
+ * pkglistgen: Don't exit 1 if we skip weakremovers due to restarted builds
+
+-------------------------------------------------------------------
+Fri Mar 04 11:52:40 UTC 2022 - [email protected]
+
+- Update to version 20220304.a0d68e4b:
+ * staging-installcheck: Don't exit 1 if there is a problem found
+
+-------------------------------------------------------------------
+Fri Mar 04 11:34:48 UTC 2022 - [email protected]
+
+- Update to version 20220304.93564783:
+ * pkglistgen: Fix invalid import
+
+-------------------------------------------------------------------
+Fri Mar 04 11:12:11 UTC 2022 - [email protected]
+
+- Update to version 20220304.57322b23:
+ * pkglistgen: Deprecate scope 'all'
+
+-------------------------------------------------------------------
+Fri Mar 04 11:04:48 UTC 2022 - [email protected]
+
+- Update to version 20220304.ebe2c528:
+ * tests: Fix api_tests to mock attribute not mtime
+ * tests: Create OSRT:FreezeTime for all tests
+ * osclib: Add an helpful error on failed attribute save
+ * Make frozenage less reliant on changing _frozenlinks
+
+-------------------------------------------------------------------
+Fri Mar 04 10:34:43 UTC 2022 - [email protected]
+
+- Update to version 20220304.986ad21b:
+ * docs: Add note that the origin manager is unmaintained
+
+-------------------------------------------------------------------
Old:
----
openSUSE-release-tools-20220303.003f0105.obscpio
New:
----
openSUSE-release-tools-20220304.1479a628.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ openSUSE-release-tools.spec ++++++
--- /var/tmp/diff_new_pack.I20h3t/_old 2022-03-05 14:45:21.519730317 +0100
+++ /var/tmp/diff_new_pack.I20h3t/_new 2022-03-05 14:45:21.527730319 +0100
@@ -20,7 +20,7 @@
%define source_dir openSUSE-release-tools
%define announcer_filename factory-package-news
Name: openSUSE-release-tools
-Version: 20220303.003f0105
+Version: 20220304.1479a628
Release: 0
Summary: Tools to aid in staging and release work for openSUSE/SUSE
License: GPL-2.0-or-later AND MIT
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.I20h3t/_old 2022-03-05 14:45:21.575730331 +0100
+++ /var/tmp/diff_new_pack.I20h3t/_new 2022-03-05 14:45:21.575730331 +0100
@@ -1,7 +1,7 @@
<servicedata>
<service name="tar_scm">
<param
name="url">https://github.com/openSUSE/openSUSE-release-tools.git</param>
- <param
name="changesrevision">003f010579af96ef6ffe09b700a50661ed29a9da</param>
+ <param
name="changesrevision">e3f0a13b96dd1a69f70b7fb5884176b3bf142646</param>
</service>
</servicedata>
++++++ openSUSE-release-tools-20220303.003f0105.obscpio ->
openSUSE-release-tools-20220304.1479a628.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20220303.003f0105/dist/obs/OSRT:FreezeTime.xml
new/openSUSE-release-tools-20220304.1479a628/dist/obs/OSRT:FreezeTime.xml
--- old/openSUSE-release-tools-20220303.003f0105/dist/obs/OSRT:FreezeTime.xml
1970-01-01 01:00:00.000000000 +0100
+++ new/openSUSE-release-tools-20220304.1479a628/dist/obs/OSRT:FreezeTime.xml
2022-03-04 14:18:20.000000000 +0100
@@ -0,0 +1,5 @@
+<definition name="FreezeTime" namespace="OSRT">
+ <description>Date and time of the last call of freeze (updating
_frozenlinks)</description>
+ <count>1</count>
+ <modifiable_by role="maintainer"/>
+</definition>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20220303.003f0105/docs/origin-manager.md
new/openSUSE-release-tools-20220304.1479a628/docs/origin-manager.md
--- old/openSUSE-release-tools-20220303.003f0105/docs/origin-manager.md
2022-03-03 18:03:46.000000000 +0100
+++ new/openSUSE-release-tools-20220304.1479a628/docs/origin-manager.md
2022-03-04 14:18:20.000000000 +0100
@@ -1,5 +1,7 @@
# Origin Manager
+<span style="color:red">Note that the Origin Manager is unmaintained and
considered mostly obsolete in its current form by
https://www.suse.com/c/closing-the-leap-gap-src/</span>
+
The primary function of origin manager is, as the name implies, to _manage_
the _origin_ of packages. In other words to keep track of from what project a
package originates, submit updates, review requests to detect origin changes,
and enforce origin specific policies like adding appropriate reviews.
The primary configuration for all parts of the tool is the `OSRT:OriginConfig`
attribute to be placed on the target project. Once the config is created all
relevant caches, listeners, and cron jobs will automatically include the
project. The only exception is the `origin-manager` user should be added as a
project _reviewer_ in order to activate the review portion of the tool.
Conversely either removing the config or locking the project will disable all
services. Locking the project will preserve the caches used by the web
interface, but not update them which allows for archived viewing.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20220303.003f0105/gocd/pkglistgen.opensuse.gocd.yaml
new/openSUSE-release-tools-20220304.1479a628/gocd/pkglistgen.opensuse.gocd.yaml
---
old/openSUSE-release-tools-20220303.003f0105/gocd/pkglistgen.opensuse.gocd.yaml
2022-03-03 18:03:46.000000000 +0100
+++
new/openSUSE-release-tools-20220304.1479a628/gocd/pkglistgen.opensuse.gocd.yaml
2022-03-04 14:18:20.000000000 +0100
@@ -49,22 +49,22 @@
- repo-checker
tasks:
- script: |
- python3 -u ./pkglistgen.py -d -A https://api.opensuse.org
update_and_solve -p openSUSE:Factory:PowerPC --only-release-packages
- python3 -u ./pkglistgen.py -d -A https://api.opensuse.org
update_and_solve -p openSUSE:Factory:PowerPC
+ python3 -u ./pkglistgen.py -d -A https://api.opensuse.org
update_and_solve -p openSUSE:Factory:PowerPC -s target --only-release-packages
+ python3 -u ./pkglistgen.py -d -A https://api.opensuse.org
update_and_solve -p openSUSE:Factory:PowerPC -s target
openSUSE_Factory_zSystems:
resources:
- repo-checker
tasks:
- script: |
- python3 -u ./pkglistgen.py -d -A https://api.opensuse.org
update_and_solve -p openSUSE:Factory:zSystems --only-release-packages
- python3 -u ./pkglistgen.py -d -A https://api.opensuse.org
update_and_solve -p openSUSE:Factory:zSystems
+ python3 -u ./pkglistgen.py -d -A https://api.opensuse.org
update_and_solve -p openSUSE:Factory:zSystems -s target --only-release-packages
+ python3 -u ./pkglistgen.py -d -A https://api.opensuse.org
update_and_solve -p openSUSE:Factory:zSystems -s target
openSUSE_Factory_RISCV:
resources:
- repo-checker
tasks:
- script: |
- python3 -u ./pkglistgen.py -d -A https://api.opensuse.org
update_and_solve -p openSUSE:Factory:RISCV --only-release-packages
- python3 -u ./pkglistgen.py -d -A https://api.opensuse.org
update_and_solve -p openSUSE:Factory:RISCV
+ python3 -u ./pkglistgen.py -d -A https://api.opensuse.org
update_and_solve -p openSUSE:Factory:RISCV -s target --only-release-packages
+ python3 -u ./pkglistgen.py -d -A https://api.opensuse.org
update_and_solve -p openSUSE:Factory:RISCV -s target
Update.Repos.Factory:
group: Factory.pkglistgen
lock_behavior: unlockWhenFinished
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20220303.003f0105/gocd/pkglistgen.opensuse.gocd.yaml.erb
new/openSUSE-release-tools-20220304.1479a628/gocd/pkglistgen.opensuse.gocd.yaml.erb
---
old/openSUSE-release-tools-20220303.003f0105/gocd/pkglistgen.opensuse.gocd.yaml.erb
2022-03-03 18:03:46.000000000 +0100
+++
new/openSUSE-release-tools-20220304.1479a628/gocd/pkglistgen.opensuse.gocd.yaml.erb
2022-03-04 14:18:20.000000000 +0100
@@ -22,6 +22,8 @@
if project.size > 1
options=" -s #{project[1]}"
name = name + "_#{project[1]}"
+ else
+ options=" -s target"
end
-%>
<%= name %>:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20220303.003f0105/osclib/conf.py
new/openSUSE-release-tools-20220304.1479a628/osclib/conf.py
--- old/openSUSE-release-tools-20220303.003f0105/osclib/conf.py 2022-03-03
18:03:46.000000000 +0100
+++ new/openSUSE-release-tools-20220304.1479a628/osclib/conf.py 2022-03-04
14:18:20.000000000 +0100
@@ -94,7 +94,6 @@
# No special packages since they will pass through SLE first.
'splitter-special-packages': '',
'pkglistgen-archs': 'x86_64',
- 'pkglistgen-scopes': 'target rings staging',
'pkglistgen-locales-from': 'openSUSE.product',
'pkglistgen-delete-kiwis-rings': 'openSUSE-ftp-ftp-x86_64.kiwi
openSUSE-cd-mini-x86_64.kiwi',
'pkglistgen-delete-kiwis-staging': 'openSUSE-ftp-ftp-x86_64.kiwi
openSUSE-cd-mini-x86_64.kiwi',
@@ -145,18 +144,6 @@
'repo_checker-project-skip': 'True',
'_priority': '101',
},
- r'openSUSE:(?P<project>Jump:(?P<version>[\d.]+))$': {
- 'product': 'openSUSE.product',
- 'openqa': 'https://openqa.opensuse.org',
- 'lock-ns': 'openSUSE',
- 'main-repo': 'standard',
- 'pseudometa_package': 'openSUSE:%(project)s:Staging/dashboard',
- 'download-baseurl':
'http://download.opensuse.org/distribution/leap/%(version)s/',
- 'download-baseurl-update':
'http://download.opensuse.org/update/leap/%(version)s/',
- 'pkglistgen-archs': 'x86_64 aarch64 ppc64le s390x',
- 'pkglistgen-scopes': 'target',
- 'pkglistgen-locales-from': 'openSUSE.product',
- },
# Allows devel projects to utilize tools that require config, but not
# complete StagingAPI support.
r'(?P<project>.*$)': {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20220303.003f0105/osclib/core.py
new/openSUSE-release-tools-20220304.1479a628/osclib/core.py
--- old/openSUSE-release-tools-20220303.003f0105/osclib/core.py 2022-03-03
18:03:46.000000000 +0100
+++ new/openSUSE-release-tools-20220304.1479a628/osclib/core.py 2022-03-04
14:18:20.000000000 +0100
@@ -1,9 +1,9 @@
from collections import namedtuple
-from datetime import datetime
-from datetime import timezone
+from datetime import datetime, timezone
from dateutil.parser import parse as date_parse
import re
import socket
+import logging
from lxml import etree as ET
from urllib.error import HTTPError
@@ -452,7 +452,12 @@
# The OBS API of attributes is super strange, POST to update.
url = makeurl(apiurl, list(filter(None, ['source', project, package,
'_attribute'])))
- http_POST(url, data=ET.tostring(root))
+ try:
+ http_POST(url, data=ET.tostring(root))
+ except HTTPError as e:
+ if e.code == 404:
+ logging.error(f"Saving attribute {namespace}:{name} to {project}
failed. You may need to create the type on your instance.")
+ raise e
def attribute_value_delete(apiurl, project, name, namespace='OSRT',
package=None):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20220303.003f0105/osclib/freeze_command.py
new/openSUSE-release-tools-20220304.1479a628/osclib/freeze_command.py
--- old/openSUSE-release-tools-20220303.003f0105/osclib/freeze_command.py
2022-03-03 18:03:46.000000000 +0100
+++ new/openSUSE-release-tools-20220304.1479a628/osclib/freeze_command.py
2022-03-04 14:18:20.000000000 +0100
@@ -1,7 +1,9 @@
import time
+from datetime import datetime, timezone
from urllib.error import HTTPError
from lxml import etree as ET
import osc.core
+from osclib.core import attribute_value_save
MAX_FROZEN_AGE = 6.5
@@ -197,6 +199,7 @@
url = self.api.makeurl(['source', self.prj, '_project',
'_frozenlinks'], {'meta': '1'})
self.api.retried_PUT(url, ET.tostring(flink))
+ attribute_value_save(self.api.apiurl, self.prj, 'FreezeTime',
datetime.now(timezone.utc).isoformat())
def receive_sources(self, prj, sources, flink):
url = self.api.makeurl(['source', prj], {'view': 'info', 'nofilename':
'1'})
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20220303.003f0105/osclib/stagingapi.py
new/openSUSE-release-tools-20220304.1479a628/osclib/stagingapi.py
--- old/openSUSE-release-tools-20220303.003f0105/osclib/stagingapi.py
2022-03-03 18:03:46.000000000 +0100
+++ new/openSUSE-release-tools-20220304.1479a628/osclib/stagingapi.py
2022-03-04 14:18:20.000000000 +0100
@@ -879,7 +879,14 @@
:param project: project to check
:return age in days(float) of the last update
"""
- root = ET.fromstring(self._fetch_project_meta(project))
+ freezetime = attribute_value_load(self.apiurl, project, 'FreezeTime')
+ if freezetime:
+ freezetime = datetime.fromisoformat(freezetime)
+ tz_info = freezetime.tzinfo
+ return (datetime.now(tz_info) - freezetime).total_seconds() / 3600
/ 24
+ # fallback: old method
+ url = self.makeurl(['source', project, '_project'], {'meta': '1'})
+ root = ET.parse(http_GET(url))
for entry in root.findall('entry'):
if entry.get('name') == '_frozenlinks':
return (time.time() - float(entry.get('mtime'))) / 3600 / 24
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20220303.003f0105/pkglistgen/cli.py
new/openSUSE-release-tools-20220304.1479a628/pkglistgen/cli.py
--- old/openSUSE-release-tools-20220303.003f0105/pkglistgen/cli.py
2022-03-03 18:03:46.000000000 +0100
+++ new/openSUSE-release-tools-20220304.1479a628/pkglistgen/cli.py
2022-03-04 14:18:20.000000000 +0100
@@ -5,6 +5,7 @@
import cmdln
import os
import re
+
import ToolBase
import traceback
import logging
@@ -17,7 +18,7 @@
class CommandLineInterface(ToolBase.CommandLineInterface):
- SCOPES = ['all', 'target', 'rings', 'staging']
+ SCOPES = ['target', 'rings', 'staging']
def __init__(self, *args, **kwargs):
ToolBase.CommandLineInterface.__init__(self, args, kwargs)
@@ -64,8 +65,9 @@
opts.project = match.group(1)
elif not opts.project:
raise ValueError('project is required')
- elif not opts.scope:
- opts.scope = ['all']
+
+ if not opts.scope:
+ raise ValueError('--scope or --staging required')
apiurl = conf.config['apiurl']
Config(apiurl, opts.project)
@@ -85,10 +87,6 @@
if apiurl.find('opensuse.org') > 0:
os.environ['OBS_NAME'] = 'build.opensuse.org'
- # special case for all
- if opts.scope == ['all']:
- opts.scope = target_config.get('pkglistgen-scopes',
'target').split(' ')
-
self.error_occured = False
def solve_project(project, scope):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20220303.003f0105/pkglistgen/tool.py
new/openSUSE-release-tools-20220304.1479a628/pkglistgen/tool.py
--- old/openSUSE-release-tools-20220303.003f0105/pkglistgen/tool.py
2022-03-03 18:03:46.000000000 +0100
+++ new/openSUSE-release-tools-20220304.1479a628/pkglistgen/tool.py
2022-03-04 14:18:20.000000000 +0100
@@ -36,6 +36,10 @@
CACHEDIR = CacheManager.directory('repository-meta')
+class MismatchedRepoException(Exception):
+ """raised on repos that restarted building"""
+
+
class PkgListGen(ToolBase.ToolBase):
def __init__(self):
@@ -225,7 +229,7 @@
continue
s = f'repo-{project}-{reponame}-{arch}-{state}.solv'
if not repo.add_solv(s):
- raise Exception('failed to add repo {}/{}/{}'.format(project,
reponame, arch))
+ raise MismatchedRepoException('failed to add repo
{}/{}/{}'.format(project, reponame, arch))
for solvable in repo.solvables_iter():
if ignore_conflicts:
solvable.unset(solv.SOLVABLE_CONFLICTS)
@@ -428,7 +432,7 @@
fn = f'repo-{project}-{repo}-{arch}-{state}.solv'
r = pool.add_repo('/'.join([project, repo]))
if not r.add_solv(fn):
- raise Exception('failed to add repo
{}/{}/{}.'.format(project, repo, arch))
+ raise MismatchedRepoException('failed to add repo
{}/{}/{}.'.format(project, repo, arch))
pool.createwhatprovides()
@@ -580,10 +584,10 @@
if self.dry_run:
package = Package(path)
for i in package.get_diff():
- print(''.join(i))
+ logging.info(''.join(i))
else:
# No proper API function to perform the same operation.
- print(subprocess.check_output(
+ logging.debug(subprocess.check_output(
' '.join(['cd', path, '&&', 'osc', 'addremove']), shell=True,
encoding='utf-8'))
package = Package(path)
package.commit(msg='Automatic update', skip_local_service_run=True)
@@ -602,7 +606,7 @@
self.all_architectures = target_config.get('pkglistgen-archs').split('
')
self.use_newest_version =
str2bool(target_config.get('pkglistgen-use-newest-version', 'False'))
self.repos = self.expand_repos(project, main_repo)
- print('[{}] {}/{}: update and solve'.format(scope, project, main_repo))
+ logging.debug('[{}] {}/{}: update and solve'.format(scope, project,
main_repo))
group = target_config.get('pkglistgen-group', '000package-groups')
product = target_config.get('pkglistgen-product', '000product')
@@ -615,13 +619,13 @@
if not self.dry_run:
undelete_package(api.apiurl, project, product, 'revive')
# TODO disable build.
- print('{} undeleted, skip dvd until next cycle'.format(product))
+ logging.info('{} undeleted, skip dvd until next
cycle'.format(product))
return
elif not force:
root = ET.fromstringlist(show_results_meta(api.apiurl, project,
product,
repository=[main_repo],
multibuild=True))
if len(root.xpath('result[@state="building"]')) or
len(root.xpath('result[@state="dirty"]')):
- print('{}/{} build in progress'.format(project, product))
+ logging.info('{}/{} build in progress'.format(project,
product))
return
drop_list = api.item_exists(project, oldrepos)
@@ -632,7 +636,7 @@
if packages.find('entry[@name="{}"]'.format(release)) is None:
if not self.dry_run:
undelete_package(api.apiurl, project, release, 'revive')
- print('{} undeleted, skip dvd until next cycle'.format(release))
+ logging.info('{} undeleted, skip dvd until next
cycle'.format(release))
return
# Cache dir specific to hostname and project.
@@ -654,7 +658,7 @@
for package in checkout_list:
if no_checkout:
- print('Skipping checkout of {}/{}'.format(project, package))
+ logging.debug('Skipping checkout of {}/{}'.format(project,
package))
continue
checkout_package(api.apiurl, project, package, expand_link=True,
prj_dir=cache_dir, outdir=os.path.join(cache_dir,
package))
@@ -668,7 +672,7 @@
file_utils.change_extension(product_dir, '.spec.in', '.spec')
file_utils.change_extension(product_dir, '.product.in', '.product')
- print('-> do_update')
+ logging.debug('-> do_update')
# make sure we only calculcate existant architectures
self.filter_architectures(target_archs(api.apiurl, project, main_repo))
self.update_repos(self.filtered_architectures)
@@ -688,19 +692,23 @@
if drop_list and not only_release_packages:
weakremovers_file = os.path.join(release_dir, 'weakremovers.inc')
- self.create_weakremovers(project, target_config, oldrepos_dir,
output=open(weakremovers_file, 'w'))
+ try:
+ self.create_weakremovers(project, target_config, oldrepos_dir,
output=open(weakremovers_file, 'w'))
+ except MismatchedRepoException:
+ logging.error("Failed to create weakremovers.inc due to
mismatch in repos - project most likey started building again.")
+ return
delete_products = target_config.get('pkglistgen-delete-products',
'').split(' ')
file_utils.unlink_list(product_dir, delete_products)
- print('-> product service')
+ logging.debug('-> product service')
product_version = attribute_value_load(api.apiurl, project,
'ProductVersion')
if not product_version:
# for stagings the product version doesn't matter (I hope)
product_version = '1'
for product_file in glob.glob(os.path.join(product_dir, '*.product')):
self.replace_product_version(product_file, product_version)
- print(subprocess.check_output(
+ logging.debug(subprocess.check_output(
[PRODUCT_SERVICE, product_file, product_dir, project],
encoding='utf-8'))
for delete_kiwi in
target_config.get('pkglistgen-delete-kiwis-{}'.format(scope), '').split(' '):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20220303.003f0105/staging-installcheck.py
new/openSUSE-release-tools-20220304.1479a628/staging-installcheck.py
--- old/openSUSE-release-tools-20220303.003f0105/staging-installcheck.py
2022-03-03 18:03:46.000000000 +0100
+++ new/openSUSE-release-tools-20220304.1479a628/staging-installcheck.py
2022-03-04 14:18:20.000000000 +0100
@@ -379,4 +379,4 @@
result = staging_report.staging(staging) and result
if not result:
- sys.exit(1)
+ logging.error("Found problem")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20220303.003f0105/tests/OBSLocal.py
new/openSUSE-release-tools-20220304.1479a628/tests/OBSLocal.py
--- old/openSUSE-release-tools-20220303.003f0105/tests/OBSLocal.py
2022-03-03 18:03:46.000000000 +0100
+++ new/openSUSE-release-tools-20220304.1479a628/tests/OBSLocal.py
2022-03-04 14:18:20.000000000 +0100
@@ -382,6 +382,7 @@
# First ensure the existence of both the target project and the
'Config' attribute type
self.create_target()
self.create_attribute_type('OSRT', 'Config', 1)
+ self.create_attribute_type('OSRT', 'FreezeTime', 1)
self.remote_config_set(self.initial_config(), replace_all=True)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20220303.003f0105/tests/api_tests.py
new/openSUSE-release-tools-20220304.1479a628/tests/api_tests.py
--- old/openSUSE-release-tools-20220303.003f0105/tests/api_tests.py
2022-03-03 18:03:46.000000000 +0100
+++ new/openSUSE-release-tools-20220304.1479a628/tests/api_tests.py
2022-03-04 14:18:20.000000000 +0100
@@ -1,7 +1,5 @@
-
import osc.core
-
-from mock import MagicMock
+from osclib.core import attribute_value_delete, attribute_value_save
from . import OBSLocal
@@ -181,7 +179,7 @@
self.wf.create_staging('B', freeze=True, rings=1)
self.assertLess(self.wf.api.days_since_last_freeze('openSUSE:Factory:Staging:B'),
1)
- self.mock_project_meta()
+ attribute_value_save(self.wf.apiurl, 'openSUSE:Factory:Staging:B',
'FreezeTime', "2021-03-04T10:23:55.127903")
self.assertGreater(self.wf.api.days_since_last_freeze('openSUSE:Factory:Staging:B'),
8)
def test_frozen_enough(self):
@@ -198,16 +196,13 @@
self.wf.create_staging('C', freeze=True, rings=1)
self.assertEqual(self.wf.api.prj_frozen_enough('openSUSE:Factory:Staging:C'),
True)
- self.mock_project_meta()
+ # pretend it's old
+ attribute_value_save(self.wf.apiurl, 'openSUSE:Factory:Staging:C',
'FreezeTime', "2021-03-04T10:23:55.127903")
self.assertEqual(self.wf.api.prj_frozen_enough('openSUSE:Factory:Staging:C'),
False)
- def mock_project_meta(self):
- body = """<directory name="_project" rev="3" vrev=""
srcmd5="9dd1ec5b77a9e953662eb32955e9066a">
- <entry name="_frozenlinks"
md5="64127b7a5dabbca0ec2bf04cd04c9195" size="16" mtime="1555000000"/>
- <entry name="_meta" md5="cf6fb1eac1a676d6c3707303ae2571ad"
size="162" mtime="1555945413"/>
- </directory>"""
-
- self.wf.api._fetch_project_meta = MagicMock(return_value=body)
+ # test old method (which still shows it's recent)
+ attribute_value_delete(self.wf.apiurl, 'openSUSE:Factory:Staging:C',
'FreezeTime')
+
self.assertEqual(self.wf.api.prj_frozen_enough('openSUSE:Factory:Staging:C'),
True)
def test_move(self):
"""Test package movement."""
++++++ openSUSE-release-tools.obsinfo ++++++
--- /var/tmp/diff_new_pack.I20h3t/_old 2022-03-05 14:45:22.255730502 +0100
+++ /var/tmp/diff_new_pack.I20h3t/_new 2022-03-05 14:45:22.271730507 +0100
@@ -1,5 +1,5 @@
name: openSUSE-release-tools
-version: 20220303.003f0105
-mtime: 1646327026
-commit: 003f010579af96ef6ffe09b700a50661ed29a9da
+version: 20220304.1479a628
+mtime: 1646399900
+commit: 1479a628529da330c8b79c3c72580caa185e4bc9