def __make_fake_folder(cls, dashboard=None, look=None):
     dashboard_data = json.loads(
         serialize.serialize(dashboard)) if dashboard else None
     look_data = json.loads(serialize.serialize(look)) if look else None
     folder_data = {
         'id': 'test_folder',
         'name': 'Test folder',
         'parent_id': '',
         'dashboards': [dashboard_data] if dashboard_data else None,
         'looks': [look_data] if look_data else None,
     }
     return serialize.deserialize(json.dumps(folder_data), models.Folder)
コード例 #2
0
def test_serialize_partial():
    """Do not send json null for model None field values."""
    model = Model(
        enum1=Enum1.entry1,
        model_no_refs1=ModelNoRefs1(name1="model_no_refs1_name"),
        enum2=Enum2.entry2,
        model_no_refs2=ModelNoRefs2(name2="model_no_refs2_name"),
        list_enum1=[Enum1.entry1],
        list_model_no_refs1=[ModelNoRefs1(name1="model_no_refs1_name")],
    )
    expected = json.dumps({
        "enum1":
        "entry1",
        "model_no_refs1": {
            "name1": "model_no_refs1_name"
        },
        "enum2":
        "entry2",
        "model_no_refs2": {
            "name2": "model_no_refs2_name"
        },
        "list_enum1": ["entry1"],
        "list_model_no_refs1": [{
            "name1": "model_no_refs1_name"
        }],
    }).encode("utf-8")
    assert sr.serialize(api_model=model, converter=converter) == expected
コード例 #3
0
 def __make_fake_look(cls, folder):
     look_data = {
         'id': 123,
         'space': json.loads(serialize.serialize(folder)),
     }
     return serialize.deserialize31(data=json.dumps(look_data),
                                    structure=models.Look)
コード例 #4
0
def test_serialize_explict_null():
    """Send json null for model field EXPLICIT_NULL values.
    """
    # pass EXPLICIT_NULL into constructor
    model = Model(
        enum1=Enum1.entry1,
        model_no_refs1=ModelNoRefs1(name1="model_no_refs1_name"),
        enum2=Enum2.entry2,
        model_no_refs2=ModelNoRefs2(name2="model_no_refs2_name"),
        list_enum1=[Enum1.entry1],
        list_model_no_refs1=[ModelNoRefs1(name1="model_no_refs1_name")],
        name=ml.EXPLICIT_NULL,
        class_=ml.EXPLICIT_NULL,
    )
    # set property to EXPLICIT_NULL
    model.finally_ = ml.EXPLICIT_NULL

    expected = json.dumps(
        {
            "enum1": "entry1",
            "model_no_refs1": {"name1": "model_no_refs1_name"},
            "enum2": "entry2",
            "model_no_refs2": {"name2": "model_no_refs2_name"},
            "list_enum1": ["entry1"],
            "list_model_no_refs1": [{"name1": "model_no_refs1_name"}],
            # json.dumps puts these into the json as null
            "name": None,
            "class": None,
            "finally": None,
        }
    ).encode("utf-8")
    assert sr.serialize(model) == expected
コード例 #5
0
 def __make_fake_dashboard(cls, folder):
     dashboard_data = {
         'id': 'test_dashboard',
         'space': json.loads(serialize.serialize(folder)),
         'dashboard_elements': [],
     }
     return serialize.deserialize31(data=json.dumps(dashboard_data),
                                    structure=models.Dashboard)
コード例 #6
0
 def __make_fake_folder(cls, parent=None):
     parent_data = json.loads(
         serialize.serialize(parent)) if parent else None
     folder_data = {
         'id': 'test_child_folder' if parent else 'test_folder',
         'name': 'Test child folder' if parent else 'Test folder',
         'parent_id': parent_data['id'] if parent_data else '',
         'child_count': 1 if parent else 0,
     }
     return serialize.deserialize(json.dumps(folder_data), models.Folder)
コード例 #7
0
def test_serialize_sequence():
    model = WriteModel(
        id=1,
        name="my-name",
        class_="model-name",
        finally_=[
            WriteChildModel(id=1, import_="child1"),
            WriteChildModel(id=2, import_="child2"),
        ],
    )
    expected = json.dumps([MODEL_DATA, MODEL_DATA]).encode("utf-8")
    assert sr.serialize([model, model]) == expected
コード例 #8
0
def test_serialize_sequence():
    model = Model(
        enum1=Enum1.entry1,
        model_no_refs1=ModelNoRefs1(name1="model_no_refs1_name"),
        enum2=Enum2.entry2,
        model_no_refs2=ModelNoRefs2(name2="model_no_refs2_name"),
        list_enum1=[Enum1.entry1],
        list_model_no_refs1=[ModelNoRefs1(name1="model_no_refs1_name")],
        opt_enum1=Enum1.entry1,
        opt_model_no_refs1=ModelNoRefs1(name1="model_no_refs1_name"),
        id=1,
        name="my-name",
        class_="model-name",
        finally_=[1, 2, 3],
    )
    expected = json.dumps([MODEL_DATA, MODEL_DATA]).encode("utf-8")
    assert sr.serialize([model, model]) == expected
コード例 #9
0
def test_serialize_single():
    model = Model(
        enum1=Enum1.entry1,
        model_no_refs1=ModelNoRefs1(name1="model_no_refs1_name"),
        enum2=Enum2.entry2,
        model_no_refs2=ModelNoRefs2(name2="model_no_refs2_name"),
        list_enum1=[Enum1.entry1],
        list_model_no_refs1=[ModelNoRefs1(name1="model_no_refs1_name")],
        opt_enum1=Enum1.entry1,
        opt_model_no_refs1=ModelNoRefs1(name1="model_no_refs1_name"),
        list_opt_model_no_refs1=[ModelNoRefs1(name1="model_no_refs1_name")],
        id=1,
        name="my-name",
        datetime_field=DATETIME_VALUE,
        class_="model-name",
        finally_=[1, 2, 3],
    )
    expected = json.dumps(MODEL_DATA).encode("utf-8")
    assert sr.serialize(api_model=model, converter=converter) == expected
コード例 #10
0
def test_serialize_explict_null():
    """Send json null for model field EXPLICIT_NULL values.
    """
    model = WriteModel(
        id=1,
        name=ml.EXPLICIT_NULL,
        class_=ml.EXPLICIT_NULL,
        finally_=[
            WriteChildModel(id=1, import_="child1"),
            WriteChildModel(id=2, import_="child2"),
        ],
    )
    model.finally_[0].import_ = ml.EXPLICIT_NULL

    data = copy.deepcopy(MODEL_DATA)
    # json.dumps sets these to null
    data["name"] = None
    data["class"] = None
    data["finally"][0]["import"] = None
    expected = json.dumps(data).encode("utf-8")
    assert sr.serialize(model) == expected
コード例 #11
0
def test_serialize_partial():
    """Do not send json null for model None field values.
    """
    model = WriteModel(id=1, finally_=[WriteChildModel(id=1)])
    expected = json.dumps({"id": 1, "finally": [{"id": 1}]}).encode("utf-8")
    assert sr.serialize(model) == expected