Merge ~twom/launchpad:finding-a-500-isnt-useful into launchpad:master

Proposed by Tom Wardill
Status: Merged
Approved by: Tom Wardill
Approved revision: 5c592cd802013255800700d319c7f88e8cb1b4ec
Merge reported by: Otto Co-Pilot
Merged at revision: not available
Proposed branch: ~twom/launchpad:finding-a-500-isnt-useful
Merge into: launchpad:master
Diff against target: 41 lines (+14/-3)
2 files modified
lib/lp/registry/model/distribution.py (+6/-3)
lib/lp/registry/tests/test_distribution.py (+8/-0)
Reviewer Review Type Date Requested Status
Colin Watson (community) Approve
Review via email: mp+383773@code.launchpad.net

Commit message

Fix OOPS with an empty search term

To post a comment you must log in.
Revision history for this message
Colin Watson (cjwatson) :
review: Approve
5c592cd... by Tom Wardill

Fix test structure

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/lib/lp/registry/model/distribution.py b/lib/lp/registry/model/distribution.py
2index df02431..9c4c96e 100644
3--- a/lib/lp/registry/model/distribution.py
4+++ b/lib/lp/registry/model/distribution.py
5@@ -1128,11 +1128,14 @@ class Distribution(SQLBase, BugTargetBase, MakesAnnouncements,
6 # circular import
7 from lp.registry.model.ociproject import OCIProject
8 store = Store.of(self)
9+ clauses = [OCIProject.distribution == self]
10+ if text is not None:
11+ clauses += [
12+ OCIProject.ociprojectname_id == OCIProjectName.id,
13+ OCIProjectName.name.contains_string(text)]
14 return store.find(
15 OCIProject,
16- OCIProject.distribution == self,
17- OCIProject.ociprojectname_id == OCIProjectName.id,
18- OCIProjectName.name.contains_string(text))
19+ *clauses)
20
21 def guessPublishedSourcePackageName(self, pkgname):
22 """See `IDistribution`"""
23diff --git a/lib/lp/registry/tests/test_distribution.py b/lib/lp/registry/tests/test_distribution.py
24index f64e947..9eb671d 100644
25--- a/lib/lp/registry/tests/test_distribution.py
26+++ b/lib/lp/registry/tests/test_distribution.py
27@@ -313,6 +313,14 @@ class TestDistribution(TestCaseWithFactory):
28 result = distro.getOCIProject(first_project.name)
29 self.assertEqual(first_project, result)
30
31+ def test_searchOCIProjects_empty(self):
32+ distro = self.factory.makeDistribution()
33+ for _ in range(5):
34+ self.factory.makeOCIProject(pillar=distro)
35+
36+ result = distro.searchOCIProjects()
37+ self.assertEqual(5, result.count())
38+
39 def test_searchOCIProjects_by_name(self):
40 name = self.factory.getUniqueUnicode()
41 distro = self.factory.makeDistribution()

Subscribers

People subscribed via source and target branches

to status/vote changes: