/ tests / entities / test_run_inputs.py
test_run_inputs.py
 1  from mlflow.entities import RunInputs
 2  from mlflow.entities.dataset_input import DatasetInput
 3  
 4  
 5  def _check_inputs(run_datasets, datasets):
 6      for d1, d2 in zip(run_datasets, datasets):
 7          assert d1.dataset.digest == d2.dataset.digest
 8          assert d1.dataset.name == d2.dataset.name
 9          assert d1.dataset.source_type == d2.dataset.source_type
10          assert d1.dataset.source == d2.dataset.source
11          for t1, t2 in zip(d1.tags, d2.tags):
12              assert t1.key == t2.key
13              assert t1.value == t2.value
14  
15  
16  def _check(inputs, datasets):
17      assert isinstance(inputs, RunInputs)
18      _check_inputs(inputs.dataset_inputs, datasets)
19  
20  
21  def test_creation_and_hydration(run_inputs):
22      run_inputs, datasets = run_inputs
23      _check(run_inputs, datasets)
24      as_dict = {
25          "dataset_inputs": [
26              {
27                  "dataset": {
28                      "digest": "digest1",
29                      "name": "name1",
30                      "profile": None,
31                      "schema": None,
32                      "source": "source",
33                      "source_type": "my_source_type",
34                  },
35                  "tags": {"key": "value"},
36              }
37          ],
38          "model_inputs": [],
39      }
40      assert run_inputs.to_dictionary() == as_dict
41      proto = run_inputs.to_proto()
42      run_inputs2 = RunInputs.from_proto(proto)
43      _check(run_inputs2, datasets)
44      assert isinstance(run_inputs2.dataset_inputs[0], DatasetInput)