[copr] master: Automatic commit of package [copr-backend] release [1.49-1]. (0f4bcf4)
by vgologuz@fedoraproject.org
Repository : http://git.fedorahosted.org/cgit/copr.git
On branch : master
>---------------------------------------------------------------
commit 0f4bcf4ee096b53effb00e25f68aad73e02b983b
Author: Valentin Gologuzov <vgologuz(a)redhat.com>
Date: Tue Nov 25 17:24:11 2014 +0100
Automatic commit of package [copr-backend] release [1.49-1].
>---------------------------------------------------------------
backend/copr-backend.spec | 5 ++++-
rel-eng/packages/copr-backend | 2 +-
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/backend/copr-backend.spec b/backend/copr-backend.spec
index b03179f..9450a7f 100644
--- a/backend/copr-backend.spec
+++ b/backend/copr-backend.spec
@@ -3,7 +3,7 @@
%endif
Name: copr-backend
-Version: 1.48
+Version: 1.49
Release: 1%{?dist}
Summary: Backend for Copr
@@ -180,6 +180,9 @@ useradd -r -g copr -G lighttpd -s /bin/bash -c "COPR user" copr
%exclude %{_pkgdocdir}/playbooks
%changelog
+* Tue Nov 25 2014 Valentin Gologuzov <vgologuz(a)redhat.com> 1.49-1
+- [backend] small bug in dispatcher
+
* Tue Nov 25 2014 Valentin Gologuzov <vgologuz(a)redhat.com> 1.48-1
- bugfixes, disabled debug prints, fixed PEP8 violations
diff --git a/rel-eng/packages/copr-backend b/rel-eng/packages/copr-backend
index 4ae968f..4497f3d 100644
--- a/rel-eng/packages/copr-backend
+++ b/rel-eng/packages/copr-backend
@@ -1 +1 @@
-1.48-1 backend/
+1.49-1 backend/
9 years, 5 months
[copr] master: [backend] small bug in dispatcher (480cc52)
by vgologuz@fedoraproject.org
Repository : http://git.fedorahosted.org/cgit/copr.git
On branch : master
>---------------------------------------------------------------
commit 480cc52cd3ebf59af9154b6a9a47f4b526dc549c
Author: Valentin Gologuzov <vgologuz(a)redhat.com>
Date: Tue Nov 25 17:17:57 2014 +0100
[backend] small bug in dispatcher
>---------------------------------------------------------------
backend/backend/dispatcher.py | 15 +++----
backend/backend/job.py | 2 +
backend/backend/mockremote/__init__.py | 5 ++-
backend/run/copr_mockremote.py | 2 +-
backend/tests/mockremote/test_mockremote.py | 4 +-
backend/tests/test_createrepo.py | 10 +----
backend/tests/test_dispatcher.py | 57 +++++++++++++++++++++++++++
7 files changed, 74 insertions(+), 21 deletions(-)
diff --git a/backend/backend/dispatcher.py b/backend/backend/dispatcher.py
index 1dc4614..c267941 100644
--- a/backend/backend/dispatcher.py
+++ b/backend/backend/dispatcher.py
@@ -417,17 +417,16 @@ class Worker(multiprocessing.Process):
return response
@classmethod
- def pkg_built_before(cls, pkgs, chroot, destdir):
+ def pkg_built_before(cls, pkg, chroot, destdir):
"""
Check whether the package has already been built in this chroot.
"""
- s_pkg = os.path.basename(pkgs[0])
+ s_pkg = os.path.basename(pkg)
pdn = s_pkg.replace(".src.rpm", "")
resdir = "{0}/{1}/{2}".format(destdir, chroot, pdn)
resdir = os.path.normpath(resdir)
- if os.path.exists(resdir):
- if os.path.exists(os.path.join(resdir, "success")):
- return True
+ if os.path.exists(resdir) and os.path.exists(os.path.join(resdir, "success")):
+ return True
return False
def __spawn_with_check(self, job):
@@ -494,11 +493,11 @@ class Worker(multiprocessing.Process):
"failed to initialize fedmsg: {0}".format(e))
# Checking whether to build or skip
- if self.pkg_built_before(job.pkgs, job.chroot, job.destdir):
+ if self.pkg_built_before(job.pkg, job.chroot, job.destdir):
self._announce_start(job)
self.callback.log(
"Skipping: package {0} has been already built before."
- .format(' '.join(job.pkgs)))
+ .format(' '.join(job.pkg)))
job.status = 5 # skipped
self._announce_end(job)
@@ -584,7 +583,7 @@ class Worker(multiprocessing.Process):
# results_base_url=self.opts.results_baseurl
)
- build_details = mr.build_pkgs()
+ build_details = mr.build_pkg()
if self.opts.do_sign:
mr.add_pubkey()
diff --git a/backend/backend/job.py b/backend/backend/job.py
index 1f5b1b1..9ce7b22 100644
--- a/backend/backend/job.py
+++ b/backend/backend/job.py
@@ -47,6 +47,8 @@ class BuildJob(object):
setattr(self, key, val)
self.pkg = task_data["pkgs"].split(" ")[0] # just for now
+ del self.pkgs # better to produce error, than use it blindly
+
self.repos = [r for r in task_data["repos"].split(" ") if r.strip()]
self.build_id = task_data["build_id"]
diff --git a/backend/backend/mockremote/__init__.py b/backend/backend/mockremote/__init__.py
index 39fb689..d66c058 100755
--- a/backend/backend/mockremote/__init__.py
+++ b/backend/backend/mockremote/__init__.py
@@ -16,6 +16,7 @@
# copyright 2012 Red Hat, Inc.
+# Original approach was:
# take list of pkgs
# take single hostname
# send 1 pkg at a time to host
@@ -24,6 +25,8 @@
# repeat
# take args from mockchain (more or less)
+# now we build only one package per MockRemote instance
+
from __future__ import print_function
from __future__ import unicode_literals
from __future__ import division
@@ -307,7 +310,7 @@ class MockRemote(object):
raise MockRemoteError("Error occurred during build{0}"
.format(os.path.basename(self.pkg)))
- def build_pkgs(self):
+ def build_pkg(self):
"""Build pkg defined in self.job
diff --git a/backend/run/copr_mockremote.py b/backend/run/copr_mockremote.py
index e4c4d1f..1d7a8c6 100644
--- a/backend/run/copr_mockremote.py
+++ b/backend/run/copr_mockremote.py
@@ -150,7 +150,7 @@ def main(args):
if not opts.quiet:
print("Building {0} pkgs".format(len(pkgs)))
- mr.build_pkgs()
+ mr.build_pkg()
if not opts.quiet:
print("Output written to: {0}".format(opts.destdir))
diff --git a/backend/tests/mockremote/test_mockremote.py b/backend/tests/mockremote/test_mockremote.py
index 4d3eb03..2a9ae4f 100644
--- a/backend/tests/mockremote/test_mockremote.py
+++ b/backend/tests/mockremote/test_mockremote.py
@@ -292,7 +292,7 @@ class TestMockRemote(object):
self.mr.build_pkg_and_process_results.side_effect = [
MockRemoteError(err_msg), build_details]
- result = self.mr.build_pkgs()
+ result = self.mr.build_pkg()
assert result == build_details
assert err_msg in self._cb_log["error"][-1]
@@ -303,4 +303,4 @@ class TestMockRemote(object):
self.mr.build_pkg_and_process_results.side_effect = MockRemoteError(err_msg)
with pytest.raises(MockRemoteError):
- self.mr.build_pkgs()
+ self.mr.build_pkg()
diff --git a/backend/tests/test_createrepo.py b/backend/tests/test_createrepo.py
index c820aaf..3e4ff60 100644
--- a/backend/tests/test_createrepo.py
+++ b/backend/tests/test_createrepo.py
@@ -1,18 +1,10 @@
-__author__ = 'vgologuz'
-
import os
-
-from collections import defaultdict
-import json
-from pprint import pprint
-from _pytest.capture import capsys
-import pytest
import copy
import tempfile
import shutil
+import time
import six
-import time
if six.PY3:
from unittest import mock
diff --git a/backend/tests/test_dispatcher.py b/backend/tests/test_dispatcher.py
new file mode 100644
index 0000000..133378b
--- /dev/null
+++ b/backend/tests/test_dispatcher.py
@@ -0,0 +1,57 @@
+import os
+
+from collections import defaultdict
+import json
+from pprint import pprint
+from _pytest.capture import capsys
+import pytest
+import copy
+import tempfile
+import shutil
+
+import six
+import time
+
+if six.PY3:
+ from unittest import mock
+ from unittest.mock import MagicMock
+else:
+ import mock
+ from mock import MagicMock
+
+
+from backend.dispatcher import Worker
+
+
+class TestWorkerStatic(object):
+
+ def setup_method(self, method):
+ self.test_time = time.time()
+ subdir = "test_createrepo_{}".format(time.time())
+ self.tmp_dir_path = os.path.join(tempfile.gettempdir(), subdir)
+ os.mkdir(self.tmp_dir_path)
+
+ self.pkg_pdn = "foobar"
+ self.pkg_name = "{}.src.rpm".format(self.pkg_pdn)
+ self.pkg_path = os.path.join(self.tmp_dir_path, self.pkg_name)
+ with open(self.pkg_path, "w") as handle:
+ handle.write("1")
+
+ self.chroot = "fedora-20-x86_64"
+
+ def teardown_method(self, method):
+ # print("\nremove: {}".format(self.tmp_dir_path))
+ shutil.rmtree(self.tmp_dir_path)
+
+ def test_pkg_built_before(self):
+ assert not Worker.pkg_built_before(self.pkg_path, self.chroot, self.tmp_dir_path)
+ target_dir = os.path.join(self.tmp_dir_path, self.chroot, self.pkg_pdn)
+ os.makedirs(target_dir)
+ assert not Worker.pkg_built_before(self.pkg_path, self.chroot, self.tmp_dir_path)
+ with open(os.path.join(target_dir, "fail"), "w") as handle:
+ handle.write("undone")
+ assert not Worker.pkg_built_before(self.pkg_path, self.chroot, self.tmp_dir_path)
+ os.remove(os.path.join(target_dir, "fail"))
+ with open(os.path.join(target_dir, "success"), "w") as handle:
+ handle.write("done")
+ assert Worker.pkg_built_before(self.pkg_path, self.chroot, self.tmp_dir_path)
9 years, 5 months
[copr] master: Automatic commit of package [copr-backend] release [1.48-1]. (233ff59)
by vgologuz@fedoraproject.org
Repository : http://git.fedorahosted.org/cgit/copr.git
On branch : master
>---------------------------------------------------------------
commit 233ff59bfec7adde91b10d6933354119da3e1ed6
Author: Valentin Gologuzov <vgologuz(a)redhat.com>
Date: Tue Nov 25 14:40:52 2014 +0100
Automatic commit of package [copr-backend] release [1.48-1].
>---------------------------------------------------------------
backend/copr-backend.spec | 5 ++++-
rel-eng/packages/copr-backend | 2 +-
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/backend/copr-backend.spec b/backend/copr-backend.spec
index 4ad39fa..b03179f 100644
--- a/backend/copr-backend.spec
+++ b/backend/copr-backend.spec
@@ -3,7 +3,7 @@
%endif
Name: copr-backend
-Version: 1.47
+Version: 1.48
Release: 1%{?dist}
Summary: Backend for Copr
@@ -180,6 +180,9 @@ useradd -r -g copr -G lighttpd -s /bin/bash -c "COPR user" copr
%exclude %{_pkgdocdir}/playbooks
%changelog
+* Tue Nov 25 2014 Valentin Gologuzov <vgologuz(a)redhat.com> 1.48-1
+- bugfixes, disabled debug prints, fixed PEP8 violations
+
* Thu Nov 20 2014 Valentin Gologuzov <vgologuz(a)redhat.com> 1.47-1
- refactored mockremote, added explicit BuildJob class
- allow to spawn builder in advance
diff --git a/rel-eng/packages/copr-backend b/rel-eng/packages/copr-backend
index 8274b5b..4ae968f 100644
--- a/rel-eng/packages/copr-backend
+++ b/rel-eng/packages/copr-backend
@@ -1 +1 @@
-1.47-1 backend/
+1.48-1 backend/
9 years, 5 months
[copr] master: [backend] test coverage to include backend/run/ files (a869732)
by vgologuz@fedoraproject.org
Repository : http://git.fedorahosted.org/cgit/copr.git
On branch : master
>---------------------------------------------------------------
commit a86973263f5325fc8d36295135681e4783331664
Author: Valentin Gologuzov <vgologuz(a)redhat.com>
Date: Tue Nov 25 12:22:44 2014 +0100
[backend] test coverage to include backend/run/ files
>---------------------------------------------------------------
test_suite.sh | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/test_suite.sh b/test_suite.sh
index d29b116..63dcf2d 100644
--- a/test_suite.sh
+++ b/test_suite.sh
@@ -30,7 +30,8 @@ COPR_CONFIG="$(pwd)/frontend/coprs_frontend/config/copr_unit_test.conf" \
python -m pytest frontend/coprs_frontend/tests --junitxml=_report/frontend.junit.xml --cov-report xml --cov frontend/coprs_frontend/coprs $@
mv {,_report/frontend.}coverage.xml
-PYTHONPATH=backend/run:backend:python:$PYTHONPATH python -m pytest backend/tests --junitxml=_report/backend.junit.xml --cov-report xml --cov backend/backend $@
+PYTHONPATH=backend/run:backend:python:$PYTHONPATH python -m pytest backend/tests --junitxml=_report/backend.junit.xml \
+ --cov-report xml --cov backend/backend --cov backend/run/copr-be.py --cov backend/run/crop_prune_results.py $@
mv {,_report/backend.}coverage.xml
PYTHONPATH=python/:cli/:$PYTHONPATH python -m pytest cli/tests --junitxml=_report/cli.junit.xml --cov-report xml --cov cli/copr_cli $@
9 years, 5 months
[copr] master: [backend] unittest for backend.actions (64003c0)
by vgologuz@fedoraproject.org
Repository : http://git.fedorahosted.org/cgit/copr.git
On branch : master
>---------------------------------------------------------------
commit 64003c00f0d8d6689c471999267eee826401bc4a
Author: Valentin Gologuzov <vgologuz(a)redhat.com>
Date: Tue Nov 25 12:13:24 2014 +0100
[backend] unittest for backend.actions
>---------------------------------------------------------------
backend/tests/mockremote/test_mockremote.py | 1 -
backend/tests/test_action.py | 142 ++++++++++++++++++++++++++-
2 files changed, 137 insertions(+), 6 deletions(-)
diff --git a/backend/tests/mockremote/test_mockremote.py b/backend/tests/mockremote/test_mockremote.py
index b79181a..4d3eb03 100644
--- a/backend/tests/mockremote/test_mockremote.py
+++ b/backend/tests/mockremote/test_mockremote.py
@@ -90,7 +90,6 @@ class TestMockRemote(object):
self.PKG_NAME = "foobar"
self.PKG_VERSION = "1.2.3"
-
self.HOST = "127.0.0.1"
self.SRC_PKG_URL = "http://example.com/{}-{}.src.rpm".format(self.PKG_NAME, self.PKG_VERSION)
self.JOB = BuildJob({
diff --git a/backend/tests/test_action.py b/backend/tests/test_action.py
index aaacacd..674bd10 100644
--- a/backend/tests/test_action.py
+++ b/backend/tests/test_action.py
@@ -41,8 +41,16 @@ else:
RESULTS_ROOT_URL = "http://example.com/results"
+STDOUT = "stdout"
+STDERR = "stderr"
+def assert_what_from_queue(q, msg_list, who="action"):
+ for msg in msg_list:
+ ev = q.get_nowait()
+ assert ev["who"] == who
+ assert msg in ev["what"]
+
@mock.patch("backend.actions.time")
class TestAction(object):
@@ -479,9 +487,133 @@ class TestAction(object):
assert error_event_recorded
+ @mock.patch("backend.actions.createrepo_unsafe")
+ def test_handle_createrepo_ok(self, mc_createrepo_unsfe, mc_time):
+ mc_front_cb = MagicMock()
+ tmp_dir = self.make_temp_dir()
+ mc_createrepo_unsfe.return_value = 0, STDOUT, ""
-def assert_what_from_queue(q, msg_list, who="action"):
- for msg in msg_list:
- ev = q.get_nowait()
- assert ev["who"] == who
- assert msg in ev["what"]
+ action_data = json.dumps({
+ "chroots": ["epel-6-i386", "fedora-20-x86_64"],
+ "username": "foo",
+ "projectname": "bar"
+ })
+ test_action = Action(
+ action={
+ "action_type": ActionType.CREATEREPO,
+ "data": action_data,
+ "id": 8
+ },
+ events=self.test_q, lock=None,
+ frontend_callback=mc_front_cb,
+ destdir=tmp_dir,
+ front_url=None,
+ results_root_url=RESULTS_ROOT_URL
+ )
+ test_action.run()
+
+ result_dict = mc_front_cb.update.call_args[0][0]["actions"][0]
+
+ assert result_dict["id"] == 8
+ assert result_dict["result"] == ActionResult.SUCCESS
+
+ exp_call_1 = mock.call(lock=None, path=tmp_dir + u'/foo/bar/epel-6-i386')
+ exp_call_2 = mock.call(lock=None, path=tmp_dir + u'/foo/bar/fedora-20-x86_64')
+ assert exp_call_1 in mc_createrepo_unsfe.call_args_list
+ assert exp_call_2 in mc_createrepo_unsfe.call_args_list
+ assert len(mc_createrepo_unsfe.call_args_list) == 2
+
+
+ @mock.patch("backend.actions.createrepo_unsafe")
+ def test_handle_createrepo_failure_1(self, mc_createrepo_unsfe, mc_time):
+ mc_front_cb = MagicMock()
+ tmp_dir = self.make_temp_dir()
+ mc_createrepo_unsfe.return_value = 1, STDOUT, ""
+
+ action_data = json.dumps({
+ "chroots": ["epel-6-i386", "fedora-20-x86_64"],
+ "username": "foo",
+ "projectname": "bar"
+ })
+ test_action = Action(
+ action={
+ "action_type": ActionType.CREATEREPO,
+ "data": action_data,
+ "id": 9
+ },
+ events=self.test_q, lock=None,
+ frontend_callback=mc_front_cb,
+ destdir=tmp_dir,
+ front_url=None,
+ results_root_url=RESULTS_ROOT_URL
+ )
+ test_action.run()
+
+ result_dict = mc_front_cb.update.call_args[0][0]["actions"][0]
+
+ assert result_dict["id"] == 9
+ assert result_dict["result"] == ActionResult.FAILURE
+
+ @mock.patch("backend.actions.createrepo_unsafe")
+ def test_handle_createrepo_failure_2(self, mc_createrepo_unsfe, mc_time):
+ mc_front_cb = MagicMock()
+ tmp_dir = self.make_temp_dir()
+ mc_createrepo_unsfe.return_value = 0, STDOUT, STDERR
+
+ action_data = json.dumps({
+ "chroots": ["epel-6-i386", "fedora-20-x86_64"],
+ "username": "foo",
+ "projectname": "bar"
+ })
+ test_action = Action(
+ action={
+ "action_type": ActionType.CREATEREPO,
+ "data": action_data,
+ "id": 10
+ },
+ events=self.test_q, lock=None,
+ frontend_callback=mc_front_cb,
+ destdir=tmp_dir,
+ front_url=None,
+ results_root_url=RESULTS_ROOT_URL
+ )
+ test_action.run()
+
+ result_dict = mc_front_cb.update.call_args[0][0]["actions"][0]
+
+ assert result_dict["id"] == 10
+ assert result_dict["result"] == ActionResult.FAILURE
+
+ @mock.patch("backend.actions.createrepo_unsafe")
+ def test_handle_createrepo_failure_3(self, mc_createrepo_unsfe, mc_time):
+ mc_front_cb = MagicMock()
+ tmp_dir = self.make_temp_dir()
+ mc_createrepo_unsfe.side_effect = [
+ (0, STDOUT, ""),
+ (1, STDOUT, STDERR),
+ ]
+
+
+ action_data = json.dumps({
+ "chroots": ["epel-6-i386", "fedora-20-x86_64"],
+ "username": "foo",
+ "projectname": "bar"
+ })
+ test_action = Action(
+ action={
+ "action_type": ActionType.CREATEREPO,
+ "data": action_data,
+ "id": 10
+ },
+ events=self.test_q, lock=None,
+ frontend_callback=mc_front_cb,
+ destdir=tmp_dir,
+ front_url=None,
+ results_root_url=RESULTS_ROOT_URL
+ )
+ test_action.run()
+
+ result_dict = mc_front_cb.update.call_args[0][0]["actions"][0]
+
+ assert result_dict["id"] == 10
+ assert result_dict["result"] == ActionResult.FAILURE
9 years, 5 months
[copr] master: [backend] disabled debug prints, fixed PEP8 violations (242ded0)
by vgologuz@fedoraproject.org
Repository : http://git.fedorahosted.org/cgit/copr.git
On branch : master
>---------------------------------------------------------------
commit 242ded014b18f03542c99c3bc417fe829021a798
Author: Valentin Gologuzov <vgologuz(a)redhat.com>
Date: Tue Nov 25 11:33:04 2014 +0100
[backend] disabled debug prints, fixed PEP8 violations
>---------------------------------------------------------------
backend/backend/mockremote/__init__.py | 2 +-
backend/backend/mockremote/builder.py | 3 +--
backend/tests/mockremote/test_builder.py | 16 ++++++----------
backend/tests/mockremote/test_mockremote.py | 14 ++------------
.../test_views/test_api_ns/test_api_general.py | 1 -
5 files changed, 10 insertions(+), 26 deletions(-)
diff --git a/backend/backend/mockremote/__init__.py b/backend/backend/mockremote/__init__.py
index 421e13f..39fb689 100755
--- a/backend/backend/mockremote/__init__.py
+++ b/backend/backend/mockremote/__init__.py
@@ -148,7 +148,7 @@ class MockRemote(object):
self.failed = []
self.finished = []
- self.callback.log("self dict: {}".format(self.__dict__))
+ # self.callback.log("self dict: {}".format(self.__dict__))
@property
def chroot_dir(self):
diff --git a/backend/backend/mockremote/builder.py b/backend/backend/mockremote/builder.py
index ef261fe..02f489b 100644
--- a/backend/backend/mockremote/builder.py
+++ b/backend/backend/mockremote/builder.py
@@ -37,7 +37,7 @@ class Builder(object):
self.hostname, self.username, self.timeout)
self.root_conn = _create_ans_conn(self.hostname, "root", self.timeout)
- self.callback.log("Created builder: {}".format(self.__dict__))
+ # self.callback.log("Created builder: {}".format(self.__dict__))
# Before use: check out the host - make sure it can build/be contacted/etc
# self.check()
@@ -225,7 +225,6 @@ class Builder(object):
if waited >= self.timeout:
self.callback.log("Build timeout expired.")
- #return False, "", "Timeout expired", build_details
raise BuilderTimeOutError("Build timeout expired.")
time.sleep(10)
diff --git a/backend/tests/mockremote/test_builder.py b/backend/tests/mockremote/test_builder.py
index 8c7ea6c..5cfd2bf 100644
--- a/backend/tests/mockremote/test_builder.py
+++ b/backend/tests/mockremote/test_builder.py
@@ -77,7 +77,6 @@ class TestBuilder(object):
self.mc_ansible_runner.side_effect = lambda **kwargs: mock.MagicMock(**kwargs)
self.test_root_path = tempfile.mkdtemp()
- #print("Temp dir: {}".format(self.test_root_path))
self.mc_callback = mock.MagicMock()
self._cb_log = []
@@ -89,7 +88,7 @@ class TestBuilder(object):
@property
def buildcmd(self):
return self.gen_mockchain_command(self.BUILDER_PKG)
- #
+
def teardown_method(self, method):
self.mc_ansible_runner_patcher.stop()
# remote tmp dir
@@ -326,8 +325,6 @@ class TestBuilder(object):
with pytest.raises(BuilderError) as err:
builder.checked = False
builder.check()
- #print(builder.conn.module_args)
- #assert "usr/bin/test -f " in builder.conn.module_args
assert "/usr/bin/test -f /usr/bin/mockchain" in self.stage_ctx[1]["conn"].module_args
assert "/usr/bin/test -f /etc/mock/{}.cfg".format(self.BUILDER_CHROOT) in \
@@ -352,8 +349,6 @@ class TestBuilder(object):
with pytest.raises(BuilderError) as err:
builder.checked = False
builder.check()
- #print(builder.conn.module_args)
- #assert "usr/bin/test -f " in builder.conn.module_args
assert "/usr/bin/test -f /usr/bin/mockchain" in self.stage_ctx[1]["conn"].module_args
assert "/usr/bin/test -f /etc/mock/{}.cfg".format(self.BUILDER_CHROOT) in \
@@ -422,10 +417,10 @@ class TestBuilder(object):
for bad_pkg in [
"../'HOME-example.src.pkg",
- # i'm assuming that this also should cause error
- #"~HOM/E-example.src.pkg; rm -rf",
- #"../%HOME-example.src.pkg",
- #"../%HOME-example.src.pkg"
+ # FIXME: i'm assuming that the following should also cause error
+ # "~HOM/E-example.src.pkg; rm -rf",
+ # "../%HOME-example.src.pkg",
+ # "../%HOME-example.src.pkg"
]:
with pytest.raises(BuilderError) as err:
@@ -743,6 +738,7 @@ class TestBuilder(object):
# revert to successful check build
builder.check_build_success.return_value = (self.STDERR, False, self.STDOUT)
+
# check update build details
def upd(bd, pkg):
bd["foo"] = "bar"
diff --git a/backend/tests/mockremote/test_mockremote.py b/backend/tests/mockremote/test_mockremote.py
index b526d27..b79181a 100644
--- a/backend/tests/mockremote/test_mockremote.py
+++ b/backend/tests/mockremote/test_mockremote.py
@@ -42,8 +42,7 @@ STDERR = "stderr"
COPR_OWNER = "copr_owner"
COPR_NAME = "copr_name"
COPR_VENDOR = "vendor"
-# DESTDIR = "/dev/null"
-# CHROOT =
+
class CallbackTest(DefaultCallBack):
def __init__(self, log_dict, **kwargs):
@@ -66,8 +65,6 @@ class CallbackTest(DefaultCallBack):
class TestMockRemote(object):
-
-
def get_callback(self):
self._cb_log = defaultdict(list)
return CallbackTest(log_dict=self._cb_log)
@@ -77,13 +74,8 @@ class TestMockRemote(object):
self.mr_cb = self.get_callback()
patcher = mock.patch("backend.mockremote.Builder")
self.mc_builder = patcher.start()
-
-
-
-
self.mr = MockRemote(self.HOST, self.JOB, callback=self.mr_cb,
macros=self.MACROS, opts=self.OPTS)
-
yield
patcher.stop()
@@ -255,7 +247,7 @@ class TestMockRemote(object):
assert self.mr.builder.download.called
assert self.mr.builder.download.call_args == \
- mock.call(self.SRC_PKG_URL, self.DESTDIR_CHROOT)
+ mock.call(self.SRC_PKG_URL, self.DESTDIR_CHROOT)
assert self.mr.mark_dir_with_build_id.called
assert self.mr.on_success_build.called
@@ -313,5 +305,3 @@ class TestMockRemote(object):
with pytest.raises(MockRemoteError):
self.mr.build_pkgs()
-
-
diff --git a/frontend/coprs_frontend/tests/test_views/test_api_ns/test_api_general.py b/frontend/coprs_frontend/tests/test_views/test_api_ns/test_api_general.py
index 1829acc..90ae8e6 100644
--- a/frontend/coprs_frontend/tests/test_views/test_api_ns/test_api_general.py
+++ b/frontend/coprs_frontend/tests/test_views/test_api_ns/test_api_general.py
@@ -62,7 +62,6 @@ class TestCreateCopr(CoprsTestCase):
assert copr.owner.id == self.u1.id
assert copr.auto_createrepo
-
@TransactionDecorator("u1")
def test_api_create_copr_ok_all(self, f_users, f_mock_chroots, f_db):
self.db.session.add_all([self.u1, self.mc1])
9 years, 5 months
[copr] master: [backend] unittest fixes (54b2537)
by vgologuz@fedoraproject.org
Repository : http://git.fedorahosted.org/cgit/copr.git
On branch : master
>---------------------------------------------------------------
commit 54b2537e314e591de07d06e178b8ca3b9376c4d2
Author: Valentin Gologuzov <vgologuz(a)redhat.com>
Date: Tue Nov 25 10:51:23 2014 +0100
[backend] unittest fixes
>---------------------------------------------------------------
backend/tests/mockremote/test_builder.py | 17 +++++++++--------
1 files changed, 9 insertions(+), 8 deletions(-)
diff --git a/backend/tests/mockremote/test_builder.py b/backend/tests/mockremote/test_builder.py
index 519c022..8c7ea6c 100644
--- a/backend/tests/mockremote/test_builder.py
+++ b/backend/tests/mockremote/test_builder.py
@@ -39,6 +39,10 @@ def print_all(*args, **kwargs):
pprint(kwargs)
+def assert_in_log(msg, log_list):
+ assert any(msg in record for record in log_list)
+
+
class TestBuilder(object):
BUILDER_BUILDROOT_PKGS = []
BUILDER_CHROOT = "fedora-20-i386"
@@ -439,7 +443,8 @@ class TestBuilder(object):
builder.modify_base_buildroot()
- assert "putting {} into minimal buildroot of fedora-20-i386".format(br_pkgs) in self._cb_log[0]
+ assert_in_log("putting {} into minimal buildroot of fedora-20-i386".format(br_pkgs),
+ self._cb_log)
assert not builder.conn.run.called
assert builder.root_conn.run.called
@@ -451,8 +456,7 @@ class TestBuilder(object):
).format(self.BUILDER_CHROOT, br_pkgs)
assert builder.root_conn.module_args == expected
- assert len(self._cb_log) == 3
- assert "Error: " in self._cb_log[1]
+ assert_in_log("Error: ", self._cb_log[1:])
def test_modify_base_buildroot(self, ):
builder = self.get_test_builder()
@@ -465,7 +469,8 @@ class TestBuilder(object):
builder.modify_base_buildroot()
- assert "putting {} into minimal buildroot of fedora-20-i386".format(br_pkgs) in self._cb_log[0]
+ assert_in_log("putting {} into minimal buildroot of fedora-20-i386".format(br_pkgs),
+ self._cb_log)
assert not builder.conn.run.called
assert builder.root_conn.run.called
@@ -477,12 +482,9 @@ class TestBuilder(object):
).format(self.BUILDER_CHROOT, br_pkgs)
assert builder.root_conn.module_args == expected
- assert len(self._cb_log) == 1
-
def test_collect_build_packages(self):
builder = self.get_test_builder()
-
bd = {}
stdout = "stdout"
@@ -498,7 +500,6 @@ class TestBuilder(object):
"done".format(builder._get_remote_pkg_dir(self.BUILDER_PKG_BASE))
)
assert builder.conn.module_args == expected
- assert len(self._cb_log) == 2
@mock.patch("backend.mockremote.builder.check_for_ans_error")
def test_check_build_success(self, mc_check_for_ans_errror):
9 years, 5 months
[copr] master: Automatic commit of package [copr-frontend] release [1.48-1]. (cdf66da)
by vgologuz@fedoraproject.org
Repository : http://git.fedorahosted.org/cgit/copr.git
On branch : master
>---------------------------------------------------------------
commit cdf66da74f6061485c5c127b3d87d18982f4dbdc
Author: Valentin Gologuzov <vgologuz(a)redhat.com>
Date: Mon Nov 24 16:35:16 2014 +0100
Automatic commit of package [copr-frontend] release [1.48-1].
>---------------------------------------------------------------
frontend/copr-frontend.spec | 7 ++++++-
rel-eng/packages/copr-frontend | 2 +-
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/frontend/copr-frontend.spec b/frontend/copr-frontend.spec
index d568202..cc9d42c 100644
--- a/frontend/copr-frontend.spec
+++ b/frontend/copr-frontend.spec
@@ -5,7 +5,7 @@
%endif
Name: copr-frontend
-Version: 1.47
+Version: 1.48
Release: 1%{?dist}
Summary: Frontend for Copr
@@ -167,6 +167,11 @@ service httpd condrestart
%doc %{_pkgdocdir}/python-doc
%changelog
+* Mon Nov 24 2014 Valentin Gologuzov <vgologuz(a)redhat.com> 1.48-1
+- [frontend] fixed paramater validation for API hanlde `create_new_copr`
+- [frontend] show "createrepo" action only when user disable auto_createrepo
+- [frontend] removed hardcoded frontend url from /api page.
+
* Fri Oct 24 2014 Valentin Gologuzov <vgologuz(a)redhat.com> 1.47-1
- [frontend] sending createrepo action
- [frontend] [html] new option to configure copr->auto_creatrepo
diff --git a/rel-eng/packages/copr-frontend b/rel-eng/packages/copr-frontend
index f800b2b..d7313da 100644
--- a/rel-eng/packages/copr-frontend
+++ b/rel-eng/packages/copr-frontend
@@ -1 +1 @@
-1.47-1 frontend/
+1.48-1 frontend/
9 years, 5 months