@@ -132,6 +132,43 @@ func TestImageEdit(t *testing.T) {
132
132
}
133
133
}
134
134
135
+ func TestImageEditWithoutMask (t * testing.T ) {
136
+ server := test .NewTestServer ()
137
+ server .RegisterHandler ("/v1/images/edits" , handleEditImageEndpoint )
138
+ // create the test server
139
+ var err error
140
+ ts := server .OpenAITestServer ()
141
+ ts .Start ()
142
+ defer ts .Close ()
143
+
144
+ config := DefaultConfig (test .GetTestToken ())
145
+ config .BaseURL = ts .URL + "/v1"
146
+ client := NewClientWithConfig (config )
147
+ ctx := context .Background ()
148
+
149
+ origin , err := os .Create ("image.png" )
150
+ if err != nil {
151
+ t .Error ("open origin file error" )
152
+ return
153
+ }
154
+
155
+ defer func () {
156
+ origin .Close ()
157
+ os .Remove ("image.png" )
158
+ }()
159
+
160
+ req := ImageEditRequest {
161
+ Image : origin ,
162
+ Prompt : "There is a turtle in the pool" ,
163
+ N : 3 ,
164
+ Size : CreateImageSize1024x1024 ,
165
+ }
166
+ _ , err = client .CreateEditImage (ctx , req )
167
+ if err != nil {
168
+ t .Fatalf ("CreateImage error: %v" , err )
169
+ }
170
+ }
171
+
135
172
// handleEditImageEndpoint Handles the images endpoint by the test server.
136
173
func handleEditImageEndpoint (w http.ResponseWriter , r * http.Request ) {
137
174
var resBytes []byte
@@ -162,3 +199,70 @@ func handleEditImageEndpoint(w http.ResponseWriter, r *http.Request) {
162
199
resBytes , _ = json .Marshal (responses )
163
200
fmt .Fprintln (w , string (resBytes ))
164
201
}
202
+
203
+ func TestImageVariation (t * testing.T ) {
204
+ server := test .NewTestServer ()
205
+ server .RegisterHandler ("/v1/images/variations" , handleVariateImageEndpoint )
206
+ // create the test server
207
+ var err error
208
+ ts := server .OpenAITestServer ()
209
+ ts .Start ()
210
+ defer ts .Close ()
211
+
212
+ config := DefaultConfig (test .GetTestToken ())
213
+ config .BaseURL = ts .URL + "/v1"
214
+ client := NewClientWithConfig (config )
215
+ ctx := context .Background ()
216
+
217
+ origin , err := os .Create ("image.png" )
218
+ if err != nil {
219
+ t .Error ("open origin file error" )
220
+ return
221
+ }
222
+
223
+ defer func () {
224
+ origin .Close ()
225
+ os .Remove ("image.png" )
226
+ }()
227
+
228
+ req := ImageVariRequest {
229
+ Image : origin ,
230
+ N : 3 ,
231
+ Size : CreateImageSize1024x1024 ,
232
+ }
233
+ _ , err = client .CreateVariImage (ctx , req )
234
+ if err != nil {
235
+ t .Fatalf ("CreateImage error: %v" , err )
236
+ }
237
+ }
238
+
239
+ // handleVariateImageEndpoint Handles the images endpoint by the test server.
240
+ func handleVariateImageEndpoint (w http.ResponseWriter , r * http.Request ) {
241
+ var resBytes []byte
242
+
243
+ // imagess only accepts POST requests
244
+ if r .Method != "POST" {
245
+ http .Error (w , "Method not allowed" , http .StatusMethodNotAllowed )
246
+ }
247
+
248
+ responses := ImageResponse {
249
+ Created : time .Now ().Unix (),
250
+ Data : []ImageResponseDataInner {
251
+ {
252
+ URL : "test-url1" ,
253
+ B64JSON : "" ,
254
+ },
255
+ {
256
+ URL : "test-url2" ,
257
+ B64JSON : "" ,
258
+ },
259
+ {
260
+ URL : "test-url3" ,
261
+ B64JSON : "" ,
262
+ },
263
+ },
264
+ }
265
+
266
+ resBytes , _ = json .Marshal (responses )
267
+ fmt .Fprintln (w , string (resBytes ))
268
+ }
0 commit comments