@@ -875,17 +875,38 @@ def test_json_path_attr():
875
875
876
876
def test_json_fs_attr ():
877
877
a = DummyTestFS (1 )
878
- b = DummyTestFS (2 , bar = a )
878
+ b = DummyTestFS (2 , bar = Path ("baz" ))
879
+ c = DummyTestFS (3 , baz = b )
879
880
880
881
outa = a .to_json ()
881
882
outb = b .to_json ()
883
+ outc = c .to_json ()
882
884
883
- assert json .loads (outb ) # is valid JSON
884
- assert a != b
885
- assert "bar" in outb
885
+ assert json .loads (outc ) # is valid JSON
886
+ assert b != c
887
+ assert "baz" in outc
888
+
889
+ assert DummyTestFS .from_json (outa ) is a
890
+ assert DummyTestFS .from_json (outb ) is b
891
+ assert DummyTestFS .from_json (outc ) is c
892
+
893
+
894
+ def test_json_dict_attr ():
895
+ a = DummyTestFS (1 )
896
+ b = DummyTestFS (2 , bar = Path ("baz" ))
897
+ c = DummyTestFS (3 , baz = {"key" : b })
898
+
899
+ outa = a .to_json ()
900
+ outb = b .to_json ()
901
+ outc = c .to_json ()
902
+
903
+ assert json .loads (outc ) # is valid JSON
904
+ assert b != c
905
+ assert "baz" in outc
886
906
887
907
assert DummyTestFS .from_json (outa ) is a
888
908
assert DummyTestFS .from_json (outb ) is b
909
+ assert DummyTestFS .from_json (outc ) is c
889
910
890
911
891
912
def test_dict ():
@@ -903,6 +924,57 @@ def test_dict():
903
924
assert DummyTestFS .from_dict (outb ) is b
904
925
905
926
927
+ def test_dict_path_attr ():
928
+ a = DummyTestFS (1 )
929
+ b = DummyTestFS (2 , bar = Path ("baz" ))
930
+
931
+ outa = a .to_dict ()
932
+ outb = b .to_dict ()
933
+
934
+ assert isinstance (outa , dict )
935
+ assert a != b
936
+ assert outb ["bar" ]["str" ] == "baz"
937
+
938
+ assert DummyTestFS .from_dict (outa ) is a
939
+ assert DummyTestFS .from_dict (outb ) is b
940
+
941
+
942
+ def test_dict_fs_attr ():
943
+ a = DummyTestFS (1 )
944
+ b = DummyTestFS (2 , bar = Path ("baz" ))
945
+ c = DummyTestFS (3 , baz = b )
946
+
947
+ outa = a .to_dict ()
948
+ outb = b .to_dict ()
949
+ outc = c .to_dict ()
950
+
951
+ assert isinstance (outc , dict )
952
+ assert b != c
953
+ assert outc ["baz" ] == outb
954
+
955
+ assert DummyTestFS .from_dict (outa ) is a
956
+ assert DummyTestFS .from_dict (outb ) is b
957
+ assert DummyTestFS .from_dict (outc ) is c
958
+
959
+
960
+ def test_dict_dict_attr ():
961
+ a = DummyTestFS (1 )
962
+ b = DummyTestFS (2 , bar = Path ("baz" ))
963
+ c = DummyTestFS (3 , baz = {"key" : b })
964
+
965
+ outa = a .to_dict ()
966
+ outb = b .to_dict ()
967
+ outc = c .to_dict ()
968
+
969
+ assert isinstance (outc , dict )
970
+ assert b != c
971
+ assert outc ["baz" ]["key" ] == outb
972
+
973
+ assert DummyTestFS .from_dict (outa ) is a
974
+ assert DummyTestFS .from_dict (outb ) is b
975
+ assert DummyTestFS .from_dict (outc ) is c
976
+
977
+
906
978
def test_dict_idempotent ():
907
979
a = DummyTestFS (1 )
908
980
@@ -912,6 +984,20 @@ def test_dict_idempotent():
912
984
assert DummyTestFS .from_dict (outa ) is a
913
985
914
986
987
+ def test_dict_json_serializable ():
988
+ a = DummyTestFS (1 )
989
+ b = DummyTestFS (2 , bar = Path ("baz" ))
990
+ c = DummyTestFS (3 , baz = b )
991
+
992
+ outa = a .to_dict ()
993
+ outb = b .to_dict ()
994
+ outc = c .to_dict ()
995
+
996
+ json .dumps (outa )
997
+ json .dumps (outb )
998
+ json .dumps (outc )
999
+
1000
+
915
1001
def test_serialize_no_password ():
916
1002
fs = DummyTestFS (1 , password = "admin" )
917
1003
0 commit comments