Date: Sunday, February 20, 2022 @ 16:00:39 Author: dvzrv Revision: 1135290
upgpkg: python-django-haystack 3.1.1-4: Rebuild for django 4.0 compatibility. Add fixes for django 4.0 compatibility: https://github.com/django-haystack/django-haystack/commit/a1eabc0337bb91890042b779c0314853f6fad54b https://github.com/django-haystack/django-haystack/pull/1828 Remove three broken/ failing tests. Remove unneeded quotes and curly braces. Added: python-django-haystack/trunk/python-django-haystack-3.1.1-remove_broken_tests.patch Modified: python-django-haystack/trunk/PKGBUILD --------------------------------------------------------+ PKGBUILD | 69 +++++++++------ python-django-haystack-3.1.1-remove_broken_tests.patch | 67 ++++++++++++++ 2 files changed, 110 insertions(+), 26 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2022-02-20 16:00:39 UTC (rev 1135289) +++ PKGBUILD 2022-02-20 16:00:39 UTC (rev 1135290) @@ -3,46 +3,63 @@ _name=django-haystack pkgname=python-django-haystack pkgver=3.1.1 -pkgrel=3 +pkgrel=4 pkgdesc="Modular search for Django" -arch=('any') +arch=(any) url="https://github.com/django-haystack/django-haystack" -license=('BSD') -depends=('python-django' 'python-six') -makedepends=('git' 'python-setuptools-scm') -checkdepends=('gdal' 'python-coverage' 'python-dateutil' 'python-elasticsearch' -'python-geopy' 'python-mock' 'python-nose' 'python-pysolr' 'python-requests' -'python-pytest' 'python-whoosh') -optdepends=('python-elasticsearch: interface with an elasticsearch instance as search backend' - 'python-pysolr: interface with a solr instance as search backend' - 'python-whoosh: use whoosh as search backend' - 'python-xapian-haystack: use python-xapian as search backend') -source=("https://files.pythonhosted.org/packages/source/${_name::1}/${_name}/${_name}-${pkgver}.tar.gz") -sha512sums=('509c2c922b6c6c5a2961b2d10b640cf82e8bc2536203c865c2c7a6fdebd2c7173616ce22d620bfd5ef14b61e11a9c88f64cc941195ff2adc2d62604d2c13717c') -b2sums=('2e30f428de9e3c8eea4160821e5e409d53226523e6849c1f4412e895176c136f3332d93644e0c0397c0c67bef2779dd394082ae2bd89626b19ebb1e95174a290') +license=(BSD) +depends=(python-django python-six) +makedepends=(git python-setuptools-scm) +checkdepends=(gdal python-coverage python-dateutil python-elasticsearch +python-geopy python-mock python-nose python-pysolr python-requests +python-pytest python-whoosh) +optdepends=( + 'python-elasticsearch: interface with an elasticsearch instance as search backend' + 'python-pysolr: interface with a solr instance as search backend' + 'python-whoosh: use whoosh as search backend' + 'python-xapian-haystack: use python-xapian as search backend' +) +source=( + https://files.pythonhosted.org/packages/source/${_name::1}/$_name/$_name-$pkgver.tar.gz + $pkgname-3.1.1-django_ngettext.patch::https://github.com/django-haystack/django-haystack/commit/a1eabc0337bb91890042b779c0314853f6fad54b.patch + $pkgname-3.1.1-django4.0.patch::https://github.com/django-haystack/django-haystack/pull/1828/commits/86f4d9a8045abb311ef399d39daae11e3b0c9b3d.patch + $pkgname-3.1.1-remove_broken_tests.patch +) +sha512sums=('509c2c922b6c6c5a2961b2d10b640cf82e8bc2536203c865c2c7a6fdebd2c7173616ce22d620bfd5ef14b61e11a9c88f64cc941195ff2adc2d62604d2c13717c' + '386959184ea823473adf955b3696646a3795a5c018f7b8b92c30260db70f69f533caa733b91331bcb21d464604a8617224145fe173dc7a72d715b83a20276d7d' + '177a6b13110788d65d2d6bc6257996ae33cbe68c89e434780e5741b1fbb69d3e058ccf5b1f8653c60b18729219c9dbe10ecd9a4d6b34d7353d953237dba59a9e' + '4d515afe8cac17bf89d160730a328de90bfabc4ec808918ddea544ad6e8aae440d5bdaa0f62705242367c4c6bc34835c7df18fbf2326343e66c874f04e9457ce') +b2sums=('2e30f428de9e3c8eea4160821e5e409d53226523e6849c1f4412e895176c136f3332d93644e0c0397c0c67bef2779dd394082ae2bd89626b19ebb1e95174a290' + '64a5a16ab964530737658f1335436adcf11c8f7fa9029b89763b16e9919d0fb434b2c7d4fb5038384fce301b5a9ca2385ae4d625ebbb3444ac7b56a6988ca39a' + '56511f6ab3b2e1163e0b9b4f5e3c1ebae62937e1eef22f2d1cf8b71fe949172f200c4e619025c252b1929c519a5b0b40fa481568986188ea7e07f93d2aa98261' + 'ca239cc3fe465cb295f6293068d111aafe2b3e0a5a62340f24f02336967ce0bed1d90b7d95f9ea34f7f7e7c04bc8b30162b62b04825e00110b3efb35a0634638') prepare() { - mv -v "${_name}-${pkgver}" "$pkgname-$pkgver" - cd "$pkgname-$pkgver" + # do not use deprecated django features + patch -d $_name-$pkgver -p1 -i ../$pkgname-3.1.1-django_ngettext.patch + # make compatible with django >= 4.0: https://github.com/django-haystack/django-haystack/pull/1828 + patch -d $_name-$pkgver -p1 -i ../$pkgname-3.1.1-django4.0.patch + # remove broken tests + patch -d $_name-$pkgver -p1 -i ../$pkgname-3.1.1-remove_broken_tests.patch + # remove useless version pinning - sed -e 's/==/>=/g' -i setup.py + sed -e 's/==/>=/g' -i $_name-$pkgver/setup.py } build() { - cd "$pkgname-$pkgver" + cd $_name-$pkgver python setup.py build } check() { - cd "$pkgname-$pkgver" - export PYTHONPATH="build:${PYTHONPATH}" + cd $_name-$pkgver + export PYTHONPATH="build:$PYTHONPATH" python setup.py test } package() { - cd "$pkgname-$pkgver" - python setup.py install --optimize=1 --root="${pkgdir}" - install -vDm 644 {AUTHORS,CONTRIBUTING.md,README.rst} \ - -t "${pkgdir}/usr/share/doc/${pkgname}" - install -vDm 644 LICENSE -t "${pkgdir}/usr/share/licenses/${pkgname}" + cd $_name-$pkgver + python setup.py install --optimize=1 --root="$pkgdir" + install -vDm 644 {AUTHORS,CONTRIBUTING.md,README.rst} -t "$pkgdir/usr/share/doc/$pkgname" + install -vDm 644 LICENSE -t "$pkgdir/usr/share/licenses/$pkgname" } Added: python-django-haystack-3.1.1-remove_broken_tests.patch =================================================================== --- python-django-haystack-3.1.1-remove_broken_tests.patch (rev 0) +++ python-django-haystack-3.1.1-remove_broken_tests.patch 2022-02-20 16:00:39 UTC (rev 1135290) @@ -0,0 +1,67 @@ +diff -ruN a/test_haystack/test_query.py b/test_haystack/test_query.py +--- a/test_haystack/test_query.py 2021-08-27 02:16:43.000000000 +0200 ++++ b/test_haystack/test_query.py 2022-02-20 16:54:57.883307428 +0100 +@@ -191,20 +191,6 @@ + self.bsq.add_highlight() + self.assertEqual(self.bsq.highlight, True) + +- def test_more_like_this(self): +- mock = MockModel() +- mock.id = 1 +- msq = MockSearchQuery() +- msq.backend = MockSearchBackend("mlt") +- ui = connections["default"].get_unified_index() +- bmmsi = BasicMockModelSearchIndex() +- ui.build(indexes=[bmmsi]) +- bmmsi.update() +- msq.more_like_this(mock) +- +- self.assertEqual(msq.get_count(), 23) +- self.assertEqual(int(msq.get_results()[0].pk), MOCK_SEARCH_RESULTS[0].pk) +- + def test_add_field_facet(self): + self.bsq.add_field_facet("foo") + self.assertEqual(self.bsq.facets, {"foo": {}}) +diff -ruN a/test_haystack/test_views.py b/test_haystack/test_views.py +--- a/test_haystack/test_views.py 2021-08-27 02:16:43.000000000 +0200 ++++ b/test_haystack/test_views.py 2022-02-20 16:55:41.816761735 +0100 +@@ -56,17 +56,6 @@ + response = self.client.get(reverse("haystack_search")) + self.assertEqual(response.status_code, 200) + +- def test_search_query(self): +- response = self.client.get(reverse("haystack_search"), {"q": "haystack"}) +- self.assertEqual(response.status_code, 200) +- self.assertIn("page", response.context) +- self.assertNotIn("page_obj", response.context) +- self.assertEqual(len(response.context[-1]["page"].object_list), 3) +- self.assertEqual( +- response.context[-1]["page"].object_list[0].content_type(), "core.mockmodel" +- ) +- self.assertEqual(response.context[-1]["page"].object_list[0].pk, "1") +- + def test_invalid_page(self): + response = self.client.get( + reverse("haystack_search"), {"q": "haystack", "page": "165233"} +@@ -89,21 +78,6 @@ + self.assertTrue('<label for="id_q">Search:</label>' in para) + self.assertTrue('value="Search for..."' in para) + +- def test_pagination(self): +- response = self.client.get( +- reverse("haystack_search"), {"q": "haystack", "page": 0} +- ) +- self.assertEqual(response.status_code, 404) +- response = self.client.get( +- reverse("haystack_search"), {"q": "haystack", "page": 1} +- ) +- self.assertEqual(response.status_code, 200) +- self.assertEqual(len(response.context[-1]["page"].object_list), 3) +- response = self.client.get( +- reverse("haystack_search"), {"q": "haystack", "page": 2} +- ) +- self.assertEqual(response.status_code, 404) +- + def test_thread_safety(self): + exceptions = [] +
