From 09c0893a8878de6361ba4fd17c02ad5123206f63 Mon Sep 17 00:00:00 2001 From: osulzhenko Date: Wed, 11 Jun 2025 13:33:59 +0300 Subject: [PATCH 1/3] Fix flaky tests --- .../testcontainers/scaffolding/Bidder.groovy | 12 +++++------- .../server/functional/tests/TargetingSpec.groovy | 16 +++++++++++----- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/src/test/groovy/org/prebid/server/functional/testcontainers/scaffolding/Bidder.groovy b/src/test/groovy/org/prebid/server/functional/testcontainers/scaffolding/Bidder.groovy index ff0b9f3b4f7..fd89add53eb 100644 --- a/src/test/groovy/org/prebid/server/functional/testcontainers/scaffolding/Bidder.groovy +++ b/src/test/groovy/org/prebid/server/functional/testcontainers/scaffolding/Bidder.groovy @@ -19,25 +19,23 @@ import static org.mockserver.model.JsonPathBody.jsonPath class Bidder extends NetworkScaffolding { - private static final String AUCTION_ENDPOINT = "/auction" - - Bidder(MockServerContainer mockServerContainer) { - super(mockServerContainer, AUCTION_ENDPOINT) + Bidder(MockServerContainer mockServerContainer, String endpoint = "/auction") { + super(mockServerContainer, endpoint) } @Override protected HttpRequest getRequest(String bidRequestId) { - request().withPath(AUCTION_ENDPOINT) + request().withPath(endpoint) .withBody(jsonPath("\$[?(@.id == '$bidRequestId')]")) } @Override protected HttpRequest getRequest() { - request().withPath(AUCTION_ENDPOINT) + request().withPath(endpoint) } HttpRequest getRequest(String bidRequestId, String requestMatchPath) { - request().withPath(AUCTION_ENDPOINT) + request().withPath(endpoint) .withBody(jsonPath("\$[?(@.$requestMatchPath == '$bidRequestId')]")) } diff --git a/src/test/groovy/org/prebid/server/functional/tests/TargetingSpec.groovy b/src/test/groovy/org/prebid/server/functional/tests/TargetingSpec.groovy index 081c578ecfa..347b7122ae4 100644 --- a/src/test/groovy/org/prebid/server/functional/tests/TargetingSpec.groovy +++ b/src/test/groovy/org/prebid/server/functional/tests/TargetingSpec.groovy @@ -34,6 +34,7 @@ import org.prebid.server.functional.model.response.auction.Prebid import org.prebid.server.functional.model.response.auction.SeatBid import org.prebid.server.functional.service.PrebidServerException import org.prebid.server.functional.service.PrebidServerService +import org.prebid.server.functional.testcontainers.scaffolding.Bidder import org.prebid.server.functional.util.PBSUtils import java.math.RoundingMode @@ -1613,9 +1614,11 @@ class TargetingSpec extends BaseSpec { def "PBS should assign bid ranks across all seatbids combined when the request contains imps with multiple bidders"() { given: "PBS config with openX bidder" + def endpoint = '/openx-auction' def pbsConfig = ["adapters.openx.enabled" : "true", - "adapters.openx.endpoint": "$networkServiceContainer.rootUri/auction".toString()] + "adapters.openx.endpoint": "$networkServiceContainer.rootUri$endpoint".toString()] def prebidServerService = pbsServiceFactory.getService(pbsConfig) + def openxBidder = new Bidder(networkServiceContainer, endpoint) and: "Bid request with multiple bidders" def bidRequest = BidRequest.getDefaultBidRequest().tap { @@ -1640,12 +1643,15 @@ class TargetingSpec extends BaseSpec { it.dealid = PBSUtils.randomNumber it.price = bidPrice } - def bidResponse = BidResponse.getDefaultBidResponse(bidRequest).tap { - it.seatbid = [new SeatBid(bid: [genericBid], seat: GENERIC), - new SeatBid(bid: [openxBid], seat: OPENX)] + def bidResponseGeneric = BidResponse.getDefaultBidResponse(bidRequest).tap { + it.seatbid = [new SeatBid(bid: [genericBid], seat: GENERIC)] + } + def bidResponseOpenx = BidResponse.getDefaultBidResponse(bidRequest).tap { + it.seatbid = [new SeatBid(bid: [openxBid], seat: OPENX)] } and: "Set bidder response" - bidder.setResponse(bidRequest.id, bidResponse) + bidder.setResponse(bidRequest.id, bidResponseGeneric) + openxBidder.setResponse(bidRequest.id, bidResponseOpenx) when: "PBS processes auction request" def response = prebidServerService.sendAuctionRequest(bidRequest) From ed8ea7a4747717b844a59591a1a371c18eefe1d2 Mon Sep 17 00:00:00 2001 From: osulzhenko Date: Wed, 11 Jun 2025 13:43:39 +0300 Subject: [PATCH 2/3] Fix flaky tests --- .../org/prebid/server/functional/tests/TargetingSpec.groovy | 1 + 1 file changed, 1 insertion(+) diff --git a/src/test/groovy/org/prebid/server/functional/tests/TargetingSpec.groovy b/src/test/groovy/org/prebid/server/functional/tests/TargetingSpec.groovy index 347b7122ae4..d27bc6cc58a 100644 --- a/src/test/groovy/org/prebid/server/functional/tests/TargetingSpec.groovy +++ b/src/test/groovy/org/prebid/server/functional/tests/TargetingSpec.groovy @@ -1662,6 +1662,7 @@ class TargetingSpec extends BaseSpec { cleanup: "Stop and remove pbs container" pbsServiceFactory.removeContainer(pbsConfig) + openxBidder.reset() } def "PBS should assign bid ranks for each imp separately when request has multiple imps and multiBid is configured"() { From 6478bacd4208fe0c4e6610627582aa8a54b279ae Mon Sep 17 00:00:00 2001 From: osulzhenko Date: Wed, 11 Jun 2025 13:49:15 +0300 Subject: [PATCH 3/3] Fix flaky tests --- .../org/prebid/server/functional/tests/TargetingSpec.groovy | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/groovy/org/prebid/server/functional/tests/TargetingSpec.groovy b/src/test/groovy/org/prebid/server/functional/tests/TargetingSpec.groovy index d27bc6cc58a..960e05b458e 100644 --- a/src/test/groovy/org/prebid/server/functional/tests/TargetingSpec.groovy +++ b/src/test/groovy/org/prebid/server/functional/tests/TargetingSpec.groovy @@ -1660,7 +1660,7 @@ class TargetingSpec extends BaseSpec { assert response.seatbid.findAll { it.seat == OPENX }.bid.ext.prebid.rank.flatten() == [MAIN_RANK] assert response.seatbid.findAll { it.seat == GENERIC }.bid.ext.prebid.rank.flatten() == [SUBORDINATE_RANK] - cleanup: "Stop and remove pbs container" + cleanup: "Stop and remove pbs container and bidder response" pbsServiceFactory.removeContainer(pbsConfig) openxBidder.reset() }