Merge lp:~cjwatson/launchpad/snapcraft-fix-more-yaml-paths into lp:launchpad

Proposed by Colin Watson
Status: Merged
Merged at revision: 18322
Proposed branch: lp:~cjwatson/launchpad/snapcraft-fix-more-yaml-paths
Merge into: lp:launchpad
Diff against target: 66 lines (+13/-6)
2 files modified
lib/lp/snappy/browser/snap.py (+1/-0)
lib/lp/snappy/browser/tests/test_snap.py (+12/-6)
To merge this branch: bzr merge lp:~cjwatson/launchpad/snapcraft-fix-more-yaml-paths
Reviewer Review Type Date Requested Status
Colin Watson (community) Approve
Review via email: mp+316328@code.launchpad.net

Commit message

Fix loop exit condition when looking for snapcraft.yaml.

Description of the change

Hooray for me for managing to write tests that proved that the code under test didn't work.

To post a comment you must log in.
Revision history for this message
Colin Watson (cjwatson) wrote :

Self-approving since the non-test change is a trivial brown-paper-bag fix.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'lib/lp/snappy/browser/snap.py'
2--- lib/lp/snappy/browser/snap.py 2017-02-02 22:55:36 +0000
3+++ lib/lp/snappy/browser/snap.py 2017-02-03 11:52:51 +0000
4@@ -445,6 +445,7 @@
5 try:
6 blob = self.context.repository.getBlob(
7 path, self.context.name)
8+ break
9 except GitRepositoryBlobNotFound:
10 if i == len(paths) - 1:
11 raise
12
13=== modified file 'lib/lp/snappy/browser/tests/test_snap.py'
14--- lib/lp/snappy/browser/tests/test_snap.py 2017-02-01 06:31:30 +0000
15+++ lib/lp/snappy/browser/tests/test_snap.py 2017-02-03 11:52:51 +0000
16@@ -485,9 +485,15 @@
17 self.assertContentEqual(
18 ["386", "amd64"], [proc.name for proc in snap.processors])
19
20- def test_initial_name_extraction_git(self):
21+ def test_initial_name_extraction_git_snap_snapcraft_yaml(self):
22+ def getBlob(filename, *args, **kwargs):
23+ if filename == "snap/snapcraft.yaml":
24+ return "name: test-snap"
25+ else:
26+ raise GitRepositoryBlobNotFound("dummy", filename)
27+
28 [git_ref] = self.factory.makeGitRefs()
29- git_ref.repository.getBlob = FakeMethod(result='name: test-snap')
30+ git_ref.repository.getBlob = getBlob
31 view = create_initialized_view(git_ref, "+new-snap")
32 initial_values = view.initial_values
33 self.assertIn('store_name', initial_values)
34@@ -498,28 +504,28 @@
35 if filename == "snapcraft.yaml":
36 return "name: test-snap"
37 else:
38- raise GitRepositoryBlobNotFound()
39+ raise GitRepositoryBlobNotFound("dummy", filename)
40
41 [git_ref] = self.factory.makeGitRefs()
42 git_ref.repository.getBlob = getBlob
43 view = create_initialized_view(git_ref, "+new-snap")
44 initial_values = view.initial_values
45 self.assertIn('store_name', initial_values)
46- self.assertIsNone(initial_values['store_name'])
47+ self.assertEqual('test-snap', initial_values['store_name'])
48
49 def test_initial_name_extraction_git_dot_snapcraft_yaml(self):
50 def getBlob(filename, *args, **kwargs):
51 if filename == ".snapcraft.yaml":
52 return "name: test-snap"
53 else:
54- raise GitRepositoryBlobNotFound()
55+ raise GitRepositoryBlobNotFound("dummy", filename)
56
57 [git_ref] = self.factory.makeGitRefs()
58 git_ref.repository.getBlob = getBlob
59 view = create_initialized_view(git_ref, "+new-snap")
60 initial_values = view.initial_values
61 self.assertIn('store_name', initial_values)
62- self.assertIsNone(initial_values['store_name'])
63+ self.assertEqual('test-snap', initial_values['store_name'])
64
65 def test_initial_name_extraction_git_repo_error(self):
66 [git_ref] = self.factory.makeGitRefs()