@@ -433,22 +433,28 @@ struct GenerateContentIntegrationTests {
433433 modelName: ModelNames.gemini2_5_Flash,
434434 tools: [.urlContext()]
435435 )
436- let prompt = """
437- Write a one paragraph summary of this blog post: \
438- https://developers.googleblog.com/en/introducing-gemma-3-270m/
439- """
436+ let url = "https://developers.googleblog.com/en/introducing-gemma-3-270m/"
437+ let prompt = "Write a one paragraph summary of this blog post: \(url)"
440438
441- let response = try await model.generateContent(prompt)
439+ // TODO(#15385): Remove `withKnownIssue` when the URL Context tool works consistently using the
440+ // Gemini Developer API.
441+ try await withKnownIssue(isIntermittent: true) {
442+ let response = try await model.generateContent(prompt)
442443
443- let candidate = try #require(response.candidates.first)
444- let urlContextMetadata = try #require(candidate.urlContextMetadata)
445- #expect(urlContextMetadata.urlMetadata.count == 1)
446- let urlMetadata = try #require(urlContextMetadata.urlMetadata.first)
447- let retrievedURL = try #require(urlMetadata.retrievedURL)
448- #expect(
449- retrievedURL == URL(string: "https://developers.googleblog.com/en/introducing-gemma-3-270m/")
450- )
451- #expect(urlMetadata.retrievalStatus == .success)
444+ let candidate = try #require(response.candidates.first)
445+ let urlContextMetadata = try #require(candidate.urlContextMetadata)
446+ #expect(urlContextMetadata.urlMetadata.count == 1)
447+ let urlMetadata = try #require(urlContextMetadata.urlMetadata.first)
448+ let retrievedURL = try #require(urlMetadata.retrievedURL)
449+ #expect(retrievedURL == URL(string: url))
450+ #expect(urlMetadata.retrievalStatus == .success)
451+ } when: {
452+ // This issue only impacts the Gemini Developer API (Google AI), Vertex AI is unaffected.
453+ if case .googleAI = config.apiConfig.service {
454+ return true
455+ }
456+ return false
457+ }
452458 }
453459
454460 @Test(arguments: InstanceConfig.allConfigs)
0 commit comments