コード例 #1
0
 def test_does_not_resume_a_finished_experiment(self):
     beaker = Mock()
     experiment_id = "foo"
     start_autoresume(self.connection, experiment_id, 5)
     beaker.get_status.return_value = BeakerStatus.succeeded
     resume(self.connection, beaker)
     beaker.get_status.assert_called()
     assert len(beaker.method_calls) == 1
コード例 #2
0
 def test_does_resume_a_preempted_experiment(self):
     beaker = Mock()
     experiment_id = "foo"
     start_autoresume(self.connection, experiment_id, 5)
     beaker.get_status.return_value = BeakerStatus.preempted
     beaker.resume.return_value = "foo2"
     resume(self.connection, beaker)
     beaker.get_status.assert_called()
     beaker.resume.assert_called()
     assert len(beaker.method_calls) == 2
コード例 #3
0
 def test_handles_a_realistic_scenario(self):
     beaker = Mock()
     experiment_id = "foo"
     start_autoresume(self.connection, experiment_id, 5)
     beaker.get_status.return_value = BeakerStatus.preempted
     for i in range(10):
         beaker.resume.return_value = f"foo{i}"
         if i == 2:
             beaker.get_status.return_value = BeakerStatus.succeeded
         resume(self.connection, beaker)
     calls = [
         call.get_status("foo"),
         call.resume("foo"),
         call.get_status("foo0"),
         call.resume("foo0"),
         call.get_status("foo1"),
     ]
     beaker.assert_has_calls(calls)
コード例 #4
0
 def test_respects_upper_bound_on_resumes(self):
     beaker = Mock()
     experiment_id = "foo"
     start_autoresume(self.connection, experiment_id, 5)
     beaker.get_status.return_value = BeakerStatus.preempted
     for i in range(10):
         beaker.resume.return_value = f"foo{i}"
         resume(self.connection, beaker)
     calls = [
         call.get_status("foo"),
         call.resume("foo"),
         call.get_status("foo0"),
         call.resume("foo0"),
         call.get_status("foo1"),
         call.resume("foo1"),
         call.get_status("foo2"),
         call.resume("foo2"),
         call.get_status("foo3"),
         call.resume("foo3"),
         call.get_status("foo4"),
     ]
     beaker.assert_has_calls(calls)
コード例 #5
0
 def test_does_nothing_on_empty_db(self):
     beaker = Mock()
     resume(self.connection, beaker)
     assert not beaker.method_calls