#!/usr/bin/env python3
import argparse
import sys

from bdd_tester import BDDTester


if __name__ == '__main__':
    parser = argparse.ArgumentParser(description='Write IATI data tests ' +
                                                 'in gherkin.')
    parser.add_argument('filepath', help='IATI XML file to test')
    parser.add_argument('-f', '--feature', help='path(s) to test files.',
                        action='append', dest='features', required=True)
    parser.add_argument('-c', '--condition', help='an XPath expression ' +
                        'with which to filter IATI data.', dest='condition')
    parser.add_argument('-o', '--output', help='output path for results',
                        dest='output_path')
    parser.add_argument('-t', '--today', metavar='DATE', help='specify a ' +
                        'date to be used as today\'s date (YYYY-MM-DD)')
    parser.add_argument('--logging-level', help='Specify a level to capture ' +
                        'logging at. The default is INFO - capturing ' +
                        'everything.', dest='logging_level')

    args = vars(parser.parse_args())
    args['save_summary'] = True

    failed = False
    try:
        BDDTester(**args)
    except Exception as e:
        print(e)
        failed = True

    sys.exit(1 if failed else 0)
