Esempio n. 1
0
    def test_log_batch_internal_error(self):
        # Verify that internal errors during log_batch result in MlflowExceptions
        fs = FileStore(self.test_root)
        run = self._create_run(fs)

        def _raise_exception_fn(*args, **kwargs):  # pylint: disable=unused-argument
            raise Exception("Some internal error")
        with mock.patch(FILESTORE_PACKAGE + ".FileStore.log_metric") as log_metric_mock, \
                mock.patch(FILESTORE_PACKAGE + ".FileStore.log_param") as log_param_mock, \
                mock.patch(FILESTORE_PACKAGE + ".FileStore.set_tag") as set_tag_mock:
            log_metric_mock.side_effect = _raise_exception_fn
            log_param_mock.side_effect = _raise_exception_fn
            set_tag_mock.side_effect = _raise_exception_fn
            for kwargs in [{
                    "metrics": [Metric("a", 3, 1, 0)]
            }, {
                    "params": [Param("b", "c")]
            }, {
                    "tags": [RunTag("c", "d")]
            }]:
                log_batch_kwargs = {"metrics": [], "params": [], "tags": []}
                log_batch_kwargs.update(kwargs)
                print(log_batch_kwargs)
                with self.assertRaises(MlflowException) as e:
                    fs.log_batch(run.info.run_id, **log_batch_kwargs)
                self.assertIn(str(e.exception.message), "Some internal error")
                assert e.exception.error_code == ErrorCode.Name(INTERNAL_ERROR)
Esempio n. 2
0
 def test_log_batch_same_metric_repeated_single_req(self):
     fs = FileStore(self.test_root)
     run = self._create_run(fs)
     metric0 = Metric(key="metric-key", value=1, timestamp=2, step=0)
     metric1 = Metric(key="metric-key", value=2, timestamp=3, step=0)
     fs.log_batch(run.info.run_id, params=[], metrics=[metric0, metric1], tags=[])
     self._verify_logged(fs, run.info.run_id, params=[], metrics=[metric0, metric1], tags=[])
Esempio n. 3
0
 def test_log_batch_params_idempotency(self):
     fs = FileStore(self.test_root)
     run = self._create_run(fs)
     params = [Param("p-key", "p-val")]
     fs.log_batch(run.info.run_id, metrics=[], params=params, tags=[])
     fs.log_batch(run.info.run_id, metrics=[], params=params, tags=[])
     self._verify_logged(fs, run.info.run_id, metrics=[], params=params, tags=[])
Esempio n. 4
0
 def test_log_batch_nonexistent_run(self):
     fs = FileStore(self.test_root)
     nonexistent_uuid = uuid.uuid4().hex
     with self.assertRaises(MlflowException) as e:
         fs.log_batch(nonexistent_uuid, [], [], [])
     assert e.exception.error_code == ErrorCode.Name(RESOURCE_DOES_NOT_EXIST)
     assert ("Run '%s' not found" % nonexistent_uuid) in e.exception.message
Esempio n. 5
0
 def test_log_batch_allows_tag_overwrite(self):
     fs = FileStore(self.test_root)
     run = self._create_run(fs)
     fs.log_batch(run.info.run_id, metrics=[], params=[], tags=[RunTag("t-key", "val")])
     fs.log_batch(run.info.run_id, metrics=[], params=[], tags=[RunTag("t-key", "newval")])
     self._verify_logged(fs, run.info.run_id, metrics=[], params=[],
                         tags=[RunTag("t-key", "newval")])
Esempio n. 6
0
 def test_log_batch_tags_idempotency(self):
     fs = FileStore(self.test_root)
     run = self._create_run(fs)
     fs.log_batch(run.info.run_id, metrics=[], params=[], tags=[RunTag("t-key", "t-val")])
     fs.log_batch(run.info.run_id, metrics=[], params=[], tags=[RunTag("t-key", "t-val")])
     self._verify_logged(fs, run.info.run_id, metrics=[], params=[],
                         tags=[RunTag("t-key", "t-val")])
Esempio n. 7
0
 def test_log_batch_accepts_empty_payload(self):
     fs = FileStore(self.test_root)
     run = self._create_run(fs)
     fs.log_batch(run.info.run_id, metrics=[], params=[], tags=[])
     self._verify_logged(fs,
                         run.info.run_id,
                         metrics=[],
                         params=[],
                         tags=[])
Esempio n. 8
0
 def test_log_batch(self):
     fs = FileStore(self.test_root)
     run = fs.create_run(
         experiment_id=FileStore.DEFAULT_EXPERIMENT_ID, user_id='user', start_time=0, tags=[])
     run_id = run.info.run_id
     metric_entities = [Metric("m1", 0.87, 12345, 0), Metric("m2", 0.49, 12345, 0)]
     param_entities = [Param("p1", "p1val"), Param("p2", "p2val")]
     tag_entities = [RunTag("t1", "t1val"), RunTag("t2", "t2val")]
     fs.log_batch(
         run_id=run_id, metrics=metric_entities, params=param_entities, tags=tag_entities)
     self._verify_logged(fs, run_id, metric_entities, param_entities, tag_entities)