def main(): parser = argparse.ArgumentParser( description='Test suite generator utility') parser.add_argument( '-t', '--target', type=str, choices=("release", "debug"), default="release", help='Sets the appropriate template for generating tests') parser.add_argument( '-s', '--spec', type=str, default=os.getcwd(), help='Specify a file used for describing and generating the tests') # TODO(kristijanburnik): Add option for the spec_json file. args = parser.parse_args() spec_directory = os.path.abspath(args.spec) # Read `spec.src.json` files, starting from `spec_directory`, and # continuing to parent directories as long as `spec.src.json` exists. spec_filenames = [] test_helper_filenames = [] spec_src_directory = spec_directory while len(spec_src_directory) >= len(util.test_root_directory): spec_filename = os.path.join(spec_src_directory, "spec.src.json") if not os.path.exists(spec_filename): break spec_filenames.append(spec_filename) test_filename = os.path.join(spec_src_directory, 'generic', 'test-case.sub.js') assert (os.path.exists(test_filename)) test_helper_filenames.append(test_filename) spec_src_directory = os.path.abspath( os.path.join(spec_src_directory, "..")) spec_filenames = list(reversed(spec_filenames)) test_helper_filenames = list(reversed(test_helper_filenames)) if len(spec_filenames) == 0: print('Error: No spec.src.json is found at %s.' % spec_directory) return # Load the default spec JSON file, ... default_spec_filename = os.path.join(util.script_directory, 'spec.src.json') spec_json = collections.OrderedDict() if os.path.exists(default_spec_filename): spec_json = util.load_spec_json(default_spec_filename) # ... and then make spec JSON files in subdirectories override the default. for spec_filename in spec_filenames: child_spec_json = util.load_spec_json(spec_filename) merge_json(spec_json, child_spec_json) spec_validator.assert_valid_spec_json(spec_json) generate_test_source_files(spec_directory, test_helper_filenames, spec_json, args.target)
def main(config): parser = argparse.ArgumentParser( description='Test suite generator utility') parser.add_argument( '-t', '--target', type=str, choices=("release", "debug"), default="release", help='Sets the appropriate template for generating tests') parser.add_argument( '-s', '--spec', type=str, default=None, help='Specify a file used for describing and generating the tests') # TODO(kristijanburnik): Add option for the spec_json file. args = parser.parse_args() if args.spec: config.spec_directory = args.spec spec_filename = os.path.join(config.spec_directory, "spec.src.json") spec_json = util.load_spec_json(spec_filename) spec_validator.assert_valid_spec_json(spec_json) generate_test_source_files(config, spec_json, args.target)
def main(config): parser = argparse.ArgumentParser(description='Test suite generator utility') parser.add_argument('-t', '--target', type = str, choices = ("release", "debug"), default = "release", help = 'Sets the appropriate template for generating tests') parser.add_argument('-s', '--spec', type = str, default = None, help = 'Specify a file used for describing and generating the tests') # TODO(kristijanburnik): Add option for the spec_json file. args = parser.parse_args() if args.spec: config.spec_directory = args.spec spec_filename = os.path.join(config.spec_directory, "spec.src.json") spec_json = util.load_spec_json(spec_filename) spec_validator.assert_valid_spec_json(spec_json) generate_test_source_files(config, spec_json, args.target)