Merge lp:~zyga/checkbox/fix-1444242 into lp:checkbox

Proposed by Zygmunt Krynicki
Status: Merged
Approved by: Maciej Kisielewski
Approved revision: 3693
Merged at revision: 3693
Proposed branch: lp:~zyga/checkbox/fix-1444242
Merge into: lp:checkbox
Diff against target: 61 lines (+23/-2)
2 files modified
plainbox/plainbox/impl/unit/job.py (+1/-1)
plainbox/plainbox/impl/unit/test_job.py (+22/-1)
To merge this branch: bzr merge lp:~zyga/checkbox/fix-1444242
Reviewer Review Type Date Requested Status
Maciej Kisielewski Approve
Review via email: mp+256361@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Maciej Kisielewski (kissiel) wrote :

+1, Thanks!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'plainbox/plainbox/impl/unit/job.py'
2--- plainbox/plainbox/impl/unit/job.py 2015-04-08 11:13:36 +0000
3+++ plainbox/plainbox/impl/unit/job.py 2015-04-15 16:41:22 +0000
4@@ -523,7 +523,7 @@
5 else:
6 implicit_namespace = None
7 if self.imports is not None:
8- imports = self.get_imported_jobs()
9+ imports = list(self.get_imported_jobs())
10 else:
11 imports = None
12 self._resource_program = ResourceProgram(
13
14=== modified file 'plainbox/plainbox/impl/unit/test_job.py'
15--- plainbox/plainbox/impl/unit/test_job.py 2015-04-08 11:13:36 +0000
16+++ plainbox/plainbox/impl/unit/test_job.py 2015-04-15 16:41:22 +0000
17@@ -27,10 +27,12 @@
18 from unittest import TestCase
19 import warnings
20
21+from plainbox.impl.providers.v1 import Provider1
22 from plainbox.impl.secure.origin import FileTextSource
23 from plainbox.impl.secure.origin import Origin
24 from plainbox.impl.secure.rfc822 import RFC822Record
25 from plainbox.impl.unit.job import JobDefinition
26+from plainbox.impl.unit.job import propertywithsymbols
27 from plainbox.impl.unit.test_unit_with_id import UnitWithIdFieldValidationTests
28 from plainbox.impl.unit.unit_with_id import UnitWithId
29 from plainbox.impl.unit.validators import UnitValidationContext
30@@ -39,7 +41,6 @@
31 from plainbox.impl.validation import ValidationError
32 from plainbox.testing_utils.testcases import TestCaseWithParameters
33 from plainbox.vendor import mock
34-from plainbox.impl.unit.job import propertywithsymbols
35
36
37 class DecoratorTests(TestCase):
38@@ -1338,3 +1339,23 @@
39 expected = set({'foo', 'bar', 'froz'})
40 observed = job.get_direct_dependencies()
41 self.assertEqual(expected, observed)
42+
43+
44+class RegressionTests(TestCase):
45+
46+ """ Regression tests. """
47+
48+ def test_1444242(self):
49+ """ Regression test for http://pad.lv/1444242/. """
50+ provider = mock.Mock(spec_set=Provider1, name='provider')
51+ provider.namespace = '2013.com.canonical.certification'
52+ job = JobDefinition({
53+ 'id': 'audio/playback_thunderbolt',
54+ 'imports': 'from 2013.com.canonical.plainbox import manifest',
55+ 'requires': (
56+ "device.category == 'AUDIO'\n"
57+ "manifest.has_thunderbolt == 'True'\n"),
58+ }, provider=provider)
59+ prog = job.get_resource_program()
60+ self.assertEqual(prog.expression_list[-1].resource_id,
61+ '2013.com.canonical.plainbox::manifest')

Subscribers

People subscribed via source and target branches