@@ -62,134 +62,6 @@ async def test_create_simple_object_with_ok_return(db: InfrahubDatabase, default
62
62
assert result .data ["TestPersonCreate" ]["ok" ] is True
63
63
64
64
65
- @pytest .mark .parametrize (
66
- "graphql_enums_on,enum_value,response_value" , [(True , "MANUAL" , "MANUAL" ), (False , '"manual"' , "manual" )]
67
- )
68
- async def test_create_simple_object_with_enum (
69
- db : InfrahubDatabase ,
70
- default_branch ,
71
- person_john_main ,
72
- car_person_schema ,
73
- graphql_enums_on ,
74
- enum_value ,
75
- response_value ,
76
- ):
77
- config .SETTINGS .experimental_features .graphql_enums = graphql_enums_on
78
- query = """
79
- mutation {
80
- TestCarCreate(data: {
81
- name: { value: "JetTricycle"},
82
- nbr_seats: { value: 1 },
83
- is_electric: { value: false },
84
- transmission: { value: %s },
85
- owner: { id: "John" }
86
- }) {
87
- ok
88
- object {
89
- id
90
- transmission {
91
- value
92
- }
93
- }
94
- }
95
- }
96
- """ % (enum_value )
97
- gql_params = prepare_graphql_params (db = db , include_subscription = False , branch = default_branch )
98
- result = await graphql (
99
- schema = gql_params .schema ,
100
- source = query ,
101
- context_value = gql_params .context ,
102
- root_value = None ,
103
- variable_values = {},
104
- )
105
-
106
- assert result .errors is None
107
- assert result .data ["TestCarCreate" ]["ok" ] is True
108
- assert result .data ["TestCarCreate" ]["object" ]["transmission" ]["value" ] == response_value
109
-
110
- car_id = result .data ["TestCarCreate" ]["object" ]["id" ]
111
- database_car = await NodeManager .get_one (db = db , id = car_id )
112
- assert database_car .transmission .value .value == "manual"
113
-
114
-
115
- async def test_create_enum_when_enums_off_fails (
116
- db : InfrahubDatabase ,
117
- default_branch ,
118
- person_john_main ,
119
- car_person_schema ,
120
- ):
121
- config .SETTINGS .experimental_features .graphql_enums = False
122
- query = """
123
- mutation {
124
- TestCarCreate(data: {
125
- name: { value: "JetTricycle"},
126
- nbr_seats: { value: 1 },
127
- is_electric: { value: false },
128
- transmission: { value: MANUAL },
129
- owner: { id: "John" }
130
- }) {
131
- ok
132
- object {
133
- id
134
- transmission {
135
- value
136
- }
137
- }
138
- }
139
- }
140
- """
141
- gql_params = prepare_graphql_params (db = db , include_subscription = False , branch = default_branch )
142
- result = await graphql (
143
- schema = gql_params .schema ,
144
- source = query ,
145
- context_value = gql_params .context ,
146
- root_value = None ,
147
- variable_values = {},
148
- )
149
-
150
- assert len (result .errors ) == 1
151
- assert "String cannot represent a non string value" in result .errors [0 ].message
152
-
153
-
154
- async def test_create_string_when_enums_on_fails (
155
- db : InfrahubDatabase ,
156
- default_branch ,
157
- person_john_main ,
158
- car_person_schema ,
159
- ):
160
- config .SETTINGS .experimental_features .graphql_enums = True
161
- query = """
162
- mutation {
163
- TestCarCreate(data: {
164
- name: { value: "JetTricycle"},
165
- nbr_seats: { value: 1 },
166
- is_electric: { value: false },
167
- transmission: { value: "manual" },
168
- owner: { id: "John" }
169
- }) {
170
- ok
171
- object {
172
- id
173
- transmission {
174
- value
175
- }
176
- }
177
- }
178
- }
179
- """
180
- gql_params = prepare_graphql_params (db = db , include_subscription = False , branch = default_branch )
181
- result = await graphql (
182
- schema = gql_params .schema ,
183
- source = query ,
184
- context_value = gql_params .context ,
185
- root_value = None ,
186
- variable_values = {},
187
- )
188
-
189
- assert len (result .errors ) == 1
190
- assert "'TestCarTransmissionValue' cannot represent non-enum value" in result .errors [0 ].message
191
-
192
-
193
65
async def test_create_with_id (db : InfrahubDatabase , default_branch , car_person_schema ):
194
66
uuid1 = "79c83773-6b23-4537-a3ce-b214b625ff1d"
195
67
query = (
@@ -1141,3 +1013,134 @@ async def test_create_valid_datetime_failure(db: InfrahubDatabase, default_branc
1141
1013
)
1142
1014
assert result .errors [0 ].args [0 ] == "10:1010 is not a valid DateTime at time"
1143
1015
assert result .data ["TestCriticalityCreate" ] is None
1016
+
1017
+
1018
+ # These tests have been moved at the end of the file to avoid colliding with other and breaking them
1019
+
1020
+
1021
+ @pytest .mark .parametrize (
1022
+ "graphql_enums_on,enum_value,response_value" , [(True , "MANUAL" , "MANUAL" ), (False , '"manual"' , "manual" )]
1023
+ )
1024
+ async def test_create_simple_object_with_enum (
1025
+ db : InfrahubDatabase ,
1026
+ default_branch ,
1027
+ person_john_main ,
1028
+ car_person_schema ,
1029
+ graphql_enums_on ,
1030
+ enum_value ,
1031
+ response_value ,
1032
+ ):
1033
+ config .SETTINGS .experimental_features .graphql_enums = graphql_enums_on
1034
+ query = """
1035
+ mutation {
1036
+ TestCarCreate(data: {
1037
+ name: { value: "JetTricycle"},
1038
+ nbr_seats: { value: 1 },
1039
+ is_electric: { value: false },
1040
+ transmission: { value: %s },
1041
+ owner: { id: "John" }
1042
+ }) {
1043
+ ok
1044
+ object {
1045
+ id
1046
+ transmission {
1047
+ value
1048
+ }
1049
+ }
1050
+ }
1051
+ }
1052
+ """ % (enum_value )
1053
+ gql_params = prepare_graphql_params (db = db , include_subscription = False , branch = default_branch )
1054
+ result = await graphql (
1055
+ schema = gql_params .schema ,
1056
+ source = query ,
1057
+ context_value = gql_params .context ,
1058
+ root_value = None ,
1059
+ variable_values = {},
1060
+ )
1061
+
1062
+ assert result .errors is None
1063
+ assert result .data ["TestCarCreate" ]["ok" ] is True
1064
+ assert result .data ["TestCarCreate" ]["object" ]["transmission" ]["value" ] == response_value
1065
+
1066
+ car_id = result .data ["TestCarCreate" ]["object" ]["id" ]
1067
+ database_car = await NodeManager .get_one (db = db , id = car_id )
1068
+ assert database_car .transmission .value .value == "manual"
1069
+
1070
+
1071
+ async def test_create_enum_when_enums_off_fails (
1072
+ db : InfrahubDatabase ,
1073
+ default_branch ,
1074
+ person_john_main ,
1075
+ car_person_schema ,
1076
+ ):
1077
+ config .SETTINGS .experimental_features .graphql_enums = False
1078
+ query = """
1079
+ mutation {
1080
+ TestCarCreate(data: {
1081
+ name: { value: "JetTricycle"},
1082
+ nbr_seats: { value: 1 },
1083
+ is_electric: { value: false },
1084
+ transmission: { value: MANUAL },
1085
+ owner: { id: "John" }
1086
+ }) {
1087
+ ok
1088
+ object {
1089
+ id
1090
+ transmission {
1091
+ value
1092
+ }
1093
+ }
1094
+ }
1095
+ }
1096
+ """
1097
+ gql_params = prepare_graphql_params (db = db , include_subscription = False , branch = default_branch )
1098
+ result = await graphql (
1099
+ schema = gql_params .schema ,
1100
+ source = query ,
1101
+ context_value = gql_params .context ,
1102
+ root_value = None ,
1103
+ variable_values = {},
1104
+ )
1105
+
1106
+ assert len (result .errors ) == 1
1107
+ assert "String cannot represent a non string value" in result .errors [0 ].message
1108
+
1109
+
1110
+ async def test_create_string_when_enums_on_fails (
1111
+ db : InfrahubDatabase ,
1112
+ default_branch ,
1113
+ person_john_main ,
1114
+ car_person_schema ,
1115
+ ):
1116
+ config .SETTINGS .experimental_features .graphql_enums = True
1117
+ query = """
1118
+ mutation {
1119
+ TestCarCreate(data: {
1120
+ name: { value: "JetTricycle"},
1121
+ nbr_seats: { value: 1 },
1122
+ is_electric: { value: false },
1123
+ transmission: { value: "manual" },
1124
+ owner: { id: "John" }
1125
+ }) {
1126
+ ok
1127
+ object {
1128
+ id
1129
+ transmission {
1130
+ value
1131
+ }
1132
+ }
1133
+ }
1134
+ }
1135
+ """
1136
+ gql_params = prepare_graphql_params (db = db , include_subscription = False , branch = default_branch )
1137
+ result = await graphql (
1138
+ schema = gql_params .schema ,
1139
+ source = query ,
1140
+ context_value = gql_params .context ,
1141
+ root_value = None ,
1142
+ variable_values = {},
1143
+ )
1144
+
1145
+ assert len (result .errors ) == 1
1146
+ assert "'TestCarTransmissionValue' cannot represent non-enum value" in result .errors [0 ].message
0 commit comments