Skip to content

Commit 0cbf968

Browse files
frontend: Add distgit source and namespace to source_json
1 parent 3ef4ec8 commit 0cbf968

File tree

3 files changed

+36
-2
lines changed

3 files changed

+36
-2
lines changed

frontend/coprs_frontend/coprs/logic/builds_logic.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -672,6 +672,11 @@ def create_new_from_distgit(cls, user, copr, package_name,
672672
source_dict["clone_url"] = DistGitLogic.get_clone_url(
673673
distgit_name, package_name, distgit_namespace)
674674

675+
if distgit_name:
676+
source_dict["distgit"] = distgit_name
677+
678+
if distgit_namespace:
679+
source_dict["namespace"] = distgit_namespace
675680
if committish:
676681
source_dict["committish"] = committish
677682

frontend/coprs_frontend/tests/test_apiv3/test_builds.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
},
3131
{
3232
"clone_url": "git://prio.com/some/other/uri/mock/git",
33+
"distgit": "prioritized",
3334
},
3435
{
3536
"distgit": "prioritized",
@@ -43,8 +44,8 @@
4344
"distgit": "fedora",
4445
},
4546
{
46-
# no need to store "distgit" to source_json
47-
"clone_url": "https://src.fedoraproject.org/rpms/cpio"
47+
"clone_url": "https://src.fedoraproject.org/rpms/cpio",
48+
"distgit": "fedora",
4849
},
4950
{
5051
"distgit": "fedora",
@@ -60,6 +61,7 @@
6061
{
6162
"committish": "f15",
6263
"clone_url": "git://prio.com/some/other/uri/tar/git",
64+
"distgit": "prioritized",
6365
},
6466
{
6567
"distgit": "prioritized",
@@ -76,6 +78,8 @@
7678
},
7779
{
7880
"clone_url": "https://namespaced.org/some/other/uri/@copr/copr/blah/git",
81+
"distgit": "namespaced",
82+
"namespace": "@copr/copr",
7983
},
8084
{
8185
"distgit": "namespaced",

frontend/coprs_frontend/tests/test_views/test_coprs_ns/test_method_distgit.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,36 @@ def test_copr_user_can_add_distgit_build(self):
2828
assert build.source_type == BuildSourceEnum.distgit
2929
assert build.source_json == json.dumps({
3030
"clone_url": "https://src.fedoraproject.org/rpms/mock",
31+
"distgit": "fedora",
3132
"committish": "master"})
3233

3334
assert len(build.chroots) == 1
3435
assert build.chroots[0].name == "fedora-18-x86_64"
3536

37+
@TransactionDecorator("u1")
38+
@pytest.mark.usefixtures("f_users", "f_coprs", "f_mock_chroots", "f_db")
39+
def test_distgit_build_stores_namespace_distgit(self):
40+
"""
41+
Test that distgit_namespace and distgit source is stored in source_json when provided.
42+
"""
43+
self.db.session.add_all([self.u1, self.c1])
44+
data = {
45+
"package_name": "mock",
46+
"committish": "master",
47+
"namespace": "forks/testuser",
48+
"chroots": ["fedora-18-x86_64"],
49+
}
50+
endpoint = "/coprs/{0}/{1}/new_build_distgit/".format(self.u1.name,
51+
self.c1.name)
52+
self.test_client.post(endpoint, data=data, follow_redirects=True)
53+
build = self.models.Build.query.first()
54+
assert build.source_type == BuildSourceEnum.distgit
55+
source_dict = json.loads(build.source_json)
56+
assert "namespace" in source_dict
57+
assert "distgit" in source_dict
58+
assert source_dict["namespace"] == "forks/testuser"
59+
assert source_dict["distgit"] == "fedora"
60+
3661
@TransactionDecorator("u1")
3762
@pytest.mark.usefixtures("f_users", "f_coprs", "f_mock_chroots", "f_db")
3863
def test_copr_user_can_add_distgit_package(self):

0 commit comments

Comments
 (0)