Merge lp:~allenap/maas/operating-system-get-release-title into lp:~maas-committers/maas/trunk

Proposed by Gavin Panella
Status: Merged
Approved by: Gavin Panella
Approved revision: no longer in the source branch.
Merged at revision: 2544
Proposed branch: lp:~allenap/maas/operating-system-get-release-title
Merge into: lp:~maas-committers/maas/trunk
Diff against target: 223 lines (+58/-44)
11 files modified
src/maasserver/utils/tests/test_osystems.py (+2/-2)
src/provisioningserver/drivers/osystem/__init__.py (+14/-0)
src/provisioningserver/drivers/osystem/centos.py (+3/-9)
src/provisioningserver/drivers/osystem/suse.py (+3/-9)
src/provisioningserver/drivers/osystem/tests/test_centos.py (+7/-0)
src/provisioningserver/drivers/osystem/tests/test_suse.py (+7/-0)
src/provisioningserver/drivers/osystem/tests/test_ubuntu.py (+7/-0)
src/provisioningserver/drivers/osystem/tests/test_windows.py (+7/-0)
src/provisioningserver/drivers/osystem/ubuntu.py (+3/-9)
src/provisioningserver/drivers/osystem/windows.py (+3/-9)
src/provisioningserver/testing/os.py (+2/-6)
To merge this branch: bzr merge lp:~allenap/maas/operating-system-get-release-title
Reviewer Review Type Date Requested Status
Blake Rouse (community) Approve
Review via email: mp+226346@code.launchpad.net

Commit message

New method OperatingSystem.get_release_title().

Reimplements format_release_choices() to use this new method, in preparation for moving it out.

To post a comment you must log in.
Revision history for this message
Blake Rouse (blake-rouse) wrote :

2 tests fail in maasserver.

======================================================================
FAIL: maasserver.utils.tests.test_osystems.TestReleases.test_list_release_choices_formats_releases
----------------------------------------------------------------------
_StringException: Traceback (most recent call last):
  File "/home/blake/Code/operating-system-get-release-title/src/maasserver/utils/tests/test_osystems.py", line 308, in test_list_release_choices_formats_releases
    mapping, include_default=False, include_latest=False))
  File "/home/blake/.buildout/eggs/testtools-0.9.34-py2.7.egg/testtools/testcase.py", line 324, in assertEqual
    self.assertThat(observed, matcher, message)
  File "/home/blake/.buildout/eggs/testtools-0.9.34-py2.7.egg/testtools/testcase.py", line 414, in assertThat
    raise MismatchError(matchee, matcher, mismatch, verbose)
MismatchError: !=:
reference = [(u'os-hc2h6v/release-gOwSRW', u'release-gOwSRW'),
 (u'os-hc2h6v/release-wbRO5L', u'release-wbRO5L'),
 (u'os-hc2h6v/release-hc0SVU', u'release-hc0SVU')]
actual = [(u'os-hc2h6v/release-wbRO5L', u'release-wbRO5L'),
 (u'os-hc2h6v/release-hc0SVU', u'release-hc0SVU'),
 (u'os-hc2h6v/release-gOwSRW', u'release-gOwSRW')]

======================================================================
FAIL: maasserver.utils.tests.test_osystems.TestReleases.test_list_release_choices_includes_requires_key_astrisk
----------------------------------------------------------------------
_StringException: Traceback (most recent call last):
  File "/home/blake/Code/operating-system-get-release-title/src/maasserver/utils/tests/test_osystems.py", line 327, in test_list_release_choices_includes_requires_key_astrisk
    mapping, include_default=False, include_latest=True))
  File "/home/blake/.buildout/eggs/testtools-0.9.34-py2.7.egg/testtools/testcase.py", line 324, in assertEqual
    self.assertThat(observed, matcher, message)
  File "/home/blake/.buildout/eggs/testtools-0.9.34-py2.7.egg/testtools/testcase.py", line 414, in assertThat
    raise MismatchError(matchee, matcher, mismatch, verbose)
MismatchError: !=:
reference = [(u'os-dqnHl8/*', u'Latest os-dqnHl8 Release'),
 (u'os-dqnHl8/release-HemEQv*', u'release-HemEQv'),
 (u'os-dqnHl8/release-HyIaTO*', u'release-HyIaTO'),
 (u'os-dqnHl8/release-Dt1AdB*', u'release-Dt1AdB')]
actual = [(u'os-dqnHl8/*', u'Latest os-dqnHl8 Release'),
 (u'os-dqnHl8/release-HyIaTO*', u'release-HyIaTO'),
 (u'os-dqnHl8/release-HemEQv*', u'release-HemEQv'),
 (u'os-dqnHl8/release-Dt1AdB*', u'release-Dt1AdB')]

review: Needs Fixing
Revision history for this message
Gavin Panella (allenap) wrote :

> 2 tests fail in maasserver.

Dang! Fixed; it was an ordering problem. I'm not sure exactly why these
suddenly decided to fail and not before, but I think I've done the right
thing.

Thanks for the review!

Revision history for this message
Blake Rouse (blake-rouse) wrote :

Looks good!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/maasserver/utils/tests/test_osystems.py'
2--- src/maasserver/utils/tests/test_osystems.py 2014-07-07 15:48:58 +0000
3+++ src/maasserver/utils/tests/test_osystems.py 2014-07-11 10:02:02 +0000
4@@ -300,7 +300,7 @@
5 }
6 expected = [
7 ('%s/%s' % (os_name, release), release)
8- for release in releases
9+ for release in sorted(releases, reverse=True)
10 ]
11 self.assertEqual(
12 expected,
13@@ -319,7 +319,7 @@
14 expected = [('%s/*' % os_name, 'Latest %s Release' % os_name)]
15 expected.extend(
16 ('%s/%s*' % (os_name, release), release)
17- for release in releases
18+ for release in sorted(releases, reverse=True)
19 )
20 self.assertEqual(
21 expected,
22
23=== modified file 'src/provisioningserver/drivers/osystem/__init__.py'
24--- src/provisioningserver/drivers/osystem/__init__.py 2014-06-24 18:28:28 +0000
25+++ src/provisioningserver/drivers/osystem/__init__.py 2014-07-11 10:02:02 +0000
26@@ -65,12 +65,26 @@
27 """
28
29 @abstractmethod
30+ def get_release_title(self, release):
31+ """Returns the title for the given release.
32+
33+ :type release: unicode
34+ :returns: unicode
35+ """
36+
37 def format_release_choices(self, releases):
38 """Formats the release choices that are presented to the user.
39
40 :param releases: list of installed boot image releases
41 :returns: Return Django "choices" list
42 """
43+ choices = []
44+ releases = sorted(releases, reverse=True)
45+ for release in releases:
46+ title = self.get_release_title(release)
47+ if title is not None:
48+ choices.append((release, title))
49+ return choices
50
51 @abstractmethod
52 def get_boot_image_purposes(self, arch, subarch, release, label):
53
54=== modified file 'src/provisioningserver/drivers/osystem/centos.py'
55--- src/provisioningserver/drivers/osystem/centos.py 2014-06-13 20:39:27 +0000
56+++ src/provisioningserver/drivers/osystem/centos.py 2014-07-11 10:02:02 +0000
57@@ -54,12 +54,6 @@
58 explicit."""
59 return DISTRO_SERIES_DEFAULT
60
61- def format_release_choices(self, releases):
62- """Formats the release choices that are presented to the user."""
63- choices = []
64- releases = sorted(releases, reverse=True)
65- for release in releases:
66- title = DISTRO_SERIES_CHOICES.get(release)
67- if title is not None:
68- choices.append((release, title))
69- return choices
70+ def get_release_title(self, release):
71+ """Return the title for the given release."""
72+ return DISTRO_SERIES_CHOICES.get(release)
73
74=== modified file 'src/provisioningserver/drivers/osystem/suse.py'
75--- src/provisioningserver/drivers/osystem/suse.py 2014-06-24 18:26:42 +0000
76+++ src/provisioningserver/drivers/osystem/suse.py 2014-07-11 10:02:02 +0000
77@@ -51,12 +51,6 @@
78 explicit."""
79 return DISTRO_SERIES_DEFAULT
80
81- def format_release_choices(self, releases):
82- """Formats the release choices that are presented to the user."""
83- choices = []
84- releases = sorted(releases, reverse=True)
85- for release in releases:
86- title = DISTRO_SERIES_CHOICES.get(release)
87- if title is not None:
88- choices.append((release, title))
89- return choices
90+ def get_release_title(self, release):
91+ """Return the title for the given release."""
92+ return DISTRO_SERIES_CHOICES.get(release)
93
94=== modified file 'src/provisioningserver/drivers/osystem/tests/test_centos.py'
95--- src/provisioningserver/drivers/osystem/tests/test_centos.py 2014-06-16 14:25:56 +0000
96+++ src/provisioningserver/drivers/osystem/tests/test_centos.py 2014-07-11 10:02:02 +0000
97@@ -54,6 +54,13 @@
98 expected = osystem.get_default_release()
99 self.assertEqual(expected, DISTRO_SERIES_DEFAULT)
100
101+ def test_get_release_title(self):
102+ osystem = CentOS()
103+ self.assertEqual(
104+ {release: osystem.get_release_title(release)
105+ for release in osystem.get_supported_releases()},
106+ DISTRO_SERIES_CHOICES)
107+
108 def test_format_release_choices(self):
109 osystem = CentOS()
110 releases = osystem.get_supported_releases()
111
112=== modified file 'src/provisioningserver/drivers/osystem/tests/test_suse.py'
113--- src/provisioningserver/drivers/osystem/tests/test_suse.py 2014-06-18 13:37:28 +0000
114+++ src/provisioningserver/drivers/osystem/tests/test_suse.py 2014-07-11 10:02:02 +0000
115@@ -54,6 +54,13 @@
116 expected = osystem.get_default_release()
117 self.assertEqual(expected, DISTRO_SERIES_DEFAULT)
118
119+ def test_get_release_title(self):
120+ osystem = SUSEOS()
121+ self.assertEqual(
122+ {release: osystem.get_release_title(release)
123+ for release in osystem.get_supported_releases()},
124+ DISTRO_SERIES_CHOICES)
125+
126 def test_format_release_choices(self):
127 osystem = SUSEOS()
128 releases = osystem.get_supported_releases()
129
130=== modified file 'src/provisioningserver/drivers/osystem/tests/test_ubuntu.py'
131--- src/provisioningserver/drivers/osystem/tests/test_ubuntu.py 2014-06-10 14:45:14 +0000
132+++ src/provisioningserver/drivers/osystem/tests/test_ubuntu.py 2014-07-11 10:02:02 +0000
133@@ -69,6 +69,13 @@
134 expected = osystem.get_default_commissioning_release()
135 self.assertEqual(expected, COMMISIONING_DISTRO_SERIES_DEFAULT)
136
137+ def test_get_release_title(self):
138+ osystem = UbuntuOS()
139+ self.assertEqual(
140+ {release: osystem.get_release_title(release)
141+ for release in osystem.get_supported_releases()},
142+ DISTRO_SERIES_CHOICES)
143+
144 def test_format_release_choices(self):
145 osystem = UbuntuOS()
146 releases = osystem.get_supported_releases()
147
148=== modified file 'src/provisioningserver/drivers/osystem/tests/test_windows.py'
149--- src/provisioningserver/drivers/osystem/tests/test_windows.py 2014-06-25 16:29:11 +0000
150+++ src/provisioningserver/drivers/osystem/tests/test_windows.py 2014-07-11 10:02:02 +0000
151@@ -91,6 +91,13 @@
152 expected = osystem.get_default_release()
153 self.assertEqual(expected, WINDOWS_DEFAULT)
154
155+ def test_get_release_title(self):
156+ osystem = WindowsOS()
157+ self.assertEqual(
158+ {release: osystem.get_release_title(release)
159+ for release in osystem.get_supported_releases()},
160+ WINDOWS_CHOICES)
161+
162 def test_format_release_choices(self):
163 osystem = WindowsOS()
164 releases = osystem.get_supported_releases()
165
166=== modified file 'src/provisioningserver/drivers/osystem/ubuntu.py'
167--- src/provisioningserver/drivers/osystem/ubuntu.py 2014-06-10 14:45:14 +0000
168+++ src/provisioningserver/drivers/osystem/ubuntu.py 2014-07-11 10:02:02 +0000
169@@ -78,12 +78,6 @@
170 """
171 return COMMISIONING_DISTRO_SERIES_DEFAULT
172
173- def format_release_choices(self, releases):
174- """Formats the release choices that are presented to the user."""
175- choices = []
176- releases = sorted(releases, reverse=True)
177- for release in releases:
178- title = DISTRO_SERIES_CHOICES.get(release)
179- if title is not None:
180- choices.append((release, title))
181- return choices
182+ def get_release_title(self, release):
183+ """Return the title for the given release."""
184+ return DISTRO_SERIES_CHOICES.get(release)
185
186=== modified file 'src/provisioningserver/drivers/osystem/windows.py'
187--- src/provisioningserver/drivers/osystem/windows.py 2014-06-25 16:29:11 +0000
188+++ src/provisioningserver/drivers/osystem/windows.py 2014-07-11 10:02:02 +0000
189@@ -69,15 +69,9 @@
190 explicit."""
191 return WINDOWS_DEFAULT
192
193- def format_release_choices(self, releases):
194- """Formats the release choices that are presented to the user."""
195- choices = []
196- releases = sorted(releases, reverse=True)
197- for release in releases:
198- title = WINDOWS_CHOICES.get(release)
199- if title is not None:
200- choices.append((release, title))
201- return choices
202+ def get_release_title(self, release):
203+ """Return the title for the given release."""
204+ return WINDOWS_CHOICES.get(release)
205
206 def requires_license_key(self, release):
207 return release in REQUIRE_LICENSE_KEY
208
209=== modified file 'src/provisioningserver/testing/os.py'
210--- src/provisioningserver/testing/os.py 2014-06-09 14:50:48 +0000
211+++ src/provisioningserver/testing/os.py 2014-07-11 10:02:02 +0000
212@@ -46,9 +46,5 @@
213 def get_default_release(self):
214 return self.fake_list[0]
215
216- def format_release_choices(self, releases):
217- return [
218- (release, release)
219- for release in releases
220- if release in self.fake_list
221- ]
222+ def get_release_title(self, release):
223+ return release