test/test_parser.py
changeset 149 3aff6a7772b3
parent 135 808c8bc803f5
child 152 f614365ab91b
equal deleted inserted replaced
148:c77e24f4685a 149:3aff6a7772b3
    51         """
    51         """
    52         keys_to_test = ['domain_name', 'expiration_date', 'updated_date',
    52         keys_to_test = ['domain_name', 'expiration_date', 'updated_date',
    53                         'creation_date', 'status']
    53                         'creation_date', 'status']
    54         fail = 0
    54         fail = 0
    55         total = 0
    55         total = 0
    56         for path in glob('test/samples/whois/*.com'):
    56         whois_path = os.path.join(os.path.dirname(os.path.abspath(__file__)),'samples','whois','*')
       
    57         expect_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'samples','expected')
       
    58         for path in glob(whois_path):
    57             # Parse whois data
    59             # Parse whois data
    58             domain = os.path.basename(path)
    60             domain = os.path.basename(path)
    59             with open(path) as whois_fp:
    61             with open(path) as whois_fp:
    60                 data = whois_fp.read()
    62                 data = whois_fp.read()
    61 
    63 
    70                 def date2str4json(obj):
    72                 def date2str4json(obj):
    71                     if isinstance(obj, datetime.datetime):
    73                     if isinstance(obj, datetime.datetime):
    72                         return str(obj)
    74                         return str(obj)
    73                     raise TypeError(
    75                     raise TypeError(
    74                             '{} is not JSON serializable'.format(repr(obj)))
    76                             '{} is not JSON serializable'.format(repr(obj)))
    75                 outfile_name = os.path.join('test/samples/expected/', domain)
    77                 outfile_name = os.path.join(expect_path, domain)
    76                 with open(outfile_name, 'w') as outfil:
    78                 with open(outfile_name, 'w') as outfil:
    77                     expected_results = json.dump(results, outfil,
    79                     expected_results = json.dump(results, outfil,
    78                                                        default=date2str4json)
    80                                                        default=date2str4json)
    79                 continue
    81                 continue
    80 
    82 
    81             # Load expected result
    83             # Load expected result
    82             with open(os.path.join('test/samples/expected/', domain)) as infil:
    84             with open(os.path.join(expect_path, domain)) as infil:
    83                 expected_results = json.load(infil)
    85                 expected_results = json.load(infil)
    84 
    86 
    85             # Compare each key
    87             # Compare each key
    86             for key in results:
    88             for key in results:
    87                 total += 1
    89                 total += 1