Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-copr-cli for openSUSE:Factory
checked in at 2022-09-27 20:14:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-copr-cli (Old)
and /work/SRC/openSUSE:Factory/.python-copr-cli.new.2275 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-copr-cli"
Tue Sep 27 20:14:17 2022 rev:3 rq:1006372 version:1.103
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-copr-cli/python-copr-cli.changes
2022-04-22 21:56:19.558947637 +0200
+++
/work/SRC/openSUSE:Factory/.python-copr-cli.new.2275/python-copr-cli.changes
2022-09-27 20:14:28.245898215 +0200
@@ -1,0 +2,16 @@
+Mon Sep 26 23:54:56 UTC 2022 - Yogalakshmi Arunachalam <[email protected]>
+
+- Update to Version 1.103:
+ -The previous release brought several enhancements and fixes for the stats
calculation mechanism but it wasn???t quite enough.
+ -This release comes with some final follow-ups. We are hoping to start
counting the RPM downloads shortly after.
+ Minor UI improvements
+ -In the project settings, the ???Edit??? button will now show only for
enabled chroots
+ -The build detail page now shows the build timeout value
+ -If a build is a part of a batch, the detail page now shows a link for it
+ -The user detail page now shows a link for the /user/repositories/
+ Bugfixes
+ #2294 - Show correct distribution images based on their OS family
+ #2293, RHBZ 2081915 - Fixed copr-frontend FTBFS for F37/Rawhide
+ RHBZ 2113156 - Fixed copr-keygen FTBFS for F37/Rawhide
+
+-------------------------------------------------------------------
Old:
----
copr-cli-1.100.tar.gz
New:
----
copr-cli-1.103.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-copr-cli.spec ++++++
--- /var/tmp/diff_new_pack.k4M7KN/_old 2022-09-27 20:14:28.965899783 +0200
+++ /var/tmp/diff_new_pack.k4M7KN/_new 2022-09-27 20:14:28.969899792 +0200
@@ -18,7 +18,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-copr-cli
-Version: 1.100
+Version: 1.103
Release: 0
Summary: Copr cli
License: GPL-2.0-or-later
++++++ copr-cli-1.100.tar.gz -> copr-cli-1.103.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/copr-cli-1.100/PKG-INFO new/copr-cli-1.103/PKG-INFO
--- old/copr-cli-1.100/PKG-INFO 2022-04-05 10:50:01.919643000 +0200
+++ new/copr-cli-1.103/PKG-INFO 2022-08-18 15:02:42.817345100 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: copr-cli
-Version: 1.100
+Version: 1.103
Summary: CLI tool to run copr
Home-page: https://pagure.io/copr/copr
Author: Pierre-Yves Chibon
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/copr-cli-1.100/copr-cli.spec
new/copr-cli-1.103/copr-cli.spec
--- old/copr-cli-1.100/copr-cli.spec 2022-04-05 10:49:51.000000000 +0200
+++ new/copr-cli-1.103/copr-cli.spec 2022-08-18 15:01:47.000000000 +0200
@@ -6,10 +6,10 @@
%global with_python2 1
%endif
-%global min_python_copr_version 1.116.2.dev
+%global min_python_copr_version 1.120.3.dev
Name: copr-cli
-Version: 1.100
+Version: 1.103
Release: 1%{?dist}
Summary: Command line interface for COPR
@@ -35,7 +35,6 @@
Requires: python3-simplejson
Requires: python3-humanize
Requires: python3-koji
-Requires: python3-requests-gssapi
Requires: python3-future
Recommends: python3-progress
@@ -50,14 +49,12 @@
BuildRequires: python3-setuptools
BuildRequires: python3-simplejson
BuildRequires: python3-munch
-BuildRequires: python3-requests-gssapi
BuildRequires: python3-future
%else
Requires: python-copr >= %min_python_copr_version
Requires: python-jinja2
Requires: python-simplejson
Requires: python-humanize
-Requires: python2-requests-gssapi
Requires: python-future
BuildRequires: pytest
@@ -70,7 +67,6 @@
BuildRequires: python-setuptools
BuildRequires: python-simplejson
BuildRequires: python-munch
-BuildRequires: python2-requests-gssapi
BuildRequires: python-future
%endif
@@ -136,6 +132,24 @@
%changelog
+* Tue Aug 16 2022 Jiri Kyjovsky <[email protected]> 1.103-1
+- add packit_forge_projects_allowed for Copr projects
+
+* Tue Jul 26 2022 Jakub Kadlcik <[email protected]> 1.102-1
+- Add support for pyp2spec generator
+- Fix the --debug test on EL7
+- Simplify cli configuration
+- Make requests-gssapi an opt-in dep in PyPI
+- Sync 'copr build' with other 'copr build*' methods
+- De-duplicate printing builds, and waiting
+- De-duplicate logic for taking dirname from arg
+- Simplify and fix progress bar
+- Add API support for runtime_dependencies
+- Print the URL of created project
+
+* Tue Jun 21 2022 Jakub Kadlcik <[email protected]> 1.101-1
+- Remove depraceted method `copr-cli buildfedpkg'
+
* Mon Apr 04 2022 Pavel Raiskup <[email protected]> 1.100-1
- list-package-names now uses pagination
- ensure that (error/info) logging is printed even without --debug
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/copr-cli-1.100/copr_cli/main.py
new/copr-cli-1.103/copr_cli/main.py
--- old/copr-cli-1.100/copr_cli/main.py 2022-04-05 10:49:51.000000000 +0200
+++ new/copr-cli-1.103/copr_cli/main.py 2022-08-18 15:01:47.000000000 +0200
@@ -36,7 +36,7 @@
from copr_cli.helpers import cli_use_output_format
from copr_cli.monitor import cli_monitor_parser
from copr_cli.printers import cli_get_output_printer as get_printer
-from .util import ProgressBar, serializable
+from copr_cli.util import get_progress_callback, serializable
from .build_config import MockProfile
@@ -62,17 +62,6 @@
None: "default",
}
-no_config_warning = """
-================= WARNING: =======================
-File '{0}' is incorrect.
-See documentation: man copr-cli.
-Any operation requiring credentials will fail!
-==================================================
-
-Hint: {1}
-
-"""
-
try:
input = raw_input
except NameError:
@@ -103,7 +92,7 @@
setattr(namespace, self.dest, values)
-def buildopts_from_args(args, progress_callback):
+def buildopts_from_args(args, progress_callback=None):
"""
For all the build commands, parse the common set of build options.
"""
@@ -146,13 +135,7 @@
class Commands(object):
def __init__(self, config_path):
- self.config_path = config_path or '~/.config/copr'
-
- try:
- self.config = config_from_file(self.config_path)
- except CoprConfigException as ex:
- sys.stderr.write(no_config_warning.format(self.config_path, ex))
- self.config = {"copr_url": "http://copr.fedoraproject.org"}
+ self.config = config_from_file(config_path)
if self.config.get("gssapi") is None:
# Contrary to what is set in python-copr, we set GSSAPI on by
@@ -203,6 +186,16 @@
owner = self.ownername
return owner, name
+ def parse_dirname(self, name):
+ """
+ From specified <owner>/<dirname> or just <dirname> return the
+ tripled (owner, project, dirname).
+ """
+ owner, dirname = self.parse_name(name)
+ project = dirname.split(':')[0]
+ return owner, project, dirname
+
+
def build_url(self, build_id):
"""
Return the "generic" predictable url for build_id, which redirects
@@ -319,29 +312,34 @@
# that the user actually has a valid credentials.
self.client.base_proxy.auth_check()
+ username, projectname, project_dirname =
self.parse_dirname(args.copr_repo)
+
builds = []
for pkg in args.pkgs:
if os.path.exists(pkg):
- bar = ProgressBar(max=os.path.getsize(pkg))
- build_function = self.client.build_proxy.create_from_file
+ progress_callback = get_progress_callback(os.path.getsize(pkg))
+ buildopts = buildopts_from_args(args, progress_callback)
data = {"path": pkg}
-
- # pylint: disable=function-redefined
- def progress_callback(monitor):
- bar.next(n=8192)
-
print('Uploading package {0}'.format(pkg))
+ try:
+ builds.append(self.client.build_proxy.create_from_file(
+ ownername=username, projectname=projectname,
+ project_dirname=project_dirname, buildopts=buildopts,
+ **data))
+ finally:
+ if progress_callback:
+ progress_callback.finish()
elif not urlparse(pkg).scheme:
raise CoprException("File {0} not found".format(pkg))
else:
- bar = None
- progress_callback = None
- build_function = self.client.build_proxy.create_from_url
+ buildopts = buildopts_from_args(args)
data = {"url": pkg}
+ builds.append(self.client.build_proxy.create_from_url(
+ ownername=username, projectname=projectname,
+ project_dirname=project_dirname, buildopts=buildopts,
+ **data))
- builds.append(self.process_build(args, build_function, data,
bar=bar, progress_callback=progress_callback))
-
- return builds
+ self.print_build_info_and_wait(builds, args)
@requires_api_auth
def action_build_pypi(self, args):
@@ -353,6 +351,7 @@
data = {
"pypi_package_name": args.packagename,
"pypi_package_version": args.packageversion,
+ "spec_generator": args.spec_generator,
"spec_template": args.spec_template,
"python_versions": args.pythonversions,
}
@@ -412,43 +411,34 @@
data[arg] = getattr(args, arg)
return self.process_build(args,
self.client.build_proxy.create_from_custom, data)
- @requires_api_auth
- def action_build_distgit(self, args):
+ def print_build_info_and_wait(self, builds, args):
"""
- Method called when the 'buildfedpkg' action has been selected by the
user.
-
- :param args: argparse arguments provided by the user
+ Print to stdout information about just submitted builds. Note that our
+ users parse this non-parseable output, because we don't have issue #224
+ fixed.
"""
- data = {"clone_url": args.clone_url, "committish": args.branch}
- return self.process_build(args,
self.client.build_proxy.create_from_scm, data)
- def process_build(self, args, build_function, data, bar=None,
progress_callback=None):
- username, project_dirname = self.parse_name(args.copr_repo)
- projectname = project_dirname.split(':')[0]
+ print("Build was added to {0}:".format(builds[0].projectname))
- try:
- buildopts = buildopts_from_args(args, progress_callback)
- result = build_function(ownername=username,
projectname=projectname,
- project_dirname=project_dirname,
buildopts=buildopts, **data)
-
- builds = result if type(result) == list else [result]
- print("Build was added to {0}:".format(builds[0].projectname))
-
- for build in builds:
- print(" {0}".format(self.build_url(build.id)))
-
- build_ids = [build.id for build in builds]
- print("Created builds: {0}".format(" ".join(map(str, build_ids))))
-
- if not args.nowait:
- self._watch_builds(build_ids)
-
- except CoprException as ex:
- sys.stderr.write(str(ex) + "\n")
- sys.exit(1)
- finally:
- if bar:
- bar.finish()
+ for build in builds:
+ print(" {0}".format(self.build_url(build.id)))
+
+ build_ids = [build.id for build in builds]
+ print("Created builds: {0}".format(" ".join(map(str, build_ids))))
+
+ if not args.nowait:
+ self._watch_builds(build_ids)
+
+
+ def process_build(self, args, build_function, data):
+ username, projectname, project_dirname =
self.parse_dirname(args.copr_repo)
+ buildopts = buildopts_from_args(args)
+ result = build_function(ownername=username,
+ projectname=projectname,
+ project_dirname=project_dirname,
+ buildopts=buildopts, **data)
+ builds = result if type(result) == list else [result]
+ self.print_build_info_and_wait(builds, args)
@requires_api_auth
@@ -476,8 +466,14 @@
module_hotfixes=ON_OFF_MAP[args.module_hotfixes],
fedora_review=args.fedora_review,
appstream=ON_OFF_MAP[args.appstream],
+ runtime_dependencies=args.runtime_dependencies,
+ packit_forge_projects_allowed=args.packit_forge_projects_allowed,
)
- print("New project was successfully created.")
+
+ owner_part = username.replace('@', "g/")
+ project_url = '/'.join([self.client.config["copr_url"].strip("/"),
+ 'coprs', owner_part, copr, ""])
+ print("New project was successfully created: {0}".format(project_url))
@requires_api_auth
def action_modify_project(self, args):
@@ -502,6 +498,8 @@
module_hotfixes=ON_OFF_MAP[args.module_hotfixes],
fedora_review=ON_OFF_MAP[args.fedora_review],
appstream=ON_OFF_MAP[args.appstream],
+ runtime_dependencies=args.runtime_dependencies,
+ packit_forge_projects_allowed=args.packit_forge_projects_allowed,
)
@requires_api_auth
@@ -730,6 +728,7 @@
"package_name": args.name,
"pypi_package_name": args.packagename,
"pypi_package_version": args.packageversion,
+ "spec_generator": args.spec_generator,
"spec_template": args.spec_template,
"python_versions": args.pythonversions,
"max_builds": args.max_builds,
@@ -907,17 +906,13 @@
print("Package's default source was successfully reseted.")
def action_build_package(self, args):
- ownername, project_dirname = self.parse_name(args.copr_repo)
- projectname = project_dirname.split(':')[0]
- buildopts = buildopts_from_args(args, None)
+ ownername, projectname, project_dirname =
self.parse_dirname(args.copr_repo)
+
+ buildopts = buildopts_from_args(args)
build = self.client.package_proxy.build(ownername=ownername,
projectname=projectname,
packagename=args.name,
buildopts=buildopts,
project_dirname=project_dirname)
- print("Build was added to {0}.".format(build.projectname))
- print("Created builds: {0}".format(build.id))
-
- if not args.nowait:
- self._watch_builds([build.id])
+ self.print_build_info_and_wait([build], args)
def action_build_module(self, args):
"""
@@ -972,6 +967,33 @@
request)
print("success")
+
+def create_and_modify_common_opts(parser):
+ """
+ De-duplicate options for 'copr create' and 'copr modify' options.
+ """
+ parser.add_argument(
+ "--repo", dest="repos", action="append", metavar="REPO_BASEURL", help=(
+ "Repository that will be enabled at package build time, can be "
+ "specified multiple times."
+ ))
+ parser.add_argument(
+ "--runtime-repo-dependency", dest="runtime_dependencies",
+ metavar="REPO_BASEURL", action="append", help=(
+ "Repository that will be automatically enabled together "
+ "with repository from this copr, e.g. by `dnf copr enable`. "
+ "This can be specified multiple times."
+ ))
+
+ parser.add_argument(
+ "--packit-forge-project-allowed", dest="packit_forge_projects_allowed",
+ metavar="FORGE_PROJECT", action="append", help=(
+ "Forge project that will be allowed to build in this project "
+ "via Packit in format github.com/packit/ogr. "
+ "Can be specified multiple times."
+ ))
+
+
def setup_parser():
"""
Set the main arguments.
@@ -1042,8 +1064,9 @@
help="The name of the copr to create")
parser_create.add_argument("--chroot", dest="chroots", action="append",
help="Chroot to use for this copr")
- parser_create.add_argument("--repo", dest="repos", action="append",
- help="Repository to add to this copr")
+
+
+
parser_create.add_argument("--initial-pkgs", dest="initial_pkgs",
action="append",
help="List of packages URL to build in this "
@@ -1103,6 +1126,8 @@
help=("Generate AppStream metadata for this project. Generating "
"metadata slows down the builds in large Copr projects."))
+ create_and_modify_common_opts(parser_create)
+
parser_create.set_defaults(func="action_create")
# create the parser for the "modify_project" command
@@ -1115,8 +1140,6 @@
help="Description of the copr")
parser_modify.add_argument("--instructions",
help="Instructions for the copr")
- parser_modify.add_argument("--repo", dest="repos", action="append",
- help="Repository to add to this copr")
parser_modify.add_argument("--disable_createrepo", type=str2bool,
help="Disable metadata auto generation")
parser_modify.add_argument("--enable-net", choices=["on", "off"],
@@ -1161,6 +1184,8 @@
help=("Generate AppStream metadata for this project. Generating "
"metadata slows down the builds in large Copr projects."))
+ create_and_modify_common_opts(parser_modify)
+
parser_modify.set_defaults(func="action_modify_project")
# create the parser for the "delete" command
@@ -1201,6 +1226,15 @@
help="For what Python versions to
build (by default: 3 2)")
parser_pypi_args_optional.add_argument("--packageversion", metavar =
"PYPIVERSION",
help="Version of the PyPI package to
be built (by default latest)")
+
+ parser_pypi_args_optional.add_argument(
+ "--spec-generator",
+ dest="spec_generator",
+ help="Tool for generating specfile from a PyPI package",
+ choices=["pyp2rpm", "pyp2spec"],
+ default="pyp2rpm",
+ )
+
parser_pypi_args_optional.add_argument("--template", "-t",
dest="spec_template",
help="Spec template to be used to
build srpm with pyp2rpm")
@@ -1358,11 +1392,6 @@
help="Build packages from SRPM generated by custom script")
parser_build_custom.set_defaults(func="action_build_custom")
- # create the parser for the "buildfedpkg" command
- parser_build_distgit = subparsers.add_parser("buildfedpkg",
parents=[parser_distgit_args_parent, parser_build_parent],
- help="DEPRECATED. Use SCM
source type instead.")
- parser_build_distgit.set_defaults(func="action_build_distgit")
-
# create the parser for the "buildscm" command
parser_build_scm = subparsers.add_parser("buildscm",
parents=[parser_scm_args_parent, parser_build_parent],
help="Builds package from
Git/DistGit/SVN repository.")
@@ -1788,7 +1817,7 @@
def _handle_frontend_api_request_error(e, args):
- if "Request is not in JSON format" not in str(e):
+ if "is not in JSON format" not in str(e):
return
if not args.debug:
sys.stderr.write("Try 'copr-cli --debug' for more info.\n")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/copr-cli-1.100/copr_cli/util.py
new/copr-cli-1.103/copr_cli/util.py
--- old/copr-cli-1.100/copr_cli/util.py 2021-08-26 09:11:24.000000000 +0200
+++ new/copr-cli-1.103/copr_cli/util.py 2022-08-18 15:01:47.000000000 +0200
@@ -6,43 +6,54 @@
try:
from progress.bar import Bar
-except ImportError:
- progress = False
-else:
- progress = True
+ class SpeedProgressBar(Bar):
+ """
+ Modified progress.bar.Bar with additional formatters %(download_speed)
+ and %(downloaded), with additional interface supported by
+ MultipartEncoderMonitor API.
+ Bar accepts the last N downloaded bytes, while MultipartEncoderMonitor
+ callback provides the total number of downloaded bytes. N needs to be
+ calculated.
+ """
-class ProgressMixin(object):
-
- @property
- def download_speed(self):
- if self.avg == 0.0:
- return "..."
- return "{0}/s".format(humanize.naturalsize(1 / self.avg))
-
- @property
- def downloaded(self):
- return humanize.naturalsize(self.index)
-
+ message = "%(percent)d%%"
+ suffix = "%(downloaded)s %(download_speed)s eta %(eta_td)s"
+ read_last = 0
-class DummyBar(object):
- # pylint: disable=redefined-builtin
- def __init__(self, max=None):
- pass
+ @property
+ def download_speed(self):
+ """ Inverted value of Bar.avg """
+ if self.avg == 0.0:
+ return "..."
+ return "{0}/s".format(humanize.naturalsize(1 / self.avg))
+
+ @property
+ def downloaded(self):
+ """ How many bytes are already downloaded """
+ return humanize.naturalsize(self.index)
+
+ def __call__(self, monitor):
+ """ MultipartEncoderMonitor expects callable """
+ read = monitor.bytes_read - self.read_last
+ self.read_last = monitor.bytes_read
+ self.next(read)
- def next(self, n=None):
- pass
- def finish(self):
- pass
+except ImportError:
+ progress = False
+else:
+ progress = True
-if progress:
- class ProgressBar(Bar, ProgressMixin):
- message = "%(percent)d%%"
- suffix = "%(downloaded)s %(download_speed)s eta %(eta_td)s"
-else:
- ProgressBar = DummyBar
+def get_progress_callback(length):
+ """
+ If python-progress is installed, instantiate progress bar object.
Otherwise
+ just return None.
+ """
+ if not progress:
+ return None
+ return SpeedProgressBar(max=length)
def serializable(result):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/copr-cli-1.100/copr_cli.egg-info/PKG-INFO
new/copr-cli-1.103/copr_cli.egg-info/PKG-INFO
--- old/copr-cli-1.100/copr_cli.egg-info/PKG-INFO 2022-04-05
10:50:01.000000000 +0200
+++ new/copr-cli-1.103/copr_cli.egg-info/PKG-INFO 2022-08-18
15:02:42.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: copr-cli
-Version: 1.100
+Version: 1.103
Summary: CLI tool to run copr
Home-page: https://pagure.io/copr/copr
Author: Pierre-Yves Chibon
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/copr-cli-1.100/copr_cli.egg-info/requires.txt
new/copr-cli-1.103/copr_cli.egg-info/requires.txt
--- old/copr-cli-1.100/copr_cli.egg-info/requires.txt 2022-04-05
10:50:01.000000000 +0200
+++ new/copr-cli-1.103/copr_cli.egg-info/requires.txt 2022-08-18
15:02:42.000000000 +0200
@@ -3,5 +3,4 @@
simplejson
jinja2
setuptools
-requests-gssapi
future
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/copr-cli-1.100/man/copr-cli.1.asciidoc
new/copr-cli-1.103/man/copr-cli.1.asciidoc
--- old/copr-cli-1.100/man/copr-cli.1.asciidoc 2022-04-05 10:49:51.000000000
+0200
+++ new/copr-cli-1.103/man/copr-cli.1.asciidoc 2022-08-18 15:01:47.000000000
+0200
@@ -279,80 +279,6 @@
For the rest of the arguments, see `copr-cli build` command above.
-`copr-cli buildtito [options]`
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-usage: copr buildtito [-h] [--memory MEMORY] [--timeout TIMEOUT] [--nowait]
- [--background]
- [-r CHROOTS] [--git-url URL] [--git-dir DIRECTORY]
- [--git-branch BRANCH] [--test]
- project
-
-Deprecated by SCM source type.
-
---git-url URL::
-Url to a project managed by Tito, required.
-
---git-dir DIRECTORY::
-Relative path from Git root to directory containing .spec file.
-
---git-branch BRANCH::
-Checokut specific branch on the repository.
-
---test::
-To build from the last commit instead of the last release tag.
-
-
-For the rest of the arguments, see `copr-cli build` command above.
-
-
-`copr-cli buildmock [options]`
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-usage: copr buildmock [-h] [--memory MEMORY] [--timeout TIMEOUT] [--nowait]
- [--background]
- [-r CHROOTS] [--scm-type TYPE] [--scm-url URL]
- [--scm-branch BRANCH] [--spec FILE]
- project
-
-Deprecated by SCM source type.
-
---scm-type TYPE::
-Specify versioning tool, default is 'git'.
-
---scm-url URL::
-Url to a project versioned by Git or SVN, required.
-
---scm-branch BRANCH::
-Checokut specific branch on the repository.
-
---spec FILE::
-Relative path from SCM root to .spec file, required.
-
-
-For the rest of the arguments, see `copr-cli build` command above.
-
-
-`copr-cli buildfedpkg [options]`
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-usage: copr buildfedpkg [-h] [--memory MEMORY] [--timeout TIMEOUT] [--nowait]
- [--background]
- [-r CHROOTS] [--clone-url URL] [--branch BRANCH]
- project
-
-Deprecated by SCM source type.
-
---clone-url URL::
-Specify clone url to the dist-git project on pkgs.fedoraproject.org.
-
---branch BRANCH::
-Specify branch in the dist-git project to be be built from.
-
-
-For the rest of the arguments, see `copr-cli build` command above.
-
-
`copr-cli buildscm [options]`
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -473,44 +399,6 @@
PACKAGE ACTIONS
---------------
-`copr-cli add-package-tito [options]`
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-usage: copr add-package-tito [-h] --git-url URL [--git-dir DIRECTORY]
- [--git-branch BRANCH] [--test {on,off}] --name
- PKGNAME [--webhook-rebuild {on,off}]
- project
-
-Deprecated by SCM source type.
-
---git-url URL::
-URL to a project managed by Tito
-
---git-dir DIRECTORY::
-Relative path from Git root to directory containing .spec file
-
---git-branch BRANCH::
-Git branch that you want to build from
-
---test {on,off}::
-Build the last commit instead of the last release tag
-
---name PKGNAME::
-Name of the package to be edited or created
-
---webhook-rebuild {on,off}::
-Enable auto-rebuilding.
-
-
-`copr-cli edit-package-tito [options]`
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-usage: copr edit-package-tito [-h] --git-url URL [--git-dir DIRECTORY]
- [--git-branch BRANCH] [--test {on,off}] --name
- PKGNAME [--webhook-rebuild {on,off}]
- project
-
-Deprecated by SCM source type.
-
`copr-cli add-package-pypi [options]`
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -551,46 +439,6 @@
Edit source definition and type of an existing package. Options are shared
with add-package-pypi.
-`copr-cli add-package-mockscm [options]`
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-usage: copr add-package-mockscm [-h] [--scm-type TYPE] [--scm-url URL]
- [--scm-branch BRANCH] [--spec FILE] --name
- PKGNAME [--webhook-rebuild {on,off}]
- project
-
-Deprecated by SCM source type.
-
---scm-type TYPE::
-Specify versioning tool, default is 'git'
-
---scm-url URL::
-Url to a project versioned by Git or SVN, required
-
---scm-branch BRANCH::
-Branch in the target repository to build from
-
---spec FILE::
-Relative path from SCM root to .spec file, required
-
---name PKGNAME::
-Name of the package to be edited or created
-
---webhook-rebuild {on,off}::
-Enable auto-rebuilding
-
-
-`copr-cli edit-package-mockscm [options]`
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-usage: copr edit-package-mockscm [-h] [--scm-type TYPE] [--scm-url URL]
- [--scm-branch BRANCH] [--spec FILE] --name
- PKGNAME [--webhook-rebuild {on,off}]
- project
-
-Deprecated by SCM source type.
-
-
`copr-cli add-package-scm [options]`
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
usage: copr add-package-scm [-h] --clone-url CLONE_URL [--commit COMMITTISH]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/copr-cli-1.100/setup.py new/copr-cli-1.103/setup.py
--- old/copr-cli-1.100/setup.py 2022-04-05 10:49:51.000000000 +0200
+++ new/copr-cli-1.103/setup.py 2022-08-18 15:01:47.000000000 +0200
@@ -19,7 +19,6 @@
'simplejson',
'jinja2',
'setuptools',
- 'requests-gssapi',
'future',
]
@@ -32,7 +31,7 @@
setup(
name=__name__,
- version="1.100",
+ version="1.103",
description=__description__,
long_description=long_description,
author=__author__,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/copr-cli-1.100/tests/test_cli.py
new/copr-cli-1.103/tests/test_cli.py
--- old/copr-cli-1.100/tests/test_cli.py 2022-04-05 10:49:51.000000000
+0200
+++ new/copr-cli-1.103/tests/test_cli.py 2022-08-18 15:01:47.000000000
+0200
@@ -1,6 +1,7 @@
import os
import argparse
import json
+import logging
import shutil
import tempfile
import pytest
@@ -337,10 +338,18 @@
response_status = "foobar"
build_proxy_get.return_value = MagicMock(state=response_status)
+ # The main() --debug option affects the logger configuration, and capsys
has
+ # trouble to restore the state back after the test case. Let's help it.
+ # More info: # https://github.com/pytest-dev/pytest/issues/14
+ # This handler backup-restore appears to be needed on EL7 only.
+ log = logging.getLogger()
+ old_handlers = list(log.handlers)
+
main.main(argv=["--debug", "status", "123"])
stdout, stderr = capsys.readouterr()
assert "{0}\n".format(response_status) in stdout
assert "Debug log enabled " in stderr
+ log.handlers = old_handlers
def test_status_response_no_args(capsys):
@@ -467,8 +476,10 @@
"module_hotfixes": False,
"fedora_review": False,
"appstream": True,
+ "runtime_dependencies": None,
+ "packit_forge_projects_allowed": None,
}
- assert stdout == "New project was successfully created.\n"
+ assert stdout == "New project was successfully created:
http://copr/coprs/jdoe/foo/\n"
@mock.patch('copr.v3.proxies.project.ProjectProxy.add')
@@ -485,7 +496,7 @@
kwargs = project_proxy_add.call_args[1]
assert stderr == ''
assert kwargs["isolation"] == "simple"
- assert stdout == "New project was successfully created.\n"
+ assert stdout == "New project was successfully created:
http://copr/coprs/jdoe/foo/\n"
@mock.patch('copr.v3.proxies.project_chroot.ProjectChrootProxy.edit')
@@ -560,8 +571,10 @@
"module_hotfixes": False,
"fedora_review": False,
"appstream": True,
+ "runtime_dependencies": None,
+ "packit_forge_projects_allowed": None,
}
- assert stdout == "New project was successfully created.\n"
+ assert stdout == "New project was successfully created:
http://copr/coprs/jdoe/foo/\n"
@mock.patch('copr.v3.proxies.BaseProxy.auth_check',
return_value=Munch(name="test"))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/copr-cli-1.100/tests/test_distgit.py
new/copr-cli-1.103/tests/test_distgit.py
--- old/copr-cli-1.100/tests/test_distgit.py 2022-04-05 10:49:51.000000000
+0200
+++ new/copr-cli-1.103/tests/test_distgit.py 2022-08-18 15:01:47.000000000
+0200
@@ -8,11 +8,11 @@
import pytest
import copr
-from copr_cli import main
-from cli_tests_lib import mock
-
# pylint: disable=unused-import
from cli_tests_lib import f_test_config
+from cli_tests_lib import mock
+from cli_tests_lib import config as mock_config
+from copr_cli import main
def _main(args, capsys):
main.main(args)
@@ -142,8 +142,9 @@
'webhook_rebuild': True})
@staticmethod
- @mock.patch('copr.v3.proxies.BaseProxy.auth',
new_callable=mock.PropertyMock, return_value="test")
- def test_edit_package_fail(auth, capsys):
+ @mock.patch('copr.v3.proxies.BaseProxy.auth_check',
return_value=Munch(name="test"))
+ @mock.patch('copr_cli.main.config_from_file', return_value=mock_config)
+ def test_edit_package_fail(auth_check, mock_config, capsys):
with mock.patch("copr.v3.proxies.package.PackageProxy.edit") as p1:
p1.side_effect = copr.v3.CoprRequestException("Unable to connect
to http://copr/api_3/.")
with pytest.raises(SystemExit) as exc: