Coverage for centralnicreseller / apiconnector / idnaconverter.py: 86%

35 statements  

« prev     ^ index     » next       coverage.py v7.13.5, created at 2026-04-21 15:25 +0000

1from centralnicreseller.apiconnector.idnaprocessor import IDNAProcessor 

2 

3 

4class IDNAConverter: 

5 def __init__(self, idn=None, pc=None, idn_list=None, pc_list=None): 

6 self.idn = idn 

7 self.pc = pc 

8 self.idn_list = idn_list if idn_list is not None else [] 

9 self.pc_list = pc_list if pc_list is not None else [] 

10 

11 @staticmethod 

12 def convert(domain_name, use_transitional=None): 

13 try: 

14 pc = IDNAProcessor.to_ascii(domain_name, use_transitional) 

15 idn = IDNAProcessor.to_unicode(domain_name, use_transitional) 

16 return IDNAConverter(idn=idn, pc=pc) 

17 except Exception: 

18 return IDNAConverter(idn=domain_name, pc=domain_name) 

19 

20 @staticmethod 

21 def convert_list(domain_names, use_transitional=None): 

22 idn_results = [] 

23 pc_results = [] 

24 

25 for domain_name in domain_names: 

26 try: 

27 pc_results.append(IDNAProcessor.to_ascii(domain_name, use_transitional)) 

28 idn_results.append( 

29 IDNAProcessor.to_unicode(domain_name, use_transitional) 

30 ) 

31 except Exception: 

32 pc_results.append(domain_name) 

33 idn_results.append(domain_name) 

34 

35 return IDNAConverter(idn_list=idn_results, pc_list=pc_results) 

36 

37 def get_idn(self): 

38 return self.idn 

39 

40 def get_pc(self): 

41 return self.pc 

42 

43 def get_idn_list(self): 

44 return self.idn_list 

45 

46 def get_pc_list(self): 

47 return self.pc_list