69 lines
2.2 KiB
Python
69 lines
2.2 KiB
Python
""" Test mapping """
|
|
import logging
|
|
import sys
|
|
|
|
from mylib import pretty_format_value
|
|
from mylib.mapping import map_hash
|
|
from mylib.scripts.helpers import get_opts_parser, init_logging
|
|
|
|
log = logging.getLogger(__name__)
|
|
|
|
|
|
def main(argv=None):
|
|
"""Script main"""
|
|
if argv is None:
|
|
argv = sys.argv[1:]
|
|
|
|
# Options parser
|
|
parser = get_opts_parser(progress=True)
|
|
options = parser.parse_args()
|
|
|
|
# Initialize logs
|
|
init_logging(options, "Test mapping")
|
|
|
|
src = {
|
|
"uid": "hmartin",
|
|
"firstname": "Martin",
|
|
"lastname": "Martin",
|
|
"disp_name": "Henri Martin",
|
|
"line_1": "3 rue de Paris",
|
|
"line_2": "Pour Pierre",
|
|
"zip_text": "92 120",
|
|
"city_text": "Montrouge",
|
|
"line_city": "92120 Montrouge",
|
|
"tel1": "01 00 00 00 00",
|
|
"tel2": "09 00 00 00 00",
|
|
"mobile": "06 00 00 00 00",
|
|
"fax": "01 00 00 00 00",
|
|
"email": "H.MARTIN@GMAIL.COM",
|
|
}
|
|
|
|
map_c = {
|
|
"uid": {"order": 0, "key": "uid", "required": True},
|
|
"givenName": {"order": 1, "key": "firstname"},
|
|
"sn": {"order": 2, "key": "lastname"},
|
|
"cn": {
|
|
"order": 3,
|
|
"key": "disp_name",
|
|
"required": True,
|
|
"or": {"attrs": ["firstname", "lastname"], "join": " "},
|
|
},
|
|
"displayName": {"order": 4, "other_key": "displayName"},
|
|
"street": {"order": 5, "join": " / ", "keys": ["ligne_1", "ligne_2"]},
|
|
"postalCode": {"order": 6, "key": "zip_text", "cleanRegex": "[^0-9]"},
|
|
"l": {"order": 7, "key": "city_text"},
|
|
"postalAddress": {"order": 8, "join": "$", "keys": ["ligne_1", "ligne_2", "ligne_city"]},
|
|
"telephoneNumber": {
|
|
"order": 9,
|
|
"keys": ["tel1", "tel2"],
|
|
"cleanRegex": "[^0-9+]",
|
|
"deduplicate": True,
|
|
},
|
|
"mobile": {"order": 10, "key": "mobile"},
|
|
"facsimileTelephoneNumber": {"order": 11, "key": "fax"},
|
|
"mail": {"order": 12, "key": "email", "convert": lambda x: x.lower().strip()},
|
|
}
|
|
|
|
print('Mapping source:\n' + pretty_format_value(src))
|
|
print('Mapping config:\n' + pretty_format_value(map_c))
|
|
print('Mapping result:\n' + pretty_format_value(map_hash(map_c, src)))
|