testing: helm-unittest's isNotNullOrEmpty passes when the path does not exist
Les mainteneurs répondent en général sous 2 jours
@Shxshxnkk1 y travaille déjà.
Depuis le 10/10/2026.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 75/100
Piste de recherche
Les trois sites d'appel sont identifiés : packages/tests/cozy-lib-tests/tests/tls_cacert_test.yaml (lignes 44 et 297), packages/apps/clickhouse/tests/backup_api_contract_test.yaml (ligne 89) et packages/apps/vpn/tests/vpn_test.yaml (ligne 24). Commence par lire chaque assertion isNotNullOrEmpty et son chemin, puis ajoute à côté une assertion exists sur le même chemin. C'est terminé lorsque chacun de ces chemins possède une assertion exists et que les suites concernées passent toujours sous helm unittest. La question du validateur en amont est distincte et ne bloque pas cette modification.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
helm-unittest's isNotNullOrEmpty does not fail when the path it checks is missing from the rendered manifest. It fails only when the path exists and holds an empty value. So a test that uses it to say "this key is set" keeps passing after the key is renamed or dropped.
The cause is in the validator. isNotNullOrEmpty is isNullOrEmpty with context.Negative set. In pkg/unittest/validators/is_nullorempty_validator.go at v1.1.2, the version CI installs, the "unknown path" error is returned only when !context.Negative. For the negated form the result is len(actual) == 0 && context.Negative, which is true for a path that resolves to nothing.
Checked locally with v1.1.1 against a ConfigMap template:
asserts:
- isNotNullOrEmpty:
path: data.nope # passes
- isNotEmpty:
path: data.nope # passes
- isNotNull:
path: data.nope # fails
exists also fails on a missing path, as expected.
Three test files here use isNotNullOrEmpty:
packages/tests/cozy-lib-tests/tests/tls_cacert_test.yaml, lines 44 and 297packages/apps/clickhouse/tests/backup_api_contract_test.yaml, line 89packages/apps/vpn/tests/vpn_test.yaml, line 24
None of them is vacuous today. I swapped each one for exists and the suites stayed green, so every path is present in the current render. The risk is a future rename that these asserts will not notice.
The fix is to add an exists assert next to each of them. It is probably also worth asking upstream whether the negated form is supposed to accept a missing path.
- Langage dominant
- Go
- Étoiles
- 2.2k
- Forks
- 209
- Merge moyen
- 3 j 9 h
- PR mergées (30 j)
- 242
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de cozystack/cozystack
-
docs(release): changelog check B looks for images/*/Dockerfile, which does not existPeut-être pris @harshitrwt l’a pris il y a 2 jours. Ouvertearea/release kind/bug kind/documentation triage/needs-triage
Difficulté 1/5 Moins d'une heure Accessibilité débutants 82/100
cozystack/cozystack#4892 · 1 commentaire · 1 réaction ·
Les mainteneurs répondent en général sous 2 jours
-
triage/needs-triage
Difficulté 1/5 Moins d'une heure Accessibilité débutants 64/100
cozystack/cozystack#4886 · 1 réaction ·
Les mainteneurs répondent en général sous 2 jours
-
area/testing kind/cleanup priority/backlog triage/needs-triage
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
cozystack/cozystack#4882 · 1 réaction ·
Les mainteneurs répondent en général sous 2 jours
-
area/storage kind/bug priority/backlog triage/needs-triage
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
cozystack/cozystack#4878 · 1 réaction ·
Les mainteneurs répondent en général sous 2 jours
-
chore(cilium): drop externalIPs.enabled and nodePort.enabled, the Cilium chart does not read themOuvertearea/cilium kind/cleanup triage/needs-triage
Difficulté 1/5 Moins d'une heure Accessibilité débutants 82/100
cozystack/cozystack#4816 · 1 réaction ·
Les mainteneurs répondent en général sous 2 jours
Toutes les issues de cozystack/cozystack
Issues similaires
-
[Bug]: message-level cache_control on chat messages is dropped, so Anthropic prompt caching never triggersPeut-être pris @Atharva-Kanherkar l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 80/100
Les mainteneurs répondent en général sous 1 jour
-
documentation good first issue help wanted
Difficulté 2/5 1-3 heures Accessibilité débutants 90/100
eugenioenko/ttt#1000 ·
Les mainteneurs répondent en général sous 1 jour
-
bug needs-acceptance wg/developer-experience-ecosystem
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
vllm-project/semantic-router#5249 ·
Les mainteneurs répondent en général sous 1 jour
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Billionmail/BillionMail#389 ·
-
在“产品文档”下拉列表,增加“探索”频道Ouverteenhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
DaoCloud/DaoCloud-docs#7489 ·
Les mainteneurs répondent en général sous 1 jour