Repository :
http://git.fedorahosted.org/cgit/copr.git
On branch : master
---------------------------------------------------------------
commit 7de78fc54ed0b9bed0bedc6f969c4f108d3d25b7
Author: Valentin Gologuzov <vgologuz(a)redhat.com>
Date: Tue Sep 1 16:28:19 2015 +0200
[frontend][api] minor fixes
---------------------------------------------------------------
frontend/coprs_frontend/coprs/logic/coprs_logic.py | 4 +++-
.../coprs/rest_api/resources/project_chroot.py | 6 +++---
.../tests/test_api/test_project_chroot_r.py | 20 ++++++++++++++++++--
3 files changed, 24 insertions(+), 6 deletions(-)
diff --git a/frontend/coprs_frontend/coprs/logic/coprs_logic.py
b/frontend/coprs_frontend/coprs/logic/coprs_logic.py
index 91206cc..d5c8725 100644
--- a/frontend/coprs_frontend/coprs/logic/coprs_logic.py
+++ b/frontend/coprs_frontend/coprs/logic/coprs_logic.py
@@ -377,11 +377,13 @@ class CoprChrootsLogic(object):
@classmethod
def create_chroot(cls, user, copr, mock_chroot,
- buildroot_pkgs, comps=None, comps_name=None):
+ buildroot_pkgs=None, comps=None, comps_name=None):
"""
:type user: models.User
:type mock_chroot: models.MockChroot
"""
+ if buildroot_pkgs is None:
+ buildroot_pkgs = ""
UsersLogic.raise_if_cant_update_copr(
user, copr,
"Only owners and admins may update their projects.")
diff --git a/frontend/coprs_frontend/coprs/rest_api/resources/project_chroot.py
b/frontend/coprs_frontend/coprs/rest_api/resources/project_chroot.py
index d9043a7..294114c 100644
--- a/frontend/coprs_frontend/coprs/rest_api/resources/project_chroot.py
+++ b/frontend/coprs_frontend/coprs/rest_api/resources/project_chroot.py
@@ -15,7 +15,7 @@ from ...logic.coprs_logic import MockChrootsLogic, CoprChrootsLogic,
CoprsLogic
from ...exceptions import InsufficientRightsException, MalformedArgumentException
from ..exceptions import AccessForbidden, MalformedRequest, \
- ObjectAlreadyExists, ServerError
+ ObjectAlreadyExists, ServerError, ObjectNotFoundError
from ..common import rest_api_auth_required, render_copr_chroot
from ..schemas import CoprChrootSchema, CoprChrootCreateSchema
from ..util import get_one_safe, mm_deserialize
@@ -48,8 +48,8 @@ class ProjectChrootListR(Resource):
try:
mock_chroot = get_one_safe(MockChrootsLogic.get_from_name(name))
- except MalformedArgumentException as err:
- raise MalformedRequest("Bad mock chroot name: {}".format(err))
+ except (MalformedArgumentException, ObjectNotFoundError) as err:
+ raise MalformedRequest("Bad mock chroot name: {}. Error:
{}".format(name, err))
if mock_chroot is None:
raise MalformedRequest("Mock chroot `{}` doesn't exists"
diff --git a/frontend/coprs_frontend/tests/test_api/test_project_chroot_r.py
b/frontend/coprs_frontend/tests/test_api/test_project_chroot_r.py
index 3f84822..fef831d 100644
--- a/frontend/coprs_frontend/tests/test_api/test_project_chroot_r.py
+++ b/frontend/coprs_frontend/tests/test_api/test_project_chroot_r.py
@@ -215,6 +215,23 @@ class TestProjectChrootResource(CoprsTestCase):
assert_content(json.loads(r3.data)["chroot"])
+ def test_create_chroot_build_no_buildchroot(self, f_users, f_coprs, f_db,
f_users_api, f_mock_chroots):
+ new_chroot_name = self.mc2.name
+
+ base_data = {
+ "comps":
"<comps><group></group></comps>",
+ "comps_name": "test.xml",
+ }
+ data = {
+ "name": new_chroot_name,
+ }
+ data.update(base_data)
+ self.db.session.commit()
+
+ r0 = self.tc.get("/api_2/projects/1/chroots")
+ assert r0.status_code == 200
+ assert len(json.loads(r0.data)["chroots"]) == 1
+
def test_create_chroot_missing_name(self, f_users, f_coprs, f_db, f_users_api,
f_mock_chroots):
base_data = {
"buildroot_pkgs": ["foo", "bar"],
@@ -240,7 +257,7 @@ class TestProjectChrootResource(CoprsTestCase):
def test_create_chroot_non_existing_name(
self, f_users, f_coprs, f_db, f_users_api, f_mock_chroots):
- new_chroot_name = "completely_fake_chroot"
+ new_chroot_name = "completely-fake-chroot"
base_data = {
"buildroot_pkgs": ["foo", "bar"],
"comps":
"<comps><group></group></comps>",
@@ -251,7 +268,6 @@ class TestProjectChrootResource(CoprsTestCase):
}
data.update(base_data)
self.db.session.commit()
- self.db.session.commit()
r0 = self.tc.get("/api_2/projects/1/chroots")
assert r0.status_code == 200
assert len(json.loads(r0.data)["chroots"]) == 1