File: test_fi.py

package info (click to toggle)
validators 0.20.0-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 332 kB
  • sloc: python: 1,556; makefile: 150
file content (60 lines) | stat: -rw-r--r-- 1,496 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# -*- coding: utf-8 -*-
import pytest

from validators import ValidationFailure
from validators.i18n.fi import fi_business_id, fi_ssn


@pytest.mark.parametrize(('value',), [
    ('2336509-6',),  # Supercell
    ('0112038-9',),  # Fast Monkeys
    ('2417581-7',),  # Nokia
])
def test_returns_true_on_valid_business_id(value):
    assert fi_business_id(value)


@pytest.mark.parametrize(('value',), [
    (None,),
    ('',),
    ('1233312312',),
    ('1333333-8',),
    ('1231233-9',),
])
def test_returns_failed_validation_on_invalid_business_id(value):
    assert isinstance(fi_business_id(value), ValidationFailure)


@pytest.mark.parametrize(('value',), [
    ('010190-002R',),
    ('010101-0101',),
    ('010101+0101',),
    ('010101A0101',),
    ('010190-900P',),
])
def test_returns_true_on_valid_ssn(value):
    assert fi_ssn(value)


@pytest.mark.parametrize(('value',), [
    (None,),
    ('',),
    ('010190-001P',),  # Too low serial
    ('010190-000N',),  # Too low serial
    ('000190-0023',),  # Invalid day
    ('010090-002X',),  # Invalid month
    ('010190-002r',),  # Invalid checksum
    ('101010-0102',),
    ('10a010-0101',),
    ('101010-0\xe401',),
    ('101010b0101',)
])
def test_returns_failed_validation_on_invalid_ssn(value):
    assert isinstance(fi_ssn(value), ValidationFailure)


def test_returns_failed_validation_on_temporal_ssn_when_not_allowed():
    assert isinstance(
        fi_ssn('010190-900P', allow_temporal_ssn=False),
        ValidationFailure
    )