예제 #1
0
def test_model_with_datetime_as_string(db):
    datetime = now().strftime("%Y-%m-%dT%H:%M:%S.%f")[:-3]
    flavor = Flavor(name="name1", datetime=datetime)

    expected = {
        "flavor": {
            "name": "name1",
            "label": "",
            "parent": None,
            "float_value": None,
            "decimal_value": None,
            "uuid": str(flavor.uuid),
            "date": None,
            "datetime": datetime,
            "time": None,
            "duration": None,
            "pk": None,
        }
    }

    actual = serializer.dumps({"flavor": flavor})
    assert dicts_equal(expected, json.loads(actual))
예제 #2
0
def test_model_with_duration_as_string(db):
    duration = "-1 day, 19:00:00"
    flavor = Flavor(name="name1", duration=duration)

    expected = {
        "flavor": {
            "name": "name1",
            "label": "",
            "parent": None,
            "float_value": None,
            "decimal_value": None,
            "uuid": str(flavor.uuid),
            "date": None,
            "datetime": None,
            "time": None,
            "duration": "-1 19:00:00",
            "pk": None,
        }
    }

    actual = serializer.dumps({"flavor": flavor})
    assert dicts_equal(expected, json.loads(actual))
예제 #3
0
def test_message_db_input_create(client):
    data = {"flavors": []}

    message = {
        "actionQueue": [
            {
                "payload": {
                    "model": "flavors",
                    "db": {
                        "pk": "",
                        "name": "flavor"
                    },
                    "fields": {
                        "name": "Sugar Browning-Nutty"
                    },
                },
                "type": "dbInput",
            },
            {
                "type": "callMethod",
                "payload": {
                    "name": "$refresh",
                    "params": []
                }
            },
        ],
        "data":
        data,
        "checksum":
        generate_checksum(orjson.dumps(data)),
        "id":
        shortuuid.uuid()[:8],
        "epoch":
        time.time(),
    }

    assert Flavor.objects.all().count() == 0

    response = client.post(
        "/message/tests.views.fake_components.FakeModelComponent",
        message,
        content_type="application/json",
    )

    flavor = Flavor.objects.get(id=1)
    assert flavor.name == "Sugar Browning-Nutty"

    body = orjson.loads(response.content)

    expected = {
        "flavors": [{
            "name": "Sugar Browning-Nutty",
            "label": "",
            "parent": None,
            "float_value": None,
            "decimal_value": None,
            "uuid": str(flavor.uuid),
            "datetime": None,
            "date": None,
            "time": None,
            "duration": None,
            "pk": 1,
        }]
    }

    assert not body["errors"]
    assert dicts_equal(expected, body["data"])
예제 #4
0
def test_message_db_input_update(client):
    flavor = Flavor(id=1, name="Enzymatic-Flowery")
    flavor.save()
    data = {"flavors": [{"pk": flavor.pk, "title": flavor.name}]}

    message = {
        "actionQueue": [
            {
                "payload": {
                    "model": "flavors",
                    "db": {
                        "pk": flavor.pk,
                        "name": "flavor"
                    },
                    "fields": {
                        "name": "Flowery-Floral"
                    },
                },
                "type": "dbInput",
            },
            {
                "type": "callMethod",
                "payload": {
                    "name": "$refresh",
                    "params": []
                }
            },
        ],
        "data":
        data,
        "checksum":
        generate_checksum(orjson.dumps(data)),
        "id":
        shortuuid.uuid()[:8],
        "epoch":
        time.time(),
    }

    response = client.post(
        "/message/tests.views.fake_components.FakeModelComponent",
        message,
        content_type="application/json",
    )

    flavor = Flavor.objects.get(id=1)
    assert flavor.name == "Flowery-Floral"

    body = orjson.loads(response.content)

    assert not body["errors"]
    expected = {
        "flavors": [{
            "pk": 1,
            "name": "Flowery-Floral",
            "decimal_value": None,
            "float_value": None,
            "label": "",
            "parent": None,
            "uuid": str(flavor.uuid),
            "datetime": None,
            "date": None,
            "time": None,
            "duration": None,
        }]
    }

    assert dicts_equal(expected, body["data"])