예제 #1
0
def test_transform_value_dict():
    valuespec = vs.Dictionary(
        elements=[
            ("a", vs.TextInput()),
        ]
    )
    assert valuespec.transform_value({"a": "lala"}) == {"a": "lala"}
예제 #2
0
def test_transform_value_in_dict():
    valuespec = vs.Dictionary(elements=[
        ("a",
         vs.Transform(
             vs.TextInput(),
             forth=lambda x: x if x == "lala" else x.upper(),
             back=lambda x: x + "aaa",
         )),
    ])

    assert valuespec.transform_value({"a": "lala"}) == {"a": "lalaaaa"}
    assert valuespec.transform_value({"a": "AAA"}) == {"a": "AAAaaa"}
예제 #3
0
def test_transform_value_and_json():
    # before all keys where upper case, then we decided to move to lower case,
    # but want to keep compatibility with old values saved in the config
    valuespec = vs.Transform(
        vs.Dictionary(elements=[
            ("key1", vs.TextInput()),
        ]),
        forth=lambda x: {k.lower(): v
                         for k, v in x.items()},
    )
    assert valuespec.transform_value({"KEY1": "value1"}) == {"key1": "value1"}

    assert valuespec.value_to_json({"KEY1": "value1"}) == {"key1": "value1"}
    assert valuespec.value_from_json({"key1": "value1"}) == {"key1": "value1"}
예제 #4
0
def test_dictionary_value_to_json_conversion(value, result):
    with on_time("2020-03-02", "UTC"):
        # TODO: Obtain this valuespec directly by importing AlertBarChartDashlet
        #       once it's available and simplify to:
        #       abcd_vs = AlertBarChartDashlet.vs_parameters()
        abcd_vs = vs.Dictionary([
            ("time_range", vs.Timerange(title="Time range")),
            ("time_resolution",
             vs.DropdownChoice(title="Time resolution",
                               choices=[("h", "Show alerts per hour"),
                                        ("d", "Show alerts per day")])),
        ])
        abcd_vs._render = "oneline"
        assert abcd_vs.value_to_text(value) == result
        json_value = abcd_vs.value_to_json(value)
        assert abcd_vs.value_from_json(json_value) == value
예제 #5
0
 def test_transform_value(self) -> None:
     opt_vs = vs.Optional(valuespec=vs.Transform(
         valuespec=vs.Dictionary(elements=[
             ("a", vs.TextInput()),
             ("b", vs.Age()),
         ]),
         forth=lambda p:
         {k: v + 10 if k == "b" else v
          for k, v in p.items()},
     ))
     assert opt_vs.transform_value(None) is None
     assert opt_vs.transform_value({
         "a": "text",
         "b": 10
     }) == {
         "a": "text",
         "b": 20
     }
예제 #6
0
def test_dictionary_value_to_json(elements, value, expected):
    assert vs.Dictionary(elements=elements).value_to_json(value) == expected