This is an automated email from the git hooks/post-receive script.
praiskup pushed a commit to branch master
in repository copr/copr.
The following commit(s) were added to refs/heads/master by this push:
new 829770b frontend: Don't submit builds when there are no CoprChroot(s)
assigned
829770b is described below
commit 829770b7dfdf3a6408cf05de0eaf7b8ba63ee33d
Author: Silvie Chlupova <sisi.chlupova(a)gmail.com>
AuthorDate: Wed Jun 10 23:44:59 2020 +0200
frontend: Don't submit builds when there are no CoprChroot(s) assigned
Fixes: #1383
Merges: #1396
---
frontend/coprs_frontend/coprs/logic/builds_logic.py | 3 +++
frontend/coprs_frontend/coprs/views/coprs_ns/coprs_builds.py | 2 +-
frontend/coprs_frontend/tests/test_logic/test_builds_logic.py | 10 ++++++++++
3 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/frontend/coprs_frontend/coprs/logic/builds_logic.py
b/frontend/coprs_frontend/coprs/logic/builds_logic.py
index 8060617..9c7c658 100644
--- a/frontend/coprs_frontend/coprs/logic/builds_logic.py
+++ b/frontend/coprs_frontend/coprs/logic/builds_logic.py
@@ -548,6 +548,9 @@ class BuildsLogic(object):
:type batch: models.Batch
:rtype: models.Build
"""
+ if not copr.active_copr_chroots:
+ raise BadRequest("Can't create build - project {} has no active
chroots".format(copr.full_name))
+
chroots = None
if chroot_names:
chroots = []
diff --git a/frontend/coprs_frontend/coprs/views/coprs_ns/coprs_builds.py
b/frontend/coprs_frontend/coprs/views/coprs_ns/coprs_builds.py
index 496af61..b29ea66 100644
--- a/frontend/coprs_frontend/coprs/views/coprs_ns/coprs_builds.py
+++ b/frontend/coprs_frontend/coprs/views/coprs_ns/coprs_builds.py
@@ -125,7 +125,7 @@ def process_new_build(copr, form, create_new_build_factory,
add_function, add_vi
try:
create_new_build_factory(**build_options)
db.session.commit()
- except (ActionInProgressException, InsufficientRightsException,
UnrepeatableBuildException) as e:
+ except (ActionInProgressException, InsufficientRightsException,
UnrepeatableBuildException, BadRequest) as e:
db.session.rollback()
flask.flash(str(e), "error")
else:
diff --git a/frontend/coprs_frontend/tests/test_logic/test_builds_logic.py
b/frontend/coprs_frontend/tests/test_logic/test_builds_logic.py
index 88185f8..2defcd0 100644
--- a/frontend/coprs_frontend/tests/test_logic/test_builds_logic.py
+++ b/frontend/coprs_frontend/tests/test_logic/test_builds_logic.py
@@ -366,3 +366,13 @@ class TestBuildsLogic(CoprsTestCase):
assert len(self.db.session.query(models.Build).all()) == 4
BuildsLogic.clean_old_builds()
assert len(self.db.session.query(models.Build).all()) == 3
+
+ @pytest.mark.usefixtures("f_users", "f_coprs",
"f_mock_chroots", "f_db")
+ def test_no_active_chroot(self):
+ self.c1.copr_chroots.clear()
+ self.db.session.commit()
+ with pytest.raises(BadRequest) as error:
+ BuildsLogic.create_new(self.u1, self.c1, 0, '{}')
+
+ assert "has no active chroots" in str(error.value)
+ assert len(self.c1.active_copr_chroots) == 0
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
Show replies by date