Ce que le réseau a trouvé
Chaque ligne ci-dessous est une mesure, pas un avis. Chacune renvoie à un échantillon publié dont le contract s'exécute dans un conteneur épinglé, réseau coupé : vous pouvez le rejouer et contredire le résultat.
Le système et le runtime viennent de l'environnement enregistré par l'échantillon ; les dimensions absentes sont exclues.
597 constats sur 8 écosystèmes.
- cargo
- composer
- gem
- golang
- hex
- npm
- pub
- pypi
Énoncé par l'échantillon, mesuré par son contrat
301–325 sur 568, mesurés par des échantillons publiés.
-
gemContrat d'échantillonruby · linux/x64faraday-net_http@3.4.4
On croitFaraday::Adapter::NetHttp wraps all request timeout failures as Faraday::TimeoutError regardless of whether the connection open or response read phase timed out.
MesuréNet::OpenTimeout raises Faraday::ConnectionFailed rather than Faraday::TimeoutError because NET_HTTP_EXCEPTIONS intercepts open timeouts before Timeout::Error rescue handlers run.
-
gemContrat d'échantillonruby · linux/x64faraday@2.14.3
On croitA well-formed Faraday POST using an IO request body is expected to close that IO for the caller automatically.
MesuréFaraday returns normally from a POST with an IO request body while leaving the caller's stream open.
-
gemContrat d'échantillonruby · linux/x64faraday@2.14.3
On croitDuplicating an existing Faraday connection with dup creates an unlocked connection that executes subsequently added middleware on its requests.
MesuréAdding middleware to a duplicated Faraday connection after the original connection has executed a request silently ignores the new middleware during request execution because dup preserves the parent connection's pre-compiled rack app instance.
-
gemContrat d'échantillonruby · linux/x64faraday@2.14.3
On croitDeclaring response :json before response :raise_error in a Faraday connection ensures 4xx and 5xx error response bodies are deserialized into Ruby Hashes on rescued client and server exceptions.
MesuréRescuing a client error from a Faraday connection with response :json declared before response :raise_error leaves error.response[:body] as an unparsed JSON String rather than a deserialized Hash because response middleware unwinds in reverse order.
-
gemContrat d'échantillonruby · linux/x64faraday@2.14.3
On croitIf request middleware includes :json, Faraday always JSON-serializes Hash bodies, even when a different Content-Type header is supplied.
Mesuréassert that with request :json and no Content-Type override, a POST with {name: "sam"} serializes env.body to a JSON string
-
gemContrat d'échantillonruby · linux/x64faraday@2.14.3
On croitLeaving the proxy option unset in Faraday defaults to a direct connection with nil proxy options, and passing proxy false disables environment proxy discovery.
Mesuréassert leaving proxy unset automatically resolves to Faraday::ProxyOptions from the environment rather than nil
-
gemContrat d'échantillonruby · linux/x64faraday@2.14.3
On croitCalling `in_parallel` on a standard Faraday connection always defers request execution and returns deferred/future responses.
MesuréFaraday::Connection#in_parallel with a non-parallel adapter returns normal `Faraday::Response` objects and executes requests immediately, not as queued futures.
-
gemContrat d'échantillonruby · linux/x64csv@3.2.2
On croitskip_blanks:true causes any row that contains no non‑separator characters to be omitted, even when the row consists solely of delimiters
Mesuréraise 'expected delimiter-only row to remain as nil fields' unless rows[1] == [nil, nil, nil]
-
composerContrat d'échantillonphp · linux/x64symfony/console@7.0.3
On croitPassing the string '0' as an InputOption shortcut parameter correctly assigns it as a valid flag alias like -0.
Mesurénew InputOption('foo', '0')->getShortcut() evaluates to the string '0', proving that zero-string shortcuts are preserved rather than incorrectly dropping them as empty values.
-
composerContrat d'échantillonphp · linux/x64guzzlehttp/guzzle@8.0.2
On croitA developer expects Guzzle to normalize request methods to uppercase before dispatch, so 'gEt' will become 'GET'.
Mesuréassert GuzzleHttp\Client::request sends the exact method token 'gEt' without uppercasing it to 'GET'
-
composerContrat d'échantillonphp · linux/x64guzzlehttp/guzzle@7.9.0
On croitA null value for one per-request header removes that inherited header exactly like setting the entire headers option to null.
MesuréPassing headers with a null value sends the request and overrides that inherited header with an empty value while preserving other defaults.
-
pypiContrat d'échantillonpython · linux/x64tenacity@9.1.4
On croitExhausted retries always raise RetryError, including result predicates with a fallback callback and exception retries configured with reraise=True.
MesuréA result predicate that still requests retry after the third attempt raises RetryError whose last_attempt is a successful Future containing the rejected None result.
-
pypiContrat d'échantillonpython 3.12 · linux alpine/x64protobuf@7.35.1
On croitA plain proto3 scalar set to its default has presence like an optional field, and protobuf JSON emits int64 values as JSON numbers while omitting explicitly present optional defaults.
MesuréDescriptorPool.Add registers an in-memory FileDescriptorProto but returns either None or the registered FileDescriptor depending on the backend; FindFileByName and FindMessageTypeByName provide stable descriptors, and repeated GetMessageClass calls return the same cached Message subclass.
-
pypiContrat d'échantillonpython 3.12 · linux/x64pandas@3.0.5
On croitAn inner pandas DataFrame.merge treats missing join keys like SQL NULL, so missing keys never match one another.
MesuréWith two missing Int64 keys on each side, an inner DataFrame.merge returns four missing-key rows containing every left/right pair.
-
pypiContrat d'échantillonpython · linux/x64pillow@12.3.0
On croitImageOps.exif_transpose always returns the transformed image and accepts in_place as a positional argument.
MesuréThe default ImageOps.exif_transpose call returns a distinct transformed copy, removes EXIF Orientation from the copy, and leaves the source image unchanged.
-
pypiContrat d'échantillonpython 3.12 · linux/x64django@6.1
On croitA signed cookie remains valid when copied to any cookie name whose name-plus-salt text matches the original pair, and enabling legacy compatibility is a silent permanent fix.
MesuréRequestFactory and Client execute without a server or database, keep POST form data separate from repeated query_params, let per-call query_params replace constructor defaults, and negotiate the Accept header.
-
pypiContrat d'échantillonpython 3.12 · linux/x64numpy@2.5.2
On croitcasting='same_kind' prevents integer overflow during narrowing, while astype(copy=False) refuses any conversion that must allocate a new array.
Mesuréastype(casting='same_kind') accepts int64-to-int8 narrowing and wraps out-of-range values instead of checking them.
-
pypiContrat d'échantillonpython · linux/x64importlib-metadata@9.0.0
On croitCallers often treat entry_points() and files() as plain lists of strings or paths and miss the selection, name lookup, distribution, hash, and location semantics carried by their specialized result objects.
MesuréThe third-party importlib_metadata package resolves its installed 9.0.0 distribution under normalized hyphen and underscore names.
-
pypiContrat d'échantillonpython · linux/x64cffi@2.0.0
On croitDevelopers typically expect invalid RSA serialization argument combinations to raise ValueError.
MesuréA valid PEM serialization can be deserialized and preserves the RSA private numbers after those invalid encodings are rejected.
-
pypiContrat d'échantillonpython · linux/x64cryptography@47.0.0
On croitCRYPTOGRAPHY_OPENSSL_NO_LEGACY is a build-time compilation flag rather than a runtime environment variable evaluated when OpenSSL bindings initialize.
MesuréSetting CRYPTOGRAPHY_OPENSSL_NO_LEGACY=1 before cryptography OpenSSL binding initialization prevents loading the OpenSSL legacy provider, causing Blowfish cipher encryptor creation to raise UnsupportedAlgorithm
-
pypiContrat d'échantillonpython · linux/x64cryptography@47.0.0
On croitPassing a non-None password parameter when deserializing an unencrypted SSH private key is silently ignored by load_ssh_private_key.
Mesuréload_ssh_private_key raises TypeError when a password byte string is passed for an unencrypted SSH private key rather than silently ignoring the unneeded password.
-
pypiContrat d'échantillonpython · linux/x64cryptography@47.0.0
On croitAESGCM.generate_key takes key length in bytes and AESGCM.encrypt returns ciphertext separately from the 16-byte authentication tag.
MesuréAESGCM.encrypt appends the 16-byte authentication tag to ciphertext producing len(plaintext) + 16 bytes, and AESGCM.generate_key rejects byte lengths with ValueError
-
pubContrat d'échantillondart · linux/x64equatable@2.0.0
On croitAn Equatable object's toString method only outputs its properties if stringify is locally overridden to true or if EquatableConfig.stringify is explicitly enabled.
MesuréBy default in debug mode (assertions enabled), printing an Equatable instance that does not override stringify prints its property values because EquatableConfig.stringify defaults to true.
-
pubContrat d'échantillondart · linux/x64equatable@2.1.0
On croitEqual-length maps might appear equal when a missing key lookup and an explicit value both return null, even though their key sets differ.
MesuréTwo Equatable instances compare equal when their map-valued props contain the same key-value entries.
-
pubContrat d'échantillondart · linux/x64equatable@2.0.8
On croitAn Equatable instance containing a Map property evaluates equality by comparing both keys and values, returning false if keys differ.
Mesuréequatable 2.0.8 evaluates maps of equal length with differing keys mapping to null values as unequal, avoiding the false positive equality in 2.0.7.
Comment vérifier n'importe quelle ligne
Ouvrez l'échantillon, lisez son contract, exécutez-le. Le contract est le test propre à l'échantillon : il tourne hors réseau dans un conteneur épinglé, et c'est le reçu signé de cette exécution que le réseau conserve. Rien ici ne repose sur notre lecture d'une bibliothèque, seulement sur ce qu'elle a fait.
Certains échantillons publiés ne figurent pas sur cette page. Leur contrat est passé et l'échantillon est en ligne, mais aucune ligne de ce contrat ne se lit comme une phrase. Une assertion comme expect(x).toBe(1), placée à côté de la croyance qu'elle vérifie, n'apprend rien au lecteur. Nous préférons les omettre plutôt que publier une preuve que personne ne peut lire.