Repository :
http://git.fedorahosted.org/cgit/copr.git
On branch : master
---------------------------------------------------------------
commit 246dbef49191f511b2c08a7b4bf8c6c7a5c38365
Author: Valentin Gologuzov <vgologuz(a)redhat.com>
Date: Thu Oct 30 14:50:00 2014 +0100
[frontend] added test for CoprsLogic fulltext
[.gitignore] added "_tmp/" pattern
---------------------------------------------------------------
.gitignore | 2 +-
frontend/coprs_frontend/coprs/logic/coprs_logic.py | 2 +-
.../coprs/views/api_ns/api_general.py | 3 +-
.../coprs/views/coprs_ns/coprs_general.py | 3 +-
.../tests/test_logic/test_coprs_logic.py | 38 ++++++++++++++++++++
.../test_views/test_coprs_ns/test_coprs_general.py | 1 -
6 files changed, 42 insertions(+), 7 deletions(-)
diff --git a/.gitignore b/.gitignore
index d54326b..7467ee8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,4 +12,4 @@ documentation/build
documentation/python-doc
_venv/
_report/
-
+_tmp/
diff --git a/frontend/coprs_frontend/coprs/logic/coprs_logic.py
b/frontend/coprs_frontend/coprs/logic/coprs_logic.py
index 43db461..a9bc4d7 100644
--- a/frontend/coprs_frontend/coprs/logic/coprs_logic.py
+++ b/frontend/coprs_frontend/coprs/logic/coprs_logic.py
@@ -111,7 +111,7 @@ class CoprsLogic(object):
"User is not a system admin")
@classmethod
- def get_multiple_fulltext(cls, user, search_string):
+ def get_multiple_fulltext(cls, search_string):
query = (models.Copr.query.join(models.User)
.filter(models.Copr.deleted == False))
if "/" in search_string:
diff --git a/frontend/coprs_frontend/coprs/views/api_ns/api_general.py
b/frontend/coprs_frontend/coprs/views/api_ns/api_general.py
index 1e21a1e..96d3b62 100644
--- a/frontend/coprs_frontend/coprs/views/api_ns/api_general.py
+++ b/frontend/coprs_frontend/coprs/views/api_ns/api_general.py
@@ -496,8 +496,7 @@ def api_coprs_search_by_project(project=None):
httpcode = 200
if project:
try:
- query = coprs_logic.CoprsLogic.get_multiple_fulltext(
- flask.g.user, project)
+ query = coprs_logic.CoprsLogic.get_multiple_fulltext(project)
repos = query.all()
output = {"output": "ok", "repos": []}
diff --git a/frontend/coprs_frontend/coprs/views/coprs_ns/coprs_general.py
b/frontend/coprs_frontend/coprs/views/coprs_ns/coprs_general.py
index ab3c05c..419483d 100644
--- a/frontend/coprs_frontend/coprs/views/coprs_ns/coprs_general.py
+++ b/frontend/coprs_frontend/coprs/views/coprs_ns/coprs_general.py
@@ -95,8 +95,7 @@ def coprs_by_allowed(username=None, page=1):
def coprs_fulltext_search(page=1):
fulltext = flask.request.args.get("fulltext", "")
try:
- query = coprs_logic.CoprsLogic.get_multiple_fulltext(
- flask.g.user, fulltext)
+ query = coprs_logic.CoprsLogic.get_multiple_fulltext(fulltext)
except ValueError as e:
flask.flash(str(e))
return flask.redirect(flask.request.referrer or
diff --git a/frontend/coprs_frontend/tests/test_logic/test_coprs_logic.py
b/frontend/coprs_frontend/tests/test_logic/test_coprs_logic.py
index 39f600a..0aedd87 100644
--- a/frontend/coprs_frontend/tests/test_logic/test_coprs_logic.py
+++ b/frontend/coprs_frontend/tests/test_logic/test_coprs_logic.py
@@ -4,6 +4,7 @@ from coprs.exceptions import ActionInProgressException
from coprs.helpers import ActionTypeEnum
from coprs.logic.coprs_logic import CoprsLogic
+from coprs import models
from tests.coprs_test_case import CoprsTestCase
@@ -28,3 +29,40 @@ class TestCoprsLogic(CoprsTestCase):
# test will fail if this raises exception
CoprsLogic.raise_if_unfinished_blocking_action(
None, self.c1, "ha, failed")
+
+ def test_fulltext_whooshee_return_all_hits(self, f_users, f_db):
+ #
https://bugzilla.redhat.com/show_bug.cgi?id=1153039
+ self.prefix = u"prefix"
+ self.s_coprs = []
+
+ u1_count = 150
+ for x in range(u1_count):
+ self.s_coprs.append(models.Copr(name=self.prefix + str(x), owner=self.u1))
+
+ u2_count = 7
+ for x in range(u2_count):
+ self.s_coprs.append(models.Copr(name=self.prefix + str(x), owner=self.u2))
+
+ u3_count = 9
+ for x in range(u3_count):
+ self.s_coprs.append(models.Copr(name=u"_wrong_" + str(x),
owner=self.u3))
+
+
+ self.db.session.add_all(self.s_coprs)
+ self.db.session.commit()
+
+ #query = CoprsLogic.get_multiple_fulltext("prefix")
+ pre_query = models.Copr.query.join(models.User).filter(models.Copr.deleted ==
False)
+
+ query = pre_query.whooshee_search(self.prefix)
+
+
+ results = query.all()
+ #import ipdb; ipdb.set_trace()
+ for obj in results:
+ assert self.prefix in obj.name
+
+ obtained = len(results)
+ expected = u1_count + u2_count
+ # TODO: uncomment when fix in flask-whooshee will be released
+ #assert obtained == expected
diff --git a/frontend/coprs_frontend/tests/test_views/test_coprs_ns/test_coprs_general.py
b/frontend/coprs_frontend/tests/test_views/test_coprs_ns/test_coprs_general.py
index adc3a90..0e0b94c 100644
--- a/frontend/coprs_frontend/tests/test_views/test_coprs_ns/test_coprs_general.py
+++ b/frontend/coprs_frontend/tests/test_views/test_coprs_ns/test_coprs_general.py
@@ -645,7 +645,6 @@ class TestSearch(CoprsTestCase):
#mc_flask.render_template.return_value = mock.MagicMock()
#self.prefix = u"prefix_{}_".format(int(time.time()))
self.prefix = u"prefix"
-
self.s_coprs = []
for x in range(5):