def test_can_start_all_parents(c_mock, g_mock): g_mock.side_effect = get_by_id_side_effect c_mock.side_effect = children_side_effect pm = ProgressMonitor(DbConnection=RedisProgressManager()) pm = pm.load('94a52a41-bf9e-43e3-9650-859f7c263dc8') t = pm.find_id('039fe353-2c01-49f4-a743-b09c02c9f683') assert t t.start(Parents=True) assert t.parent.status == 'In Progress' print t.parent.id assert t.parent.parent.status == 'In Progress'
# or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions and limitations under the License. import redis from progressmonitor import RedisProgressManager, ProgressMonitor, \ ProgressTracker pool = redis.ConnectionPool(host='localhost', port=6379, db=0) r = redis.Redis(connection_pool=pool) rroot = RedisProgressManager(RedisConnection=r) root = ProgressMonitor(DbConnection=rroot, Name="MasterWorkflow") wf_a = ProgressTracker(Name='Workflow A', FriendlyId='WorkflowA') wf_b = ProgressTracker(Name='Workflow B', FriendlyId='WorkflowB') wf_b_1 = ProgressTracker(Name='SubWorkflow B1', FriendlyId='WorkflowB1') wf_b_2 = ProgressTracker(Name='SubWorkflow B2', FriendlyId='WorkflowB2') task_a1 = ProgressTracker(Name='Task A-1', FriendlyId='TaskA1') task_a2 = ProgressTracker(Name='Task A-2', FriendlyId='TaskA2') task_b2_1 = ProgressTracker(Name='Task B2-1', FriendlyId='TaskB21') root.with_tracker(wf_a).with_tracker(wf_b) wf_b.with_tracker(wf_b_1).with_tracker(wf_b_2) wf_a.with_tracker(task_a1).with_tracker(task_a2) wf_b_2.with_tracker(task_b2_1) task_b2_1.start(Parents=True) print "Total items started: {}".format(root.in_progress_count) print "Percentage started: {}".format(root.in_progress_pct) root.update_all() id = root.id root2 = ProgressMonitor(DbConnection=rroot) print "Total items: {}".format(root2.all_children_count) root2 = root.load(id) print "Total items started: {}".format(root2.in_progress_count) print "Percentage started: {}".format(root2.in_progress_pct)
# or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions and limitations under the License. import redis from progressmonitor import RedisProgressManager, ProgressMonitor, \ ProgressTracker pool = redis.ConnectionPool(host='localhost', port=6379, db=0) r = redis.Redis(connection_pool=pool) rpm = RedisProgressManager(RedisConnection=r) pm = ProgressMonitor(DbConnection=rpm, Name="MasterWorkflow") wf_a = ProgressTracker(Name='Workflow A', FriendlyId='WorkflowA') wf_b = ProgressTracker(Name='Workflow B', FriendlyId='WorkflowB') wf_b_1 = ProgressTracker(Name='SubWorkflow B1', FriendlyId='WorkflowB1') wf_b_2 = ProgressTracker(Name='SubWorkflow B2', FriendlyId='WorkflowB2') task_a1 = ProgressTracker(Name='Task A-1', FriendlyId='TaskA1') task_a2 = ProgressTracker(Name='Task A-2', FriendlyId='TaskA2') task_b2_1 = ProgressTracker(Name='Task B2-1', FriendlyId='TaskB21') pm.with_tracker(wf_a).with_tracker(wf_b) wf_b.with_tracker(wf_b_1).with_tracker(wf_b_2) wf_a.with_tracker(task_a1).with_tracker(task_a2) wf_b_2.with_tracker(task_b2_1) task_b2_1.start(Parents=True) print "Total items started: {}".format(pm.in_progress_count) print "Percentage started: {}".format(pm.in_progress_pct) pm.update_all() id = wf_b.id pm2 = ProgressMonitor(DbConnection=rpm) print "Total items: {}".format(pm2.all_children_count) pm2 = pm.load(id) print "Total items started: {}".format(pm2.in_progress_count) print "Percentage started: {}".format(pm2.in_progress_pct)
def test_can_convert_from_db(c_mock, g_mock): g_mock.side_effect = get_by_id_side_effect c_mock.side_effect = children_side_effect pm = ProgressMonitor(DbConnection=RedisProgressManager()) pm = pm.load('94a52a41-bf9e-43e3-9650-859f7c263dc8') assert len(pm.all_children) == 5