Skip to content

Incorrect finance Validation Logic #440

Description

@lexendo

Incorrect finance Validation Logic (possible bug)

Hi,
while reviewing the finance.py validators (ISIN, CUSIP, SEDOL), I found that the validators contain several issues, and I’d like to confirm whether this is a bug or if I’m missing something.

Reference to my mutation-testing analysis:
Bolest-oci/mutation-testing#35

F.e ISIN

The official ISIN format is two uppercase letters, nine alphanumeric characters, and one check digit (12 characters total).
However, the current validator seems incomplete:

  • The Luhn checksum is implemented incorrectly and never computed.
  • The format is not enforced (first two characters should be uppercase letters, last must be a digit).
  • Lowercase letters and invalid characters are accepted.
  • It does not verify that the first two letters form a country code (optional, but usually expected).

I'm thinking of submitting a PR with a fix, but I'm asking first to make sure I'm not missing something.
Thanks!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions