Skip to content

Commit db807f2

Browse files
committed
Merge dev branch into flexpack - resolve conflicts in go.mod and go.sum
2 parents 568ffe5 + 82e48f4 commit db807f2

14 files changed

Lines changed: 331 additions & 113 deletions

File tree

Jenkinsfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ node("docker-ubuntu20-xlarge") {
3131
repo = 'jfrog-cli'
3232
sh 'rm -rf temp'
3333
sh 'mkdir temp'
34-
def goRoot = tool 'go-1.24.5'
34+
def goRoot = tool 'go-1.24.6'
3535
env.GOROOT="$goRoot"
3636
env.PATH+=":${goRoot}/bin:/tmp/node-${nodeVersion}-linux-x64/bin"
3737
env.GO111MODULE="on"

build/docker/slim/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
ARG repo_name_21
22
# Remove ${repo_name_21} to pull from Docker Hub.
3-
FROM ${repo_name_21}/jfrog-docker/golang:1.24.5-alpine as builder
3+
FROM ${repo_name_21}/jfrog-docker/golang:1.24.6-alpine as builder
44
ARG image_name=jfrog-cli
55
ARG cli_executable_name
66
WORKDIR /${image_name}

build/npm/v2-jf/package-lock.json

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

build/npm/v2-jf/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "jfrog-cli-v2-jf",
3-
"version": "2.78.3",
3+
"version": "2.78.8",
44
"description": "🐸 Command-line interface for JFrog Artifactory, Xray, Distribution, Pipelines and Mission Control 🐸",
55
"homepage": "https://github.com/jfrog/jfrog-cli",
66
"preferGlobal": true,

build/npm/v2/package-lock.json

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

build/npm/v2/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "jfrog-cli-v2",
3-
"version": "2.78.3",
3+
"version": "2.78.8",
44
"description": "🐸 Command-line interface for JFrog Artifactory, Xray, Distribution, Pipelines and Mission Control 🐸",
55
"homepage": "https://github.com/jfrog/jfrog-cli",
66
"preferGlobal": true,

go.mod

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@ require (
1818
github.com/jfrog/archiver/v3 v3.6.1
1919
github.com/jfrog/build-info-go v1.10.16
2020
github.com/jfrog/gofrog v1.7.6
21-
github.com/jfrog/jfrog-cli-artifactory v0.6.0
22-
github.com/jfrog/jfrog-cli-core/v2 v2.59.5
21+
github.com/jfrog/jfrog-cli-artifactory v0.7.0
22+
github.com/jfrog/jfrog-cli-core/v2 v2.59.6
2323
github.com/jfrog/jfrog-cli-platform-services v1.10.0
24-
github.com/jfrog/jfrog-cli-security v1.21.0
25-
github.com/jfrog/jfrog-client-go v1.54.5
24+
github.com/jfrog/jfrog-cli-security v1.21.5
25+
github.com/jfrog/jfrog-client-go v1.54.6
2626
github.com/jszwec/csvutil v1.10.0
2727
github.com/manifoldco/promptui v0.9.0
28-
github.com/stretchr/testify v1.10.0
28+
github.com/stretchr/testify v1.11.0
2929
github.com/testcontainers/testcontainers-go v0.35.0
3030
github.com/urfave/cli v1.22.16
3131
github.com/xeipuuv/gojsonschema v1.2.0
@@ -154,7 +154,7 @@ require (
154154
github.com/opencontainers/go-digest v1.0.0 // indirect
155155
github.com/opencontainers/image-spec v1.1.0 // indirect
156156
github.com/opentracing/opentracing-go v1.2.0 // indirect
157-
github.com/owenrumney/go-sarif/v3 v3.1.4 // indirect
157+
github.com/owenrumney/go-sarif/v3 v3.2.3 // indirect
158158
github.com/package-url/packageurl-go v0.1.3 // indirect
159159
github.com/pelletier/go-toml/v2 v2.2.3 // indirect
160160
github.com/pierrec/lz4/v4 v4.1.22 // indirect
@@ -196,7 +196,7 @@ require (
196196
github.com/tklauser/go-sysconf v0.3.12 // indirect
197197
github.com/tklauser/numcpus v0.6.1 // indirect
198198
github.com/transparency-dev/merkle v0.0.2 // indirect
199-
github.com/ulikunitz/xz v0.5.12 // indirect
199+
github.com/ulikunitz/xz v0.5.15 // indirect
200200
github.com/vbauerster/mpb/v8 v8.9.1 // indirect
201201
github.com/virtuald/go-ordered-json v0.0.0-20170621173500-b18e6e673d74 // indirect
202202
github.com/xanzy/go-gitlab v0.110.0 // indirect
@@ -242,12 +242,12 @@ require (
242242
sigs.k8s.io/yaml v1.4.0 // indirect
243243
)
244244

245-
replace github.com/jfrog/build-info-go => github.com/jfrog/build-info-go v1.8.9-0.20250828103621-f970c3fb7703
245+
replace github.com/jfrog/build-info-go => github.com/jfrog/build-info-go v1.8.9-0.20250903071942-6b27bc9a3c7d
246246

247-
replace github.com/jfrog/jfrog-cli-artifactory => github.com/agrasth/jfrog-cli-artifactory v0.2.2-0.20250828103916-96825373a544
247+
replace github.com/jfrog/jfrog-cli-artifactory => github.com/agrasth/jfrog-cli-artifactory v0.2.2-0.20250903090108-90c01eea7a44
248248

249249
// replace github.com/jfrog/jfrog-cli-core/v2 => github.com/jfrog/jfrog-cli-core/v2 v2.59.2-0.20250804083101-9cf424ecc926
250250

251-
replace github.com/jfrog/jfrog-client-go => github.com/jfrog/jfrog-client-go v1.28.1-0.20250812100044-b52afcc698c1
251+
// replace github.com/jfrog/jfrog-client-go => github.com/jfrog/jfrog-client-go v1.28.1-0.20250812100044-b52afcc698c1
252252

253253
//replace github.com/jfrog/jfrog-cli-security => github.com/jfrog/jfrog-cli-security v1.17.2-0.20250511132918-d9cc4cd50020

go.sum

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,8 @@ github.com/acarl005/stripansi v0.0.0-20180116102854-5a71ef0e047d h1:licZJFw2RwpH
5151
github.com/acarl005/stripansi v0.0.0-20180116102854-5a71ef0e047d/go.mod h1:asat636LX7Bqt5lYEZ27JNDcqxfjdBQuJ/MM4CN/Lzo=
5252
github.com/agnivade/levenshtein v1.2.1 h1:EHBY3UOn1gwdy/VbFwgo4cxecRznFk7fKWN1KOX7eoM=
5353
github.com/agnivade/levenshtein v1.2.1/go.mod h1:QVVI16kDrtSuwcpd0p1+xMC6Z/VfhtCyDIjcwga4/DU=
54-
github.com/agrasth/jfrog-cli-artifactory v0.2.2-0.20250828103916-96825373a544 h1:ReLSOv5xufffN0SLtTzWwip4NAOPGxPl40eybZzP0uQ=
55-
github.com/agrasth/jfrog-cli-artifactory v0.2.2-0.20250828103916-96825373a544/go.mod h1:aXeMF1+Wvy9+gySdaxl2gjIBWFjWPfoxzl76Ij64c3c=
54+
github.com/agrasth/jfrog-cli-artifactory v0.2.2-0.20250903090108-90c01eea7a44 h1:ga7Phk7WDicxgO/UNsistdS1AvJP8R4r+5dcBthRjEg=
55+
github.com/agrasth/jfrog-cli-artifactory v0.2.2-0.20250903090108-90c01eea7a44/go.mod h1:bxpkRK5FYXqZvPZA5wsCWLxJAR6HjPIL8b2kBcJIK6o=
5656
github.com/alessio/shellescape v1.4.1 h1:V7yhSDDn8LP4lc4jS8pFkt0zCnzVJlG5JXy9BVKJUX0=
5757
github.com/alessio/shellescape v1.4.1/go.mod h1:PZAiSCk0LJaZkiCSkPv8qIobYglO3FPpyFjDCtHLS30=
5858
github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7XdTA=
@@ -351,8 +351,8 @@ github.com/jellydator/ttlcache/v3 v3.3.0 h1:BdoC9cE81qXfrxeb9eoJi9dWrdhSuwXMAnHT
351351
github.com/jellydator/ttlcache/v3 v3.3.0/go.mod h1:bj2/e0l4jRnQdrnSTaGTsh4GSXvMjQcy41i7th0GVGw=
352352
github.com/jfrog/archiver/v3 v3.6.1 h1:LOxnkw9pOn45DzCbZNFV6K0+6dCsQ0L8mR3ZcujO5eI=
353353
github.com/jfrog/archiver/v3 v3.6.1/go.mod h1:VgR+3WZS4N+i9FaDwLZbq+jeU4B4zctXL+gL4EMzfLw=
354-
github.com/jfrog/build-info-go v1.8.9-0.20250828103621-f970c3fb7703 h1:tE8mnznNB5ZBLYyQn71v3AKADU9nrq1MMOrhQR4ZJlk=
355-
github.com/jfrog/build-info-go v1.8.9-0.20250828103621-f970c3fb7703/go.mod h1:+8u1CEGrr8XY5a5U6farFW3EKYk0ge0BMGZE3BAZBcE=
354+
github.com/jfrog/build-info-go v1.8.9-0.20250903071942-6b27bc9a3c7d h1:jfwp023mBp9Q6He2B9z/iaIgzuTaxyMOvzcSuAIetXE=
355+
github.com/jfrog/build-info-go v1.8.9-0.20250903071942-6b27bc9a3c7d/go.mod h1:+8u1CEGrr8XY5a5U6farFW3EKYk0ge0BMGZE3BAZBcE=
356356
github.com/jfrog/froggit-go v1.20.2 h1:3db2nY0FIIVv0Oa1lwrljr2GUL3j+F6wvbhKQNdWbsw=
357357
github.com/jfrog/froggit-go v1.20.2/go.mod h1:obSG1SlsWjktkuqmKtpq7MNTTL63e0ot+ucTnlOMV88=
358358
github.com/jfrog/go-mockhttp v0.3.1 h1:/wac8v4GMZx62viZmv4wazB5GNKs+GxawuS1u3maJH8=
@@ -361,14 +361,14 @@ github.com/jfrog/gofrog v1.7.6 h1:QmfAiRzVyaI7JYGsB7cxfAJePAZTzFz0gRWZSE27c6s=
361361
github.com/jfrog/gofrog v1.7.6/go.mod h1:ntr1txqNOZtHplmaNd7rS4f8jpA5Apx8em70oYEe7+4=
362362
github.com/jfrog/jfrog-apps-config v1.0.1 h1:mtv6k7g8A8BVhlHGlSveapqf4mJfonwvXYLipdsOFMY=
363363
github.com/jfrog/jfrog-apps-config v1.0.1/go.mod h1:8AIIr1oY9JuH5dylz2S6f8Ym2MaadPLR6noCBO4C22w=
364-
github.com/jfrog/jfrog-cli-core/v2 v2.59.5 h1:zPUOquY8gakWHJSdQifdcleFL0U23I0bdQdOYqxXAj4=
365-
github.com/jfrog/jfrog-cli-core/v2 v2.59.5/go.mod h1:+zJfCkkFRWDbRTGpHsoaLZw5ze1xzRwffaLKuXjrZKc=
364+
github.com/jfrog/jfrog-cli-core/v2 v2.59.6 h1:2MSLMrYecDk1KOwXXLFa386knOqJY3IZKfb0uZVCr1w=
365+
github.com/jfrog/jfrog-cli-core/v2 v2.59.6/go.mod h1:2Ck8y1phyJBvopotu7xddWWo45OH0bj6CwqVMTeKpOA=
366366
github.com/jfrog/jfrog-cli-platform-services v1.10.0 h1:O+N/VAF+QjFvq9xkHpmzKLcdl9aJu3IP204Su0L14rw=
367367
github.com/jfrog/jfrog-cli-platform-services v1.10.0/go.mod h1:qbu4iqBST9x8LgD8HhzUm91iOB3vHqtoGmaxOnmw0ok=
368-
github.com/jfrog/jfrog-cli-security v1.21.0 h1:wtza4bHW7yH3S7uI0V/Dqu1ILqhwF+F3AaSYjyncths=
369-
github.com/jfrog/jfrog-cli-security v1.21.0/go.mod h1:twq00jryP0ItSAys8G7ih2qAPEJdsLwR8KPDFAPLGUw=
370-
github.com/jfrog/jfrog-client-go v1.28.1-0.20250812100044-b52afcc698c1 h1:KGr4ItDLWzv8nZ1tUUq4a3KWPslAWrcHWq6lrEdCXSQ=
371-
github.com/jfrog/jfrog-client-go v1.28.1-0.20250812100044-b52afcc698c1/go.mod h1:+pSVE7Co+ytwhOhmz84/Lpe5fSeTaWJXsP1qt+WVfw0=
368+
github.com/jfrog/jfrog-cli-security v1.21.5 h1:gTPJZbc66D7dsXo/xAwixNrcg1XbRMNwYDaHCl87xtM=
369+
github.com/jfrog/jfrog-cli-security v1.21.5/go.mod h1:aFicv5RUPaTJlazeWStFmfabyr5q2EW+Z4WIcWcXagU=
370+
github.com/jfrog/jfrog-client-go v1.54.6 h1:kwKwou9mXKLQDYvBIY9bP/JAhzya/zPMN8PxOKrJdRc=
371+
github.com/jfrog/jfrog-client-go v1.54.6/go.mod h1:IwGSt21D6sbJVptrX8SxZNTthPXe+KlaIRRtv80Pqp8=
372372
github.com/jhump/protoreflect v1.17.0 h1:qOEr613fac2lOuTgWN4tPAtLL7fUSbuJL5X5XumQh94=
373373
github.com/jhump/protoreflect v1.17.0/go.mod h1:h9+vUUL38jiBzck8ck+6G/aeMX8Z4QUY/NiJPwPNi+8=
374374
github.com/jmespath/go-jmespath v0.4.1-0.20220621161143-b0104c826a24 h1:liMMTbpW34dhU4az1GN0pTPADwNmvoRSeoZ6PItiqnY=
@@ -486,8 +486,8 @@ github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQ
486486
github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM=
487487
github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs=
488488
github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc=
489-
github.com/owenrumney/go-sarif/v3 v3.1.4 h1:lqx5Cb7162BC+FuAgJZq8A8XXP4XMw7XoAPZl9iqlQs=
490-
github.com/owenrumney/go-sarif/v3 v3.1.4/go.mod h1:Olt8kHDlC+ruWzRfmgIQUD+2hoAk6A6vT+ljDUbae2s=
489+
github.com/owenrumney/go-sarif/v3 v3.2.3 h1:n6mdX5ugKwCrZInvBsf6WumXmpAe3mbmQXgkXlIq34U=
490+
github.com/owenrumney/go-sarif/v3 v3.2.3/go.mod h1:1bV7t8SZg7pX41spaDkEUs8/yEjzk9JapztMoX1XNjg=
491491
github.com/package-url/packageurl-go v0.1.3 h1:4juMED3hHiz0set3Vq3KeQ75KD1avthoXLtmE3I0PLs=
492492
github.com/package-url/packageurl-go v0.1.3/go.mod h1:nKAWB8E6uk1MHqiS/lQb9pYBGH2+mdJ2PJc2s50dQY0=
493493
github.com/pelletier/go-toml/v2 v2.2.3 h1:YmeHyLY8mFWbdkNWwpr+qIL2bEqT0o95WSdkNHvL12M=
@@ -599,8 +599,8 @@ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO
599599
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
600600
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
601601
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
602-
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
603-
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
602+
github.com/stretchr/testify v1.11.0 h1:ib4sjIrwZKxE5u/Japgo/7SJV3PvgjGiRNAvTVGqQl8=
603+
github.com/stretchr/testify v1.11.0/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
604604
github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8=
605605
github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU=
606606
github.com/terminalstatic/go-xsd-validate v0.1.6 h1:TenYeQ3eY631qNi1/cTmLH/s2slHPRKTTHT+XSHkepo=
@@ -628,8 +628,8 @@ github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9f
628628
github.com/transparency-dev/merkle v0.0.2 h1:Q9nBoQcZcgPamMkGn7ghV8XiTZ/kRxn1yCG81+twTK4=
629629
github.com/transparency-dev/merkle v0.0.2/go.mod h1:pqSy+OXefQ1EDUVmAJ8MUhHB9TXGuzVAT58PqBoHz1A=
630630
github.com/ulikunitz/xz v0.5.8/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14=
631-
github.com/ulikunitz/xz v0.5.12 h1:37Nm15o69RwBkXM0J6A5OlE67RZTfzUxTj8fB3dfcsc=
632-
github.com/ulikunitz/xz v0.5.12/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14=
631+
github.com/ulikunitz/xz v0.5.15 h1:9DNdB5s+SgV3bQ2ApL10xRc35ck0DuIX/isZvIk+ubY=
632+
github.com/ulikunitz/xz v0.5.15/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14=
633633
github.com/urfave/cli v1.22.16 h1:MH0k6uJxdwdeWQTwhSO42Pwr4YLrNLwBtg1MRgTqPdQ=
634634
github.com/urfave/cli v1.22.16/go.mod h1:EeJR6BKodywf4zciqrdw6hpCPk68JO9z5LazXZMn5Po=
635635
github.com/vbauerster/mpb/v8 v8.9.1 h1:LH5R3lXPfE2e3lIGxN7WNWv3Hl5nWO6LRi2B0L0ERHw=

pip_test.go

Lines changed: 93 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,22 @@
11
package main
22

33
import (
4+
"encoding/json"
45
"fmt"
5-
biutils "github.com/jfrog/build-info-go/utils"
6-
"github.com/jfrog/jfrog-cli-core/v2/utils/coreutils"
7-
coretests "github.com/jfrog/jfrog-cli-core/v2/utils/tests"
8-
"github.com/jfrog/jfrog-cli-security/sca/bom/buildinfo/technologies/python"
9-
"github.com/jfrog/jfrog-client-go/http/httpclient"
10-
clientTestUtils "github.com/jfrog/jfrog-client-go/utils/tests"
116
"net/http"
127
"os"
138
"os/exec"
149
"path/filepath"
1510
"strconv"
1611
"testing"
1712

13+
biutils "github.com/jfrog/build-info-go/utils"
14+
"github.com/jfrog/jfrog-cli-core/v2/utils/coreutils"
15+
coretests "github.com/jfrog/jfrog-cli-core/v2/utils/tests"
16+
"github.com/jfrog/jfrog-cli-security/sca/bom/buildinfo/technologies/python"
17+
"github.com/jfrog/jfrog-client-go/http/httpclient"
18+
clientTestUtils "github.com/jfrog/jfrog-client-go/utils/tests"
19+
1820
buildinfo "github.com/jfrog/build-info-go/entities"
1921

2022
"github.com/jfrog/jfrog-cli/inttestutils"
@@ -33,6 +35,91 @@ func TestPipInstallLegacy(t *testing.T) {
3335
testPipInstall(t, true)
3436
}
3537

38+
func TestPipDepsCacheOutput(t *testing.T) {
39+
// Init pip.
40+
initPipTest(t)
41+
42+
// Populate cli config with 'default' server.
43+
oldHomeDir, newHomeDir := prepareHomeDir(t)
44+
defer func() {
45+
clientTestUtils.SetEnvAndAssert(t, coreutils.HomeDir, oldHomeDir)
46+
clientTestUtils.RemoveAllAndAssert(t, newHomeDir)
47+
}()
48+
49+
cleanVirtualEnv, err := prepareVirtualEnv(t)
50+
assert.NoError(t, err)
51+
defer cleanVirtualEnv()
52+
53+
// Use the new test project with requirements.txt and expected deps.cache.json
54+
projectPath := createPipProject(t, "pip-deps-cache-test", "depscachetest")
55+
defer func() { assert.NoError(t, fileutils.RemoveTempDir(projectPath)) }()
56+
57+
// Change to project directory
58+
wd, err := os.Getwd()
59+
assert.NoError(t, err)
60+
chdirCallback := clientTestUtils.ChangeDirWithCallback(t, wd, projectPath)
61+
defer chdirCallback()
62+
63+
// Run pip install with JFrog CLI
64+
jfrogCli := coretests.NewJfrogCli(execMain, "jfrog", "")
65+
err = jfrogCli.Exec("pip", "install", "-r", "requirements.txt", "--no-cache-dir", "--force-reinstall", "--build-name="+tests.PipBuildName, "--build-number=999")
66+
assert.NoError(t, err)
67+
68+
// Read the generated deps.cache.json
69+
generatedCacheFile := filepath.Join(".jfrog", "projects", "deps.cache.json")
70+
assert.FileExists(t, generatedCacheFile)
71+
generatedContent, err := os.ReadFile(generatedCacheFile)
72+
assert.NoError(t, err)
73+
74+
// Read the expected deps.cache.json
75+
expectedContent, err := os.ReadFile("expected_deps_cache.json")
76+
assert.NoError(t, err)
77+
78+
// Parse both JSON files for comparison
79+
var generatedCache, expectedCache struct {
80+
Version int `json:"version"`
81+
Dependencies map[string]buildinfo.Dependency `json:"dependencies"`
82+
}
83+
err = json.Unmarshal(generatedContent, &generatedCache)
84+
assert.NoError(t, err)
85+
err = json.Unmarshal(expectedContent, &expectedCache)
86+
assert.NoError(t, err)
87+
88+
// Compare the dependencies
89+
assert.Equal(t, len(expectedCache.Dependencies), len(generatedCache.Dependencies),
90+
"Number of dependencies should match")
91+
92+
// Verify each package mapping
93+
for pkgName, expectedDep := range expectedCache.Dependencies {
94+
generatedDep, exists := generatedCache.Dependencies[pkgName]
95+
assert.True(t, exists, "Package %s not found in generated cache", pkgName)
96+
97+
// Compare wheel file names
98+
assert.Equal(t, expectedDep.Id, generatedDep.Id,
99+
"Package %s has incorrect wheel file. Expected: %s, Got: %s",
100+
pkgName, expectedDep.Id, generatedDep.Id)
101+
102+
// Compare checksums
103+
assert.Equal(t, expectedDep.Checksum.Sha1, generatedDep.Checksum.Sha1,
104+
"Package %s SHA1 mismatch", pkgName)
105+
assert.Equal(t, expectedDep.Checksum.Sha256, generatedDep.Checksum.Sha256,
106+
"Package %s SHA256 mismatch", pkgName)
107+
assert.Equal(t, expectedDep.Checksum.Md5, generatedDep.Checksum.Md5,
108+
"Package %s MD5 mismatch", pkgName)
109+
}
110+
111+
// Specifically verify the fix - each package should map to its own wheel
112+
alembicDep := generatedCache.Dependencies["alembic"]
113+
assert.Contains(t, alembicDep.Id, "alembic",
114+
"alembic should map to its own wheel file")
115+
116+
beautifulsoup4Dep := generatedCache.Dependencies["beautifulsoup4"]
117+
assert.Contains(t, beautifulsoup4Dep.Id, "beautifulsoup4",
118+
"beautifulsoup4 should map to its own wheel file")
119+
assert.NotContains(t, beautifulsoup4Dep.Id, "alembic",
120+
"beautifulsoup4 should NOT have alembic's wheel file")
121+
}
122+
36123
func testPipInstall(t *testing.T, isLegacy bool) {
37124
// Init pip.
38125
initPipTest(t)

poetry_buildinfo_integration_test.go

Lines changed: 30 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package main
22

33
import (
44
"encoding/json"
5+
"fmt"
56
"os"
67
"path/filepath"
78
"testing"
@@ -25,7 +26,11 @@ func TestPoetryBuildInfoCLIIntegration(t *testing.T) {
2526
// Change to test directory
2627
originalDir, err := os.Getwd()
2728
require.NoError(t, err)
28-
defer os.Chdir(originalDir)
29+
defer func() {
30+
if err := os.Chdir(originalDir); err != nil {
31+
t.Logf("Warning: Failed to change back to original directory: %v", err)
32+
}
33+
}()
2934

3035
err = os.Chdir(tempDir)
3136
require.NoError(t, err)
@@ -54,7 +59,8 @@ func TestPoetryBuildInfoCLIIntegration(t *testing.T) {
5459
for _, tc := range testCases {
5560
t.Run(tc.name, func(t *testing.T) {
5661
// Set environment for native implementation
57-
os.Setenv("JFROG_RUN_NATIVE", "true")
62+
err := os.Setenv("JFROG_RUN_NATIVE", "true")
63+
require.NoError(t, err)
5864
defer os.Unsetenv("JFROG_RUN_NATIVE")
5965

6066
// Test build info collection (simulating jf poetry publish --build-name --build-number)
@@ -83,7 +89,11 @@ func TestPoetryBuildInfoWithoutNativeFlag(t *testing.T) {
8389

8490
originalDir, err := os.Getwd()
8591
require.NoError(t, err)
86-
defer os.Chdir(originalDir)
92+
defer func() {
93+
if err := os.Chdir(originalDir); err != nil {
94+
t.Logf("Warning: Failed to change back to original directory: %v", err)
95+
}
96+
}()
8797

8898
err = os.Chdir(tempDir)
8999
require.NoError(t, err)
@@ -112,12 +122,17 @@ func TestPoetryTreeParsingRobustness(t *testing.T) {
112122

113123
originalDir, err := os.Getwd()
114124
require.NoError(t, err)
115-
defer os.Chdir(originalDir)
125+
defer func() {
126+
if err := os.Chdir(originalDir); err != nil {
127+
t.Logf("Warning: Failed to change back to original directory: %v", err)
128+
}
129+
}()
116130

117131
err = os.Chdir(tempDir)
118132
require.NoError(t, err)
119133

120-
os.Setenv("JFROG_RUN_NATIVE", "true")
134+
err = os.Setenv("JFROG_RUN_NATIVE", "true")
135+
require.NoError(t, err)
121136
defer os.Unsetenv("JFROG_RUN_NATIVE")
122137

123138
buildInfo := collectPoetryBuildInfoForTest(t, "tree-parsing-test", "1")
@@ -143,12 +158,17 @@ func TestPoetryRequestedByRelationships(t *testing.T) {
143158

144159
originalDir, err := os.Getwd()
145160
require.NoError(t, err)
146-
defer os.Chdir(originalDir)
161+
defer func() {
162+
if err := os.Chdir(originalDir); err != nil {
163+
t.Logf("Warning: Failed to change back to original directory: %v", err)
164+
}
165+
}()
147166

148167
err = os.Chdir(tempDir)
149168
require.NoError(t, err)
150169

151-
os.Setenv("JFROG_RUN_NATIVE", "true")
170+
err = os.Setenv("JFROG_RUN_NATIVE", "true")
171+
require.NoError(t, err)
152172
defer os.Unsetenv("JFROG_RUN_NATIVE")
153173

154174
buildInfo := collectPoetryBuildInfoForTest(t, "requested-by-test", "1")
@@ -339,6 +359,9 @@ type mockPoetryBuildInfoCollector struct{}
339359

340360
func (m *mockPoetryBuildInfoCollector) CollectBuildInfo(buildName, buildNumber string) (*buildinfo.BuildInfo, error) {
341361
// This is a simplified mock - in real tests this would call the actual FlexPack
362+
if buildName == "" || buildNumber == "" {
363+
return nil, fmt.Errorf("build name and number are required")
364+
}
342365
return &buildinfo.BuildInfo{
343366
Name: buildName,
344367
Number: buildNumber,

0 commit comments

Comments
 (0)