def test_read_mixed_object(fd): obj = ScriptDataObject() # Preserves insertion order obj["number"] = 123 obj["string"] = "foobar" obj["bool"] = True assert ScriptDataObject.read(fd) == obj assert fd.tell() == MIXED_VALUES_SIZE
def test_read_booleans_object(fd): assert ScriptDataObject.read(fd) == ScriptDataObject(foo=True) assert fd.tell() == BOOLEAN_VALUE_SIZE
def test_read_strings_object(fd): assert ScriptDataObject.read(fd) == ScriptDataObject(foo="bar") assert fd.tell() == STRING_VALUE_SIZE
def test_read_numbers_object(fd): assert ScriptDataObject.read(fd) == ScriptDataObject(foo=123) assert fd.tell() == NUMBER_VALUE_SIZE
def test_read_empty_object(fd): assert ScriptDataObject.read(fd) == ScriptDataObject() assert fd.tell() == EMPTY_OBJECT_SIZE