Skip to content

Commit abed5be

Browse files
Add unit tests
1 parent bf4d90d commit abed5be

1 file changed

Lines changed: 12 additions & 4 deletions

File tree

test/unit/objects/serializable_test.py

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
from dataclasses import dataclass
22
from test.unit.base import ClientBaseCase
3-
from typing import Optional
3+
from typing import Optional, Union
44

5-
from linode_api4 import Base, JSONObject, Property
5+
from linode_api4 import Base, ExplicitNullValue, JSONObject, Property
66

77

88
class JSONObjectTest(ClientBaseCase):
@@ -14,18 +14,21 @@ class Foo(JSONObject):
1414
foo: Optional[str] = None
1515
bar: Optional[str] = None
1616
baz: str = None
17+
foobar: Union[str, ExplicitNullValue, None] = None
1718

1819
foo = Foo().dict
1920

2021
assert foo["foo"] is None
2122
assert "bar" not in foo
2223
assert foo["baz"] is None
24+
assert "foobar" not in foo
2325

24-
foo = Foo(foo="test", bar="test2", baz="test3").dict
26+
foo = Foo(foo="test", bar="test2", baz="test3", foobar="test4").dict
2527

2628
assert foo["foo"] == "test"
2729
assert foo["bar"] == "test2"
2830
assert foo["baz"] == "test3"
31+
assert foo["foobar"] == "test4"
2932

3033
def test_serialize_optional_include_None(self):
3134
@dataclass
@@ -35,18 +38,23 @@ class Foo(JSONObject):
3538
foo: Optional[str] = None
3639
bar: Optional[str] = None
3740
baz: str = None
41+
foobar: Union[str, ExplicitNullValue, None] = None
3842

3943
foo = Foo().dict
4044

4145
assert foo["foo"] is None
4246
assert foo["bar"] is None
4347
assert foo["baz"] is None
48+
assert foo["foobar"] is None
4449

45-
foo = Foo(foo="test", bar="test2", baz="test3").dict
50+
foo = Foo(
51+
foo="test", bar="test2", baz="test3", foobar=ExplicitNullValue()
52+
).dict
4653

4754
assert foo["foo"] == "test"
4855
assert foo["bar"] == "test2"
4956
assert foo["baz"] == "test3"
57+
assert foo["foobar"] is None
5058

5159
def test_serialize_put_class(self):
5260
"""

0 commit comments

Comments
 (0)