[7fc5df]: / tests / surrogates / generators / test_phone.py

Download this file

108 lines (85 with data), 4.1 kB

  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
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
import pytest
from deidentify.surrogates.generators import (DIAL_CODES_BY_LENGTH, PhoneFaxSurrogates,
RandomData)
def test_mask_phonenumber():
pfs = PhoneFaxSurrogates(annotations=[])
assert pfs.mask_phonenumber('(026) 123 456 7') == '(0DD) ### ### #'
assert pfs.mask_phonenumber('026 - 123 456 7') == '0DD - ### ### #'
assert pfs.mask_phonenumber('026- 123 456 7') == '0DD- ### ### #'
assert pfs.mask_phonenumber('026 -123 456 7') == '0DD -### ### #'
assert pfs.mask_phonenumber('0261234567') == '0DD#######'
assert pfs.mask_phonenumber('123 456 7') == '### ### #'
assert pfs.mask_phonenumber('+31 512 456 789') == '+CC DDD ### ###'
assert pfs.mask_phonenumber('+31 6 11 22 11 11') == '+CC D ## ## ## ##'
assert pfs.mask_phonenumber('+31 (0) 6 11 22 11 11') == '+CC (0) D ## ## ## ##'
assert pfs.mask_phonenumber('0031 6 11 22 11 11') == '00CC D ## ## ## ##'
def test_mask_phonenumber_invalid():
pfs = PhoneFaxSurrogates(annotations=[])
with pytest.raises(ValueError):
pfs.mask_phonenumber('abcdf')
with pytest.raises(ValueError):
pfs.mask_phonenumber('123456')
def test_replace_pattern():
pfs = PhoneFaxSurrogates(annotations=[], random_data=RandomData(seed=42))
for _ in range(100):
pattern = '(0DD) ### ### #'
replacement = pfs.replace_pattern(pattern)
assert replacement[2:4] in DIAL_CODES_BY_LENGTH[2]
assert replacement[6] in '123456789'
assert len(replacement) == len(pattern)
pattern = '0DD - ### ### #'
replacement = pfs.replace_pattern(pattern)
assert replacement[1:3] in DIAL_CODES_BY_LENGTH[2]
assert replacement[6] in '123456789'
assert len(replacement) == len(pattern)
pattern = '0DD- ### ### #'
replacement = pfs.replace_pattern(pattern)
assert replacement[1:3] in DIAL_CODES_BY_LENGTH[2]
assert replacement[5] in '123456789'
assert len(replacement) == len(pattern)
pattern = '0DD#######'
replacement = pfs.replace_pattern(pattern)
assert replacement[1:3] in DIAL_CODES_BY_LENGTH[2]
assert replacement[3] in '123456789'
assert len(replacement) == len(pattern)
pattern = '### ### #'
replacement = pfs.replace_pattern(pattern)
assert replacement[0] in '123456789'
assert len(replacement) == len(pattern)
pattern = '+CC DDD ### ###'
replacement = pfs.replace_pattern(pattern)
assert replacement[0] == '+'
assert replacement[1:3] == '31'
assert replacement[4:7] in DIAL_CODES_BY_LENGTH[3]
assert replacement[8] in '123456789'
assert len(replacement) == len(pattern)
pattern = '+CC D ## ## ## ##'
replacement = pfs.replace_pattern(pattern)
assert replacement[0] == '+'
assert replacement[1:3] == '31'
assert replacement[4] == '6' # mobile phone
assert replacement[6] in '123456789'
assert len(replacement) == len(pattern)
pattern = '00CC D ## ## ## ##'
replacement = pfs.replace_pattern(pattern)
assert replacement[0:2] == '00'
assert replacement[2:4] == '31'
assert replacement[5] == '6' # mobile phone
assert replacement[7] in '123456789'
assert len(replacement) == len(pattern)
def test_replace_phonenumber():
pfs = PhoneFaxSurrogates(annotations=[], random_data=RandomData(seed=42))
for _ in range(100):
pattern = '(026) 123 456 7'
replacement = pfs.replace_one(pattern)
assert replacement[2:4] in DIAL_CODES_BY_LENGTH[2]
assert replacement[6] in '123456789'
assert len(replacement) == len(pattern)
pattern = '+31 (0) 6 11 22 11 11'
replacement = pfs.replace_one(pattern)
assert replacement[0] == '+'
assert replacement[1:3] == '31'
assert replacement[3:8] == ' (0) '
assert replacement[8] == '6' # mobile phone
assert replacement[10] in '123456789'
assert len(replacement) == len(pattern)