@@ -672,37 +672,37 @@ async def test_select_fields() -> None:
672
672
673
673
# When SelectFields isn't set
674
674
page = BigPage (response )
675
- assert page .fields_to_extract == ["x" , "y " ]
675
+ assert page .fields_to_ignore == ["z " ]
676
676
assert await page .to_item () == BigItem (x = 1 , y = 2 , z = None )
677
677
assert await item_from_select_fields (page ) == BigItem (x = 1 , y = 2 , z = None )
678
678
assert page .call_counter == {"x" : 2 , "y" : 2 }
679
679
680
680
# If no field selection directive is given but SelectFields is set, it would
681
681
# use the default fields that are not disabled.
682
682
page = BigPage (response , select_fields = SelectFields (None ))
683
- assert page .fields_to_extract == ["x" , "y " ]
683
+ assert page .fields_to_ignore == ["z " ]
684
684
assert await page .to_item () == BigItem (x = 1 , y = 2 , z = None )
685
685
assert await item_from_select_fields (page ) == BigItem (x = 1 , y = 2 , z = None )
686
686
assert page .call_counter == {"x" : 2 , "y" : 2 }
687
687
688
688
# Same case as above but given an empty dict
689
689
page = BigPage (response , select_fields = SelectFields ({}))
690
- assert page .fields_to_extract == ["x" , "y " ]
690
+ assert page .fields_to_ignore == ["z " ]
691
691
assert await page .to_item () == BigItem (x = 1 , y = 2 , z = None )
692
692
assert await item_from_select_fields (page ) == BigItem (x = 1 , y = 2 , z = None )
693
693
assert page .call_counter == {"x" : 2 , "y" : 2 }
694
694
695
695
# Select all fields
696
696
page = BigPage (response , select_fields = SelectFields ({"*" : True }))
697
- assert page .fields_to_extract == ["x" , "y" , "z" ]
697
+ assert page .fields_to_ignore == []
698
698
assert await page .to_item () == BigItem (x = 1 , y = 2 , z = 3 )
699
699
assert await item_from_select_fields (page ) == BigItem (x = 1 , y = 2 , z = 3 )
700
700
assert page .call_counter == {"x" : 2 , "y" : 2 , "z" : 2 }
701
701
702
702
# Don't select all fields; but in this case a TypeError is raised since
703
703
# required fields aren't supplied to the item
704
704
page = BigPage (response , select_fields = SelectFields ({"*" : False }))
705
- assert page .fields_to_extract == []
705
+ assert page .fields_to_ignore == ["x" , "y" , "z" ]
706
706
with pytest .raises (TypeError , match = expected_type_error_msg ):
707
707
await page .to_item ()
708
708
with pytest .raises (TypeError , match = expected_type_error_msg ):
@@ -711,14 +711,14 @@ async def test_select_fields() -> None:
711
711
712
712
# Exclude all but one (which is the required field in the item)
713
713
page = BigPage (response , select_fields = SelectFields ({"*" : False , "x" : True }))
714
- assert page .fields_to_extract == ["x " ]
714
+ assert page .fields_to_ignore == ["y" , "z " ]
715
715
assert await page .to_item () == BigItem (x = 1 , y = None , z = None )
716
716
assert await item_from_select_fields (page ) == BigItem (x = 1 , y = None , z = None )
717
717
assert page .call_counter == {"x" : 2 }
718
718
719
719
# Include all fields but one
720
720
page = BigPage (response , select_fields = SelectFields ({"*" : True , "y" : False }))
721
- assert page .fields_to_extract == ["x" , "z " ]
721
+ assert page .fields_to_ignore == ["y " ]
722
722
assert await page .to_item () == BigItem (x = 1 , y = None , z = 3 )
723
723
assert await item_from_select_fields (page ) == BigItem (x = 1 , y = None , z = 3 )
724
724
assert page .call_counter == {"x" : 2 , "z" : 2 }
@@ -728,14 +728,14 @@ async def test_select_fields() -> None:
728
728
response ,
729
729
select_fields = SelectFields ({"*" : True , "x" : True , "y" : True , "z" : True }),
730
730
)
731
- assert page .fields_to_extract == ["x" , "y" , "z" ]
731
+ assert page .fields_to_ignore == []
732
732
assert await page .to_item () == BigItem (x = 1 , y = 2 , z = 3 )
733
733
assert await item_from_select_fields (page ) == BigItem (x = 1 , y = 2 , z = 3 )
734
734
assert page .call_counter == {"x" : 2 , "y" : 2 , "z" : 2 }
735
735
736
736
# Excluding a required field throws an error
737
737
page = BigPage (response , select_fields = SelectFields ({"x" : False }))
738
- assert page .fields_to_extract == ["y " ]
738
+ assert page .fields_to_ignore == ["x" , "z " ]
739
739
with pytest .raises (TypeError , match = expected_type_error_msg ):
740
740
await page .to_item ()
741
741
with pytest .raises (TypeError , match = expected_type_error_msg ):
@@ -752,7 +752,7 @@ async def test_select_fields() -> None:
752
752
select_fields = SelectFields ({"x" : 0 , "y" : 0 , "z" : 1 }), # type: ignore[dict-item]
753
753
)
754
754
with pytest .raises (ValueError , match = expected_non_boolean_value_error_msg ):
755
- page .fields_to_extract
755
+ page .fields_to_ignore
756
756
with pytest .raises (ValueError , match = expected_non_boolean_value_error_msg ):
757
757
await page .to_item ()
758
758
with pytest .raises (ValueError , match = expected_non_boolean_value_error_msg ):
@@ -769,7 +769,7 @@ async def test_select_fields() -> None:
769
769
select_fields = "not the instance it's expecting" , # type: ignore[arg-type]
770
770
)
771
771
with pytest .raises (ValueError , match = expected_invalid_instance_value_error_msg ):
772
- page .fields_to_extract
772
+ page .fields_to_ignore
773
773
with pytest .raises (ValueError , match = expected_invalid_instance_value_error_msg ):
774
774
await page .to_item ()
775
775
with pytest .raises (ValueError , match = expected_invalid_instance_value_error_msg ):
@@ -785,7 +785,7 @@ async def test_select_fields() -> None:
785
785
)
786
786
page = BigPage (response , select_fields = SelectFields (fields ))
787
787
with pytest .raises (ValueError , match = expected_value_error_msg ):
788
- assert page .fields_to_extract
788
+ page .fields_to_ignore
789
789
with pytest .raises (ValueError , match = expected_value_error_msg ):
790
790
await page .to_item ()
791
791
with pytest .raises (ValueError , match = expected_value_error_msg ):
@@ -804,7 +804,7 @@ async def test_select_fields_but_to_item_only() -> None:
804
804
``.to_item()`` method and doesn't use the ``@field`` decorators at all.
805
805
806
806
For the different scenarios in this test, these are consistent:
807
- - ``.fields_to_extract `` returns an empty list.
807
+ - ``.fields_to_ignore `` returns an empty list.
808
808
- ``.to_item()`` is unaffected by the passed ``SelectFields`` since it
809
809
doesn't take it into account as it simply returns the item instance.
810
810
"""
@@ -817,33 +817,33 @@ async def test_select_fields_but_to_item_only() -> None:
817
817
# When SelectFields isn't set, it should simply extract the non-disabled
818
818
# fields.
819
819
page = BigToItemOnlyPage (response )
820
- assert page .fields_to_extract == []
820
+ assert page .fields_to_ignore == []
821
821
assert await page .to_item () == BigItem (x = 1 , y = 2 , z = None )
822
822
assert await item_from_select_fields (page ) == BigItem (x = 1 , y = 2 , z = None )
823
823
824
824
# If no field selection directive is given but SelectFields is set, it would
825
825
# use the default fields that are not disabled.
826
826
page = BigToItemOnlyPage (response , select_fields = SelectFields (None ))
827
- assert page .fields_to_extract == []
827
+ assert page .fields_to_ignore == []
828
828
assert await page .to_item () == BigItem (x = 1 , y = 2 , z = None )
829
829
assert await item_from_select_fields (page ) == BigItem (x = 1 , y = 2 , z = None )
830
830
831
831
# Same case as above but given an empty dict
832
832
page = BigToItemOnlyPage (response , select_fields = SelectFields ({}))
833
- assert page .fields_to_extract == []
833
+ assert page .fields_to_ignore == []
834
834
assert await page .to_item () == BigItem (x = 1 , y = 2 , z = None )
835
835
assert await item_from_select_fields (page ) == BigItem (x = 1 , y = 2 , z = None )
836
836
837
837
# Select all fields
838
838
page = BigToItemOnlyPage (response , select_fields = SelectFields ({"*" : True }))
839
- assert page .fields_to_extract == []
839
+ assert page .fields_to_ignore == []
840
840
assert await page .to_item () == BigItem (x = 1 , y = 2 , z = None )
841
841
assert await item_from_select_fields (page ) == BigItem (x = 1 , y = 2 , z = None )
842
842
843
843
# Don't select all fields; but in this case a TypeError is raised since
844
844
# required fields aren't supplied to the item
845
845
page = BigToItemOnlyPage (response , select_fields = SelectFields ({"*" : False }))
846
- assert page .fields_to_extract == []
846
+ assert page .fields_to_ignore == []
847
847
assert await page .to_item () == BigItem (x = 1 , y = 2 , z = None )
848
848
with pytest .raises (TypeError , match = expected_type_error_msg ):
849
849
await item_from_select_fields (page )
@@ -852,15 +852,15 @@ async def test_select_fields_but_to_item_only() -> None:
852
852
page = BigToItemOnlyPage (
853
853
response , select_fields = SelectFields ({"*" : False , "x" : True })
854
854
)
855
- assert page .fields_to_extract == []
855
+ assert page .fields_to_ignore == []
856
856
assert await page .to_item () == BigItem (x = 1 , y = 2 , z = None )
857
857
assert await item_from_select_fields (page ) == BigItem (x = 1 , y = None , z = None )
858
858
859
859
# Include all fields but one
860
860
page = BigToItemOnlyPage (
861
861
response , select_fields = SelectFields ({"*" : True , "y" : False })
862
862
)
863
- assert page .fields_to_extract == []
863
+ assert page .fields_to_ignore == []
864
864
assert await page .to_item () == BigItem (x = 1 , y = 2 , z = None )
865
865
assert await item_from_select_fields (page ) == BigItem (x = 1 , y = None , z = None )
866
866
@@ -869,13 +869,13 @@ async def test_select_fields_but_to_item_only() -> None:
869
869
response ,
870
870
select_fields = SelectFields ({"*" : True , "x" : True , "y" : True , "z" : True }),
871
871
)
872
- assert page .fields_to_extract == []
872
+ assert page .fields_to_ignore == []
873
873
assert await page .to_item () == BigItem (x = 1 , y = 2 , z = None )
874
874
assert await item_from_select_fields (page ) == BigItem (x = 1 , y = 2 , z = None )
875
875
876
876
# Excluding a required field throws an error
877
877
page = BigToItemOnlyPage (response , select_fields = SelectFields ({"x" : False }))
878
- assert page .fields_to_extract == []
878
+ assert page .fields_to_ignore == []
879
879
assert await page .to_item () == BigItem (x = 1 , y = 2 , z = None )
880
880
with pytest .raises (TypeError , match = expected_type_error_msg ):
881
881
await item_from_select_fields (page )
@@ -890,7 +890,7 @@ async def test_select_fields_but_to_item_only() -> None:
890
890
select_fields = SelectFields ({"x" : 0 , "y" : 0 , "z" : 1 }), # type: ignore[dict-item]
891
891
)
892
892
with pytest .raises (ValueError , match = expected_non_boolean_value_error_msg ):
893
- page .fields_to_extract
893
+ page .fields_to_ignore
894
894
assert await page .to_item () == BigItem (x = 1 , y = 2 , z = None )
895
895
with pytest .raises (ValueError , match = expected_non_boolean_value_error_msg ):
896
896
await item_from_select_fields (page )
@@ -905,7 +905,7 @@ async def test_select_fields_but_to_item_only() -> None:
905
905
select_fields = "not the instance it's expecting" , # type: ignore[arg-type]
906
906
)
907
907
with pytest .raises (ValueError , match = expected_invalid_instance_value_error_msg ):
908
- page .fields_to_extract
908
+ page .fields_to_ignore
909
909
assert await page .to_item () == BigItem (x = 1 , y = 2 , z = None )
910
910
with pytest .raises (ValueError , match = expected_invalid_instance_value_error_msg ):
911
911
await item_from_select_fields (page )
@@ -919,7 +919,7 @@ async def test_select_fields_but_to_item_only() -> None:
919
919
)
920
920
page = BigToItemOnlyPage (response , select_fields = SelectFields (fields ))
921
921
with pytest .raises (ValueError , match = expected_value_error_msg ):
922
- assert page .fields_to_extract
922
+ page .fields_to_ignore
923
923
assert await page .to_item () == BigItem (x = 1 , y = 2 , z = None )
924
924
with pytest .raises (ValueError , match = expected_value_error_msg ):
925
925
await item_from_select_fields (page )
@@ -950,8 +950,8 @@ async def test_select_fields_but_unreliable() -> None:
950
950
is overridden as well as ``@field`` decorators are partially used.
951
951
952
952
For this test, the ``.to_item()`` method is incorrectly made wherein it's
953
- not properly checking the ``.fields_to_extract `` to determine fields to
954
- populate .
953
+ not properly checking the ``.fields_to_ignore `` to determine fields to
954
+ avoid .
955
955
"""
956
956
# Required fields from the item cls which are not included raise an TypeError
957
957
expected_type_error_msg = (
@@ -961,41 +961,41 @@ async def test_select_fields_but_unreliable() -> None:
961
961
962
962
# When SelectFields isn't set
963
963
page = BigUnreliablePage (response )
964
- assert page .fields_to_extract == ["x " ]
964
+ assert page .fields_to_ignore == ["z " ]
965
965
assert await page .to_item () == BigItem (x = 1 , y = 2 , z = 3 )
966
966
assert page .call_counter == {"x" : 1 , "z" : 1 }
967
- assert await item_from_select_fields (page ) == BigItem (x = 1 , y = None , z = None )
968
- assert page .call_counter == {"x" : 2 , "z" : 1 }
967
+ assert await item_from_select_fields (page ) == BigItem (x = 1 , y = 2 , z = 3 )
968
+ assert page .call_counter == {"x" : 2 , "z" : 2 }
969
969
970
970
# If no field selection directive is given but SelectFields is set, it would
971
971
# use the default fields that are not disabled.
972
972
page = BigUnreliablePage (response , select_fields = SelectFields (None ))
973
- assert page .fields_to_extract == ["x " ]
973
+ assert page .fields_to_ignore == ["z " ]
974
974
assert await page .to_item () == BigItem (x = 1 , y = 2 , z = 3 )
975
975
assert page .call_counter == {"x" : 1 , "z" : 1 }
976
- assert await item_from_select_fields (page ) == BigItem (x = 1 , y = None , z = None )
977
- assert page .call_counter == {"x" : 2 , "z" : 1 }
976
+ assert await item_from_select_fields (page ) == BigItem (x = 1 , y = 2 , z = 3 )
977
+ assert page .call_counter == {"x" : 2 , "z" : 2 }
978
978
979
979
# Same case as above but given an empty dict
980
980
page = BigUnreliablePage (response , select_fields = SelectFields ({}))
981
- assert page .fields_to_extract == ["x " ]
981
+ assert page .fields_to_ignore == ["z " ]
982
982
assert await page .to_item () == BigItem (x = 1 , y = 2 , z = 3 )
983
983
assert page .call_counter == {"x" : 1 , "z" : 1 }
984
- assert await item_from_select_fields (page ) == BigItem (x = 1 , y = None , z = None )
985
- assert page .call_counter == {"x" : 2 , "z" : 1 }
984
+ assert await item_from_select_fields (page ) == BigItem (x = 1 , y = 2 , z = 3 )
985
+ assert page .call_counter == {"x" : 2 , "z" : 2 }
986
986
987
987
# Select all fields
988
988
page = BigUnreliablePage (response , select_fields = SelectFields ({"*" : True }))
989
- assert page .fields_to_extract == ["x" , "z" ]
989
+ assert page .fields_to_ignore == []
990
990
assert await page .to_item () == BigItem (x = 1 , y = 2 , z = 3 )
991
991
assert page .call_counter == {"x" : 1 , "z" : 1 }
992
- assert await item_from_select_fields (page ) == BigItem (x = 1 , y = None , z = 3 )
992
+ assert await item_from_select_fields (page ) == BigItem (x = 1 , y = 2 , z = 3 )
993
993
assert page .call_counter == {"x" : 2 , "z" : 2 }
994
994
995
995
# Don't select all fields; but in this case a TypeError is raised since
996
996
# required fields aren't supplied to the item
997
997
page = BigUnreliablePage (response , select_fields = SelectFields ({"*" : False }))
998
- assert page .fields_to_extract == []
998
+ assert page .fields_to_ignore == ["x" , "z" ]
999
999
assert await page .to_item () == BigItem (x = 1 , y = 2 , z = 3 )
1000
1000
assert page .call_counter == {"x" : 1 , "z" : 1 }
1001
1001
with pytest .raises (TypeError , match = expected_type_error_msg ):
@@ -1006,36 +1006,36 @@ async def test_select_fields_but_unreliable() -> None:
1006
1006
page = BigUnreliablePage (
1007
1007
response , select_fields = SelectFields ({"*" : False , "x" : True })
1008
1008
)
1009
- assert page .fields_to_extract == ["x " ]
1009
+ assert page .fields_to_ignore == ["z " ]
1010
1010
assert await page .to_item () == BigItem (x = 1 , y = 2 , z = 3 )
1011
1011
assert page .call_counter == {"x" : 1 , "z" : 1 }
1012
1012
assert await item_from_select_fields (page ) == BigItem (x = 1 , y = None , z = None )
1013
- assert page .call_counter == {"x" : 2 , "z" : 1 }
1013
+ assert page .call_counter == {"x" : 2 , "z" : 2 }
1014
1014
1015
1015
# Include all fields but one
1016
1016
page = BigUnreliablePage (
1017
1017
response , select_fields = SelectFields ({"*" : True , "z" : False })
1018
1018
)
1019
- assert page .fields_to_extract == ["x " ]
1019
+ assert page .fields_to_ignore == ["z " ]
1020
1020
assert await page .to_item () == BigItem (x = 1 , y = 2 , z = 3 )
1021
1021
assert page .call_counter == {"x" : 1 , "z" : 1 }
1022
- assert await item_from_select_fields (page ) == BigItem (x = 1 , y = None , z = None )
1023
- assert page .call_counter == {"x" : 2 , "z" : 1 }
1022
+ assert await item_from_select_fields (page ) == BigItem (x = 1 , y = 2 , z = None )
1023
+ assert page .call_counter == {"x" : 2 , "z" : 2 }
1024
1024
1025
1025
# overlapping directives on the same field should be okay
1026
1026
page = BigUnreliablePage (
1027
1027
response ,
1028
1028
select_fields = SelectFields ({"*" : True , "x" : True , "y" : True , "z" : True }),
1029
1029
)
1030
- assert page .fields_to_extract == ["x" , "z" ]
1030
+ assert page .fields_to_ignore == []
1031
1031
assert await page .to_item () == BigItem (x = 1 , y = 2 , z = 3 )
1032
1032
assert page .call_counter == {"x" : 1 , "z" : 1 }
1033
- assert await item_from_select_fields (page ) == BigItem (x = 1 , y = None , z = 3 )
1033
+ assert await item_from_select_fields (page ) == BigItem (x = 1 , y = 2 , z = 3 )
1034
1034
assert page .call_counter == {"x" : 2 , "z" : 2 }
1035
1035
1036
1036
# Excluding a required field throws an error
1037
1037
page = BigUnreliablePage (response , select_fields = SelectFields ({"x" : False }))
1038
- assert page .fields_to_extract == []
1038
+ assert page .fields_to_ignore == ["x" , "z" ]
1039
1039
assert await page .to_item () == BigItem (x = 1 , y = 2 , z = 3 )
1040
1040
assert page .call_counter == {"x" : 1 , "z" : 1 }
1041
1041
with pytest .raises (TypeError , match = expected_type_error_msg ):
@@ -1052,7 +1052,7 @@ async def test_select_fields_but_unreliable() -> None:
1052
1052
select_fields = SelectFields ({"x" : 0 , "y" : 0 , "z" : 1 }), # type: ignore[dict-item]
1053
1053
)
1054
1054
with pytest .raises (ValueError , match = expected_non_boolean_value_error_msg ):
1055
- page .fields_to_extract
1055
+ page .fields_to_ignore
1056
1056
assert await page .to_item () == BigItem (x = 1 , y = 2 , z = 3 )
1057
1057
with pytest .raises (ValueError , match = expected_non_boolean_value_error_msg ):
1058
1058
await item_from_select_fields (page )
@@ -1068,7 +1068,7 @@ async def test_select_fields_but_unreliable() -> None:
1068
1068
select_fields = "not the instance it's expecting" , # type: ignore[arg-type]
1069
1069
)
1070
1070
with pytest .raises (ValueError , match = expected_invalid_instance_value_error_msg ):
1071
- page .fields_to_extract
1071
+ page .fields_to_ignore
1072
1072
assert await page .to_item () == BigItem (x = 1 , y = 2 , z = 3 )
1073
1073
with pytest .raises (ValueError , match = expected_invalid_instance_value_error_msg ):
1074
1074
await item_from_select_fields (page )
@@ -1083,7 +1083,7 @@ async def test_select_fields_but_unreliable() -> None:
1083
1083
)
1084
1084
page = BigUnreliablePage (response , select_fields = SelectFields (fields ))
1085
1085
with pytest .raises (ValueError , match = expected_value_error_msg ):
1086
- assert page .fields_to_extract
1086
+ page .fields_to_ignore
1087
1087
assert await page .to_item () == BigItem (x = 1 , y = 2 , z = 3 )
1088
1088
with pytest .raises (ValueError , match = expected_value_error_msg ):
1089
1089
await item_from_select_fields (page )
0 commit comments