Repository :
http://git.fedorahosted.org/cgit/copr.git
On branch : master
---------------------------------------------------------------
commit cd3f8bb070a91077418c03fd4c14687555a9b3b7
Author: Valentin Gologuzov <vgologuz(a)redhat.com>
Date: Mon Aug 31 13:43:28 2015 +0200
[frontend][api] Update tests relatedto BuildsLogic
---------------------------------------------------------------
frontend/coprs_frontend/tests/coprs_test_case.py | 17 +++++++----
.../tests/test_logic/test_builds_logic.py | 6 ++-
.../test_backend_ns/test_backend_general.py | 25 ++++------------
.../test_views/test_coprs_ns/test_coprs_builds.py | 32 ++++++++++++++++++-
4 files changed, 51 insertions(+), 29 deletions(-)
diff --git a/frontend/coprs_frontend/tests/coprs_test_case.py
b/frontend/coprs_frontend/tests/coprs_test_case.py
index dedc68b..a6dff96 100644
--- a/frontend/coprs_frontend/tests/coprs_test_case.py
+++ b/frontend/coprs_frontend/tests/coprs_test_case.py
@@ -225,13 +225,14 @@ class CoprsTestCase(object):
buildchroot = models.BuildChroot(
build=build,
mock_chroot=chroot,
- status=status)
+ status=status,
+ git_hash="12345",
+ )
- if build is self.b1:
- buildchroot.started_on = 139086644000
- if build is self.b2:
+ if build is [self.b1, self.b2]:
buildchroot.started_on = 139086644000
buildchroot.ended_on = 149086644000
+ build.ended_on = 149086644000
build_chroots.append(buildchroot)
self.db.session.add(buildchroot)
@@ -265,7 +266,9 @@ class CoprsTestCase(object):
buildchroot = models.BuildChroot(
build=self.b_few_chroots,
mock_chroot=chroot,
- status=self.status_by_chroot[chroot.name])
+ status=self.status_by_chroot[chroot.name],
+ git_hash="12345",
+ )
self.db.session.add(buildchroot)
self.db.session.add(self.b_few_chroots)
@@ -303,7 +306,9 @@ class CoprsTestCase(object):
buildchroot = models.BuildChroot(
build=self.b_many_chroots,
mock_chroot=chroot,
- status=self.status_by_chroot[chroot.name])
+ status=self.status_by_chroot[chroot.name],
+ git_hash="12345",
+ )
self.db.session.add(buildchroot)
self.db.session.add(self.b_many_chroots)
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 b99955d..97d3ab2 100644
--- a/frontend/coprs_frontend/tests/test_logic/test_builds_logic.py
+++ b/frontend/coprs_frontend/tests/test_logic/test_builds_logic.py
@@ -143,6 +143,7 @@ class TestBuildsLogic(CoprsTestCase):
self.b4.pkgs = "http://example.com/copr-keygen-1.58-1.fc20.src.rpm"
self.b4.ended_on = time.time()
+ expected_dir = self.b4.result_dir_name
for bc in self.b4_bc:
bc.status = StatusEnum("succeeded")
bc.ended_on = time.time()
@@ -166,7 +167,7 @@ class TestBuildsLogic(CoprsTestCase):
action = ActionsLogic.get_many().one()
delete_data = json.loads(action.data)
assert "chroots" in delete_data
- assert "copr-keygen-1.58-1.fc20" ==
delete_data["src_pkg_name"]
+ assert delete_data["result_dir_name"] == expected_dir
assert expected_chroots_to_delete == set(delete_data["chroots"])
with pytest.raises(NoResultFound):
@@ -176,6 +177,7 @@ class TestBuildsLogic(CoprsTestCase):
self, f_users, f_coprs, f_mock_chroots, f_builds, f_db):
self.b1.pkgs = "http://example.com/copr-keygen-1.58-1.fc20.src.rpm"
+ expected_dir = self.b1.result_dir_name
self.db.session.add(self.b1)
self.db.session.commit()
@@ -191,7 +193,7 @@ class TestBuildsLogic(CoprsTestCase):
action = ActionsLogic.get_many().one()
delete_data = json.loads(action.data)
assert "chroots" in delete_data
- assert "copr-keygen-1.58-1.fc20" ==
delete_data["src_pkg_name"]
+ assert delete_data["result_dir_name"] == expected_dir
assert expected_chroots_to_delete == set(delete_data["chroots"])
with pytest.raises(NoResultFound):
diff --git
a/frontend/coprs_frontend/tests/test_views/test_backend_ns/test_backend_general.py
b/frontend/coprs_frontend/tests/test_views/test_backend_ns/test_backend_general.py
index ca4ce18..3b8a748 100644
--- a/frontend/coprs_frontend/tests/test_views/test_backend_ns/test_backend_general.py
+++ b/frontend/coprs_frontend/tests/test_views/test_backend_ns/test_backend_general.py
@@ -55,6 +55,8 @@ class TestUpdateBuilds(CoprsTestCase):
{
"id": 1,
"copr_id": 2,
+ "chroot": "fedora-18-x86_64",
+ "status": 6,
"started_on": 139086644000
},
{
@@ -69,11 +71,13 @@ class TestUpdateBuilds(CoprsTestCase):
"id": 123321,
"copr_id": 1,
"status": 0,
+ "chroot": "fedora-18-x86_64",
"ended_on": 139086644000
},
{
"id": 1234321,
"copr_id": 2,
+ "chroot": "fedora-18-x86_64",
"results": "http://server/results/foo/bar/",
"started_on": 139086644000
}
@@ -86,23 +90,7 @@ class TestUpdateBuilds(CoprsTestCase):
data="")
assert "You have to provide the correct password" in r.data
- def test_update_build_started(self, f_users, f_coprs, f_mock_chroots, f_builds,
f_db):
- self.b1.started_on = None
- self.db.session.add(self.b1)
- self.db.session.commit()
-
- r = self.tc.post("/backend/update/",
- content_type="application/json",
- headers=self.auth_header,
- data=self.data1)
- assert json.loads(r.data)["updated_builds_ids"] == [1]
- assert json.loads(r.data)["non_existing_builds_ids"] == []
-
- updated = self.models.Build.query.filter(
- self.models.Build.id == 1).one()
-
- assert updated.results == "http://server/results/foo/bar/"
- assert updated.chroots_started_on == {'fedora-18-x86_64': 139086644000}
+ # todo: add test for `backend/starting_build/`
def test_update_build_ended(self, f_users, f_coprs, f_mock_chroots,
f_builds, f_db):
@@ -114,10 +102,9 @@ class TestUpdateBuilds(CoprsTestCase):
assert json.loads(r.data)["updated_builds_ids"] == [1]
assert json.loads(r.data)["non_existing_builds_ids"] == []
- # import ipdb; ipdb.set_trace()
updated = self.models.Build.query.filter(
self.models.Build.id == 1).one()
- # import ipdb; ipdb.set_trace()
+
assert updated.status == 1
assert updated.chroots_ended_on == {'fedora-18-x86_64': 149086644000}
diff --git a/frontend/coprs_frontend/tests/test_views/test_coprs_ns/test_coprs_builds.py
b/frontend/coprs_frontend/tests/test_views/test_coprs_ns/test_coprs_builds.py
index 7bb818f..aafc17c 100644
--- a/frontend/coprs_frontend/tests/test_views/test_coprs_ns/test_coprs_builds.py
+++ b/frontend/coprs_frontend/tests/test_views/test_coprs_ns/test_coprs_builds.py
@@ -115,12 +115,15 @@ class TestCoprCancelBuild(CoprsTestCase):
class TestCoprDeleteBuild(CoprsTestCase):
@TransactionDecorator("u1")
- def test_copr_build_submitter_can_delete_build(self, f_users,
+ def test_copr_build_submitter_can_delete_build_old(self, f_users,
f_coprs, f_mock_chroots,
- f_builds, f_db):
+ f_builds):
pkgs = "http://example.com/one.src.rpm"
self.b1.pkgs = pkgs
+ for bc in self.b1_bc:
+ bc.git_hash = None
+ self.db.session.add_all(self.b1_bc)
self.db.session.add_all([self.u1, self.c1, self.b1])
self.db.session.commit()
@@ -139,6 +142,31 @@ class TestCoprDeleteBuild(CoprsTestCase):
assert act.old_value == "user1/foocopr"
assert json.loads(act.data)["src_pkg_name"] == self.b1.src_pkg_name
+ @TransactionDecorator("u1")
+ def test_copr_build_submitter_can_delete_build(self, f_users,
+ f_coprs, f_mock_chroots,
+ f_builds):
+ self.db.session.add_all([self.u1, self.c1, self.b1])
+ self.db.session.commit()
+ expected_dir = self.b1.result_dir_name
+ b_id = self.b1.id
+ url = "/coprs/{0}/{1}/delete_build/{2}/".format(self.u1.name,
self.c1.name, b_id)
+
+ r = self.test_client.post(
+ url, data={}, follow_redirects=True)
+ assert r.status_code == 200
+
+ b = (
+ self.models.Build.query
+ .filter(self.models.Build.id == b_id)
+ .first()
+ )
+ assert b is None
+ act = self.models.Action.query.first()
+ assert act.object_type == "build"
+ assert act.old_value == "user1/foocopr"
+ assert json.loads(act.data)["result_dir_name"] == expected_dir
+
@TransactionDecorator("u2")
def test_copr_build_non_submitter_cannot_delete_build(self, f_users,
f_coprs,