Merge ~kissiel/plainbox:testplanless-resume into plainbox:master

Proposed by Maciej Kisielewski
Status: Merged
Approved by: Maciej Kisielewski
Approved revision: d7bb59b1ab3b1d4072e595e613eacacdd2b84e71
Merged at revision: 38aec73174fa568ebdef0e1c3707cb3415d7ea05
Proposed branch: ~kissiel/plainbox:testplanless-resume
Merge into: plainbox:master
Diff against target: 43 lines (+11/-3)
2 files modified
plainbox/impl/session/assistant.py (+7/-3)
plainbox/impl/session/state.py (+4/-0)
Reviewer Review Type Date Requested Status
Sylvain Pineau (community) Approve
Review via email: mp+329444@code.launchpad.net

Description of the change

Introduce 'testplanless' flag to SessionAssistant to facilitate normal features (like resume) for sessions that don't use test plans.

And also properly set the flags when calling hand_pick_jobs()

To post a comment you must log in.
Revision history for this message
Sylvain Pineau (sylvain-pineau) wrote :

+1 for the new flag, really explicit.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/plainbox/impl/session/assistant.py b/plainbox/impl/session/assistant.py
2index 253625f..1832516 100644
3--- a/plainbox/impl/session/assistant.py
4+++ b/plainbox/impl/session/assistant.py
5@@ -643,9 +643,12 @@ class SessionAssistant:
6 self._restart_strategy.diffuse_application_restart(self._app_id)
7 self.session_available(self._manager.storage.id)
8 _logger.debug("Session resumed: %s", session_id)
9- UsageExpectation.of(self).allowed_calls = {
10- self.select_test_plan: "to save test plan selection",
11- }
12+ if SessionMetaData.FLAG_TESTPLANLESS in self._metadata.flags:
13+ UsageExpectation.of(self).allowed_calls = self._get_allowed_calls_in_normal_state()
14+ else:
15+ UsageExpectation.of(self).allowed_calls = {
16+ self.select_test_plan: "to save test plan selection",
17+ }
18 return self._metadata
19
20 @raises(UnexpectedMethodCall)
21@@ -905,6 +908,7 @@ class SessionAssistant:
22 '^{}$'.format(pattern)), Origin('hand-pick')))
23 jobs = select_jobs(self._context.state.job_list, qualifiers)
24 self._context.state.update_desired_job_list(jobs)
25+ self._metadata.flags = {'incomplete', 'testplanless'}
26 UsageExpectation.of(self).allowed_calls = (
27 self._get_allowed_calls_in_normal_state())
28
29diff --git a/plainbox/impl/session/state.py b/plainbox/impl/session/state.py
30index a225986..0fd2ac2 100644
31--- a/plainbox/impl/session/state.py
32+++ b/plainbox/impl/session/state.py
33@@ -70,6 +70,10 @@ class SessionMetaData:
34 # once the testing begin
35 FLAG_BOOTSTRAPPING = "bootstrapping"
36
37+ # Flag indicating that session is using hand-picked list of jobs
38+ # and is not following any test plan
39+ FLAG_TESTPLANLESS = "testplanless"
40+
41 def __init__(self, title=None, flags=None, running_job_name=None,
42 app_blob=None, app_id=None):
43 """Initialize a new session state meta-data object."""

Subscribers

People subscribed via source and target branches