[copr] master: [backend] fix failing tests (ceecd9a)
by clime@fedoraproject.org
Repository : http://git.fedorahosted.org/cgit/copr.git
On branch : master
>---------------------------------------------------------------
commit ceecd9a259b87d48cf90012b2e7442b235595396
Author: clime <clime(a)redhat.com>
Date: Fri Jan 29 17:38:57 2016 +0100
[backend] fix failing tests
>---------------------------------------------------------------
backend/run_test.sh | 23 ++++++++-
backend/tests/{deamons => daemons}/test_backend.py | 49 +++----------------
.../tests/{deamons => daemons}/test_dispatcher.py | 2 +-
.../tests/{deamons => daemons}/test_job_grab.py | 51 ++++---------------
backend/tests/{deamons => daemons}/test_log.py | 0
.../tests/{deamons => daemons}/test_vm_master.py | 0
6 files changed, 39 insertions(+), 86 deletions(-)
diff --git a/backend/run_test.sh b/backend/run_test.sh
index a5941b9..06347c6 100755
--- a/backend/run_test.sh
+++ b/backend/run_test.sh
@@ -4,9 +4,26 @@ REDIS_PORT=7777
redis-server --port $REDIS_PORT &> _redis.log &
+COVPARAMS='--cov-report term-missing --cov ./backend --cov ./run'
-# PYTHONPATH=backend:run:$PYTHONPATH python -B -m pytest -s ./tests/ $@
-PYTHONPATH=backend:run:$PYTHONPATH python -B -m pytest -s --cov-report term-missing --cov ./backend --cov ./run ./tests/ $@
-# PYTHONPATH=../python/:./copr_cli:$PYTHONPATH python3 -B -m pytest --cov-report term-missing --cov ./copr_cli/ $@
+while [[ $# > 1 ]]
+do
+ key="$1"
+ case $key in
+ --nocov)
+ COVPARAMS=""
+ ;;
+ *) # unknown option
+ ;;
+ esac
+shift # past argument or value
+done
+
+TESTS=./tests
+if [[ -n $@ ]]; then
+ TESTS=$@
+fi
+
+PYTHONPATH=backend:run:$PYTHONPATH python -B -m pytest -s $COVPARAMS $TESTS
kill %1
diff --git a/backend/tests/deamons/test_backend.py b/backend/tests/daemons/test_backend.py
similarity index 85%
rename from backend/tests/deamons/test_backend.py
rename to backend/tests/daemons/test_backend.py
index e0a7efa..06a761f 100644
--- a/backend/tests/deamons/test_backend.py
+++ b/backend/tests/daemons/test_backend.py
@@ -31,9 +31,9 @@ COPR_VENDOR = "vendor"
MODULE_REF = "backend.daemons.backend"
@pytest.yield_fixture
-def mc_rt_queue():
- with mock.patch("{}.Queue".format(MODULE_REF)) as mc_queue:
- yield mc_queue
+def mc_rt_channel():
+ with mock.patch("{}.jobgrabcontrol.Channel".format(MODULE_REF)) as mc_channel:
+ yield mc_channel
@pytest.yield_fixture
def mc_worker():
@@ -137,44 +137,10 @@ class TestBackend(object):
assert self.be.config_reader == self.bc_obj
assert self.bc_obj.read.called
- def test_clean_task_queue_error(self, init_be):
- mc_queue = MagicMock(length=1)
- mc_queue.dequeue.side_effect = retask.ConnectionError()
- self.be.task_queues[0] = mc_queue
-
- with pytest.raises(CoprBackendError):
- self.be.clean_task_queues()
-
- def test_clean_task_queue_ok(self, init_be):
- mc_queue = MagicMock(length=5)
-
- def decr():
- mc_queue.length -= 1
-
- mc_queue.dequeue.side_effect = decr
- self.be.task_queues[0] = mc_queue
- self.be.clean_task_queues()
-
- assert len(mc_queue.dequeue.call_args_list) == 5
-
- def test_init_task_queues(self, mc_rt_queue, init_be):
-
- mc_rt_queue.side_effect = lambda name: MagicMock(name=name)
- self.be.clean_task_queues = MagicMock()
+ def test_init_task_queues(self, mc_rt_channel, init_be):
+ self.be.jg_control = MagicMock()
self.be.init_task_queues()
-
- assert mc_rt_queue.call_args_list == \
- [mock.call("copr-be-0"), mock.call("copr-be-1")]
- assert self.be.task_queues[0].connect.called
- assert self.be.task_queues[1].connect.called
-
- def test_init_task_queues_error(self, mc_rt_queue, init_be):
-
- mc_rt_queue.return_value.connect.side_effect = ConnectionError()
- self.be.clean_task_queues = MagicMock()
-
- with pytest.raises(CoprBackendError):
- self.be.init_task_queues()
+ assert self.be.jg_control.backend_start.called
def test_update_conf(self, init_be):
test_obj = MagicMock()
@@ -260,12 +226,11 @@ class TestBackend(object):
self.be.terminate()
- assert self.be.clean_task_queues.called
assert not self.be.is_running
assert worker_alive.terminate_instance.called
assert worker_dead.terminate_instance.called
- def test_run(self, mc_time, mc_rt_queue, init_be):
+ def test_run(self, mc_time, mc_rt_channel, init_be):
worker_alive = MagicMock()
worker_alive.is_alive.return_value = True
worker_dead = MagicMock()
diff --git a/backend/tests/deamons/test_dispatcher.py b/backend/tests/daemons/test_dispatcher.py
similarity index 99%
rename from backend/tests/deamons/test_dispatcher.py
rename to backend/tests/daemons/test_dispatcher.py
index 7fca938..783a98d 100644
--- a/backend/tests/deamons/test_dispatcher.py
+++ b/backend/tests/daemons/test_dispatcher.py
@@ -358,7 +358,7 @@ class TestDispatcher(object):
self.worker.task_queue = mc_tq
self.worker.starting_build = MagicMock()
- mc_tq.dequeue.return_value = MagicMock(data=self.task)
+ self.worker.jg.get_build = MagicMock(return_value=self.task)
obtained_job = self.worker.obtain_job()
assert obtained_job.__dict__ == self.job.__dict__
diff --git a/backend/tests/deamons/test_job_grab.py b/backend/tests/daemons/test_job_grab.py
similarity index 87%
rename from backend/tests/deamons/test_job_grab.py
rename to backend/tests/daemons/test_job_grab.py
index 7632cb7..fc2c1bf 100644
--- a/backend/tests/deamons/test_job_grab.py
+++ b/backend/tests/daemons/test_job_grab.py
@@ -52,7 +52,7 @@ def mc_setproctitle():
@pytest.yield_fixture
def mc_retask_queue():
- with mock.patch("{}.Queue".format(MODULE_REF)) as mc_queue:
+ with mock.patch("{}.jobgrabcontrol.Channel".format(MODULE_REF)) as mc_queue:
def make_queue(*args, **kwargs):
updated_kwargs = copy.deepcopy(kwargs)
updated_kwargs["spec"] = Queue
@@ -117,6 +117,7 @@ class TestJobGrab(object):
project_owner="foobar",
)
+
def teardown_method(self, method):
shutil.rmtree(self.tmp_dir_path)
@@ -134,30 +135,14 @@ class TestJobGrab(object):
@pytest.fixture
def init_jg(self, mc_retask_queue, mc_grc):
- self.jg = CoprJobGrab(self.opts, self.frontend_client)
- self.jg.connect_queues()
- self.jg.vm_manager = MagicMock()
-
- def test_connect_queues(self, mc_retask_queue, mc_grc):
- mc_rc = MagicMock()
- mc_grc.return_value = mc_rc
- self.jg = CoprJobGrab(self.opts, self.frontend_client)
-
- assert len(self.jg.task_queues_by_arch) == 0
- self.jg.connect_queues()
- # created retask queue
- expected = [call(u'copr-be-0'), call(u'copr-be-1')]
- assert mc_retask_queue.call_args_list == expected
- # connected to them
- for obj in self.jg.task_queues_by_arch.values():
- assert obj.connect.called
-
- assert not mc_rc.pubsub.called
+ self.jg = CoprJobGrab(self.opts)
+ self.jg.init_internal_structures()
+ self.jg.jg_control = MagicMock()
def test_listen_to_pubsub(self, mc_retask_queue, mc_grc):
mc_rc = MagicMock()
mc_grc.return_value = mc_rc
- self.jg = CoprJobGrab(self.opts, self.frontend_client)
+ self.jg = CoprJobGrab(self.opts)
assert not mc_rc.pubsub.called
self.jg.listen_to_pubsub()
@@ -170,9 +155,7 @@ class TestJobGrab(object):
self.jg.added_jobs_dict[d["task_id"]] = d
assert self.jg.route_build_task(self.task_dict_1) == 0
- assert self.jg.route_build_task(self.task_dict_2) == 0
- for obj in self.jg.task_queues_by_arch.values():
- assert not obj.enqueue.called
+ assert not self.jg.jg_control.add_build.called
def test_route_build_task_skip_too_much_added(self, init_jg):
for i in range(10):
@@ -181,34 +164,24 @@ class TestJobGrab(object):
self.jg.added_jobs_dict[task["task_id"]] = task
assert self.jg.route_build_task(self.task_dict_1) == 0
- for obj in self.jg.task_queues_by_arch.values():
- assert not obj.enqueue.called
+ assert not self.jg.jg_control.add_build.called
def test_route_build_task_missing_task_ud(self, init_jg):
assert self.jg.route_build_task({"task": "wrong_key"}) == 0
- for obj in self.jg.task_queues_by_arch.values():
- assert not obj.enqueue.called
+ assert not self.jg.jg_control.add_build.called
def test_route_build_task_correct_group_1(self, init_jg,):
-
assert self.jg.route_build_task(self.task_dict_1) == 1
- assert self.jg.task_queues_by_arch["x86_64"].enqueue.called
- assert not self.jg.task_queues_by_arch["armv7"].enqueue.called
+ assert self.jg.jg_control.add_build.call_args[0][0] == 0
def test_route_build_task_correct_group_2(self, init_jg, ):
-
assert self.jg.route_build_task(self.task_dict_2) == 1
- assert not self.jg.task_queues_by_arch["x86_64"].enqueue.called
- assert self.jg.task_queues_by_arch["armv7"].enqueue.called
+ assert self.jg.jg_control.add_build.call_args[0][0] == 1
def test_route_build_task_correct_group_error(self, init_jg):
-
with pytest.raises(CoprJobGrabError) as err:
self.jg.route_build_task(self.task_dict_bad_arch)
- assert not self.jg.task_queues_by_arch["x86_64"].enqueue.called
- assert not self.jg.task_queues_by_arch["armv7"].enqueue.called
-
@mock.patch("backend.daemons.job_grab.Action", spec=backend.actions.Action)
def test_process_action(self, mc_action, init_jg):
test_action = MagicMock()
@@ -378,7 +351,6 @@ class TestJobGrab(object):
# self.jg.process_task_end_pubsub()
def test_run(self, mc_time, mc_setproctitle, init_jg, mc_grc):
- self.jg.connect_queues = MagicMock()
self.jg.process_task_end_pubsub = MagicMock()
self.jg.load_tasks = MagicMock()
self.jg.load_tasks.side_effect = [
@@ -391,5 +363,4 @@ class TestJobGrab(object):
self.jg.run()
assert mc_setproctitle.called
- assert self.jg.connect_queues.called_once
assert self.jg.load_tasks.called
diff --git a/backend/tests/deamons/test_log.py b/backend/tests/daemons/test_log.py
similarity index 100%
rename from backend/tests/deamons/test_log.py
rename to backend/tests/daemons/test_log.py
diff --git a/backend/tests/deamons/test_vm_master.py b/backend/tests/daemons/test_vm_master.py
similarity index 100%
rename from backend/tests/deamons/test_vm_master.py
rename to backend/tests/daemons/test_vm_master.py
8 years, 2 months
[copr] master: Automatic commit of package [copr-dist-git] release [0.13-1]. (0187c1c)
by Miroslav Suchý
Repository : http://git.fedorahosted.org/cgit/copr.git
On branch : master
>---------------------------------------------------------------
commit 0187c1ca4ff3ec6a110a95c74095913f121b55ad
Author: Miroslav Such�� <msuchy(a)redhat.com>
Date: Fri Jan 29 15:38:32 2016 +0100
Automatic commit of package [copr-dist-git] release [0.13-1].
>---------------------------------------------------------------
.tito/packages/copr-dist-git | 2 +-
dist-git/copr-dist-git.spec | 8 +++++++-
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/.tito/packages/copr-dist-git b/.tito/packages/copr-dist-git
index db18dd6..5f6589e 100644
--- a/.tito/packages/copr-dist-git
+++ b/.tito/packages/copr-dist-git
@@ -1 +1 @@
-0.12-1 dist-git/
+0.13-1 dist-git/
diff --git a/dist-git/copr-dist-git.spec b/dist-git/copr-dist-git.spec
index d0959cc..fc09b22 100644
--- a/dist-git/copr-dist-git.spec
+++ b/dist-git/copr-dist-git.spec
@@ -1,5 +1,5 @@
Name: copr-dist-git
-Version: 0.12
+Version: 0.13
Release: 1%{?dist}
Summary: Copr services for Dist Git server
@@ -101,6 +101,12 @@ restorecon -rv /var/lib/copr-dist-git
%ghost %{_var}/log/copr-dist-git/*.log
%changelog
+* Fri Jan 29 2016 Miroslav Such�� <msuchy(a)redhat.com> 0.13-1
+- [dist-git] error handling based on subprocess return codes instead of output
+ to stderr (e.g. git outputs progress to stderr) + missing catch for
+ GitException in do_import (results in better error messages in frontend, see
+ bz#1295540)
+
* Mon Jan 25 2016 Miroslav Such�� <msuchy(a)redhat.com> 0.12-1
- pass --scm-option spec=foo to mock-scm (msuchy(a)redhat.com)
8 years, 2 months
[copr] master: Automatic commit of package [prunerepo] release [1.3-1]. (ac04e33)
by Miroslav Suchý
Repository : http://git.fedorahosted.org/cgit/copr.git
On branch : master
>---------------------------------------------------------------
commit ac04e33d7ea484cd73a271899ae1b6239d162e54
Author: Miroslav Such�� <msuchy(a)redhat.com>
Date: Fri Jan 29 15:37:50 2016 +0100
Automatic commit of package [prunerepo] release [1.3-1].
>---------------------------------------------------------------
.tito/packages/prunerepo | 2 +-
prunerepo/prunerepo.spec | 5 ++++-
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/.tito/packages/prunerepo b/.tito/packages/prunerepo
index 374360d..526e302 100644
--- a/.tito/packages/prunerepo
+++ b/.tito/packages/prunerepo
@@ -1 +1 @@
-1.2-1 prunerepo/
+1.3-1 prunerepo/
diff --git a/prunerepo/prunerepo.spec b/prunerepo/prunerepo.spec
index 9d4977b..3fccde8 100644
--- a/prunerepo/prunerepo.spec
+++ b/prunerepo/prunerepo.spec
@@ -1,6 +1,6 @@
Summary: Remove old packages from rpm-md repository
Name: prunerepo
-Version: 1.2
+Version: 1.3
Release: 1%{?dist}
# Source is created by:
@@ -51,6 +51,9 @@ install -p -m 644 man/prunerepo.1 %{buildroot}/%{_mandir}/man1/
%{_mandir}/man1/prunerepo.1*
%changelog
+* Fri Jan 29 2016 Miroslav Such�� <msuchy(a)redhat.com> 1.3-1
+- rebuild for release
+
* Tue Jan 26 2016 clime <clime(a)redhat.com> 1.2-1
- bugfix for --cleancopr when a log for the respective dir does not
exist (e.g. copr repos with old dir naming)
8 years, 2 months
[copr] master: Automatic commit of package [copr-cli] release [1.47-1]. (d78f8e8)
by Miroslav Suchý
Repository : http://git.fedorahosted.org/cgit/copr.git
On branch : master
>---------------------------------------------------------------
commit d78f8e80a07cc3bfec1d06e8507caf1269a0ac61
Author: Miroslav Such�� <msuchy(a)redhat.com>
Date: Fri Jan 29 15:34:07 2016 +0100
Automatic commit of package [copr-cli] release [1.47-1].
>---------------------------------------------------------------
.tito/packages/copr-cli | 2 +-
cli/copr-cli.spec | 14 +++++++++++++-
2 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/.tito/packages/copr-cli b/.tito/packages/copr-cli
index 14073cf..7a1e5d0 100644
--- a/.tito/packages/copr-cli
+++ b/.tito/packages/copr-cli
@@ -1 +1 @@
-1.46-1 cli/
+1.47-1 cli/
diff --git a/cli/copr-cli.spec b/cli/copr-cli.spec
index 4a4d0d6..6976f7c 100644
--- a/cli/copr-cli.spec
+++ b/cli/copr-cli.spec
@@ -8,7 +8,7 @@
%endif
Name: copr-cli
-Version: 1.46
+Version: 1.47
Release: 1%{?dist}
Summary: Command line interface for COPR
@@ -97,6 +97,18 @@ install -p man/copr.1 %{buildroot}/%{_mandir}/man1/
%endif
%changelog
+* Fri Jan 29 2016 Miroslav Such�� <msuchy(a)redhat.com> 1.47-1
+- gfix 1302615 - UnboundLocalError: local variable 'bar' referenced before
+ assignment when building from URLs
+- gman pages updated for 1292033 - copr-cli ignores multiple package
+ arguments if the first is a local file
+- grequire sufficiently new python-copr package
+- gadd DummyBar.finish() stub
+- compatibility with el6 and el7
+- add --config option
+- fix packaging for epel-6+ and fedora-22+
+- Added MANIFEST.in for python and cli
+
* Mon Nov 02 2015 Miroslav Such�� <msuchy(a)redhat.com> 1.46-1
- Removed __version__ from cli and python
- Added version parse from specs instead of __init__
8 years, 2 months
[copr] master: Automatic commit of package [copr-backend] release [1.80-1]. (c559000)
by Miroslav Suchý
Repository : http://git.fedorahosted.org/cgit/copr.git
On branch : master
>---------------------------------------------------------------
commit c55900098d255fe28368f3500fea7c29c086cecb
Author: Miroslav Such�� <msuchy(a)redhat.com>
Date: Fri Jan 29 15:33:11 2016 +0100
Automatic commit of package [copr-backend] release [1.80-1].
>---------------------------------------------------------------
.tito/packages/copr-backend | 2 +-
backend/copr-backend.spec | 15 ++++++++++++++-
2 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/.tito/packages/copr-backend b/.tito/packages/copr-backend
index 47d741b..2af8e3e 100644
--- a/.tito/packages/copr-backend
+++ b/.tito/packages/copr-backend
@@ -1 +1 @@
-1.79-1 backend/
+1.80-1 backend/
diff --git a/backend/copr-backend.spec b/backend/copr-backend.spec
index 99950f2..a515616 100644
--- a/backend/copr-backend.spec
+++ b/backend/copr-backend.spec
@@ -3,7 +3,7 @@
%endif
Name: copr-backend
-Version: 1.79
+Version: 1.80
Release: 1%{?dist}
Summary: Backend for Copr
@@ -246,6 +246,19 @@ useradd -r -g copr -G lighttpd -s /bin/bash -c "COPR user" copr
%exclude %{_pkgdocdir}/playbooks
%changelog
+* Fri Jan 29 2016 Miroslav Such�� <msuchy(a)redhat.com> 1.80-1
+- do not fail when when you recieve job with architecture which does not have
+ queue
+- fix 1260780 - Build fails after successful package generation -
+ just add a log error message pointing to an rsync log
+- jobgrabcontrol.py/retask misuse fix
+- "localhost-targeted" spawn and terminate playbooks added for testing
+- [frontend]implement rawhide to release feature First create new
+ chroots: python manage.py create_chroot fedora-24-i386 fedora-24-x86_64
+- abstraction above [BE <-> JG <-> Builders] channels
+- don't traceback backend if frontend is not yet up&running
+- do not preserve user and group when rsyncing
+
* Wed Dec 23 2015 Miroslav Such�� <msuchy(a)redhat.com> 1.79-1
- fix packaging issues in epel-7+
8 years, 2 months