def test_submodule_default_handler_shows_usage(self): json_data = { 'modules': { 'root': { 'modules': { 'command': { 'args': [{ 'long': '--foo' }] } } } } } with open(DEFINITIONS_FILE, 'w') as f: f.write(json.dumps(json_data)) argparser = get_parser('root.py') opts = argparser.parse_args(['command']) buf = [] with record_stdout(buf): opts.func(opts) actual = ''.join(buf) expected = '\n'.join([ 'usage: command [-h] [--foo FOO]', '', 'optional arguments:', ' -h, --help show this help message and exit', ' --foo FOO\n', ]) self.assertEqual(actual, expected)
def test_submodule_handler_global_callable_decorator(self): json_data = { 'modules': { 'root': { 'modules': { 'command': { 'args': [{ 'long': '--foo' }] } } } } } with open(DEFINITIONS_FILE, 'w') as f: f.write(json.dumps(json_data)) @callable('command') def get_opts(opts): return 'get_opts called: foo={}'.format(opts.foo) argparser = get_parser('root.py') opts = argparser.parse_args(['command', '--foo', 'bar']) expected = 'get_opts called: foo=bar' self.assertEqual(opts.func(opts), expected)
def test_simple_template(self): json_data = { 'modules': { 'root': { 'args': [], 'templates': { 'BASIC': { 'args': [{ 'long': '--foo' }] } }, 'modules': { 'command': { 'template': 'BASIC' } } } } } with open(DEFINITIONS_FILE, 'w') as f: f.write(json.dumps(json_data)) argparser = get_parser('root.py') opts = argparser.parse_args(['command', '--foo', 'bar']) self.assertEqual(opts.foo, 'bar')
def test_nested_submodules(self): json_data = { 'modules': { 'root': { 'modules': { 'command': { 'args': [{ 'long': '--foo' }], 'modules': { 'subcommand': { 'args': [{ 'long': '--bar' }] } } } } } } } with open(DEFINITIONS_FILE, 'w') as f: f.write(json.dumps(json_data)) argparser = get_parser('root.py') opts = argparser.parse_args( ['command', '--foo', 'bar', 'subcommand', '--bar', 'baz']) self.assertEqual(opts.foo, 'bar') self.assertEqual(opts.bar, 'baz')
def cli_args(): parser = argutil.get_parser("sr_due_date.py", "Update 311 SRs with their due date.", "app_name") args = parser.parse_args() return args
def main(): parser = argutil.get_parser() opts = parser.parse_args() if opts.version: from .__version__ import VERSION print(VERSION) else: opts.func(opts)
def test_error_unknown_template(self): json_data = { 'modules': { 'root': { 'args': [], 'modules': { 'command': { 'template': 'BASIC' } } } } } with open(DEFINITIONS_FILE, 'w') as f: f.write(json.dumps(json_data)) with self.assertRaises(KeyError): get_parser('root.py')
def cli_args(): parser = argutil.get_parser("knack_json.py", "Write Knack records to JSON.", "dataset", "app_name") args = parser.parse_args() return args
def cli_args(): parser = argutil.get_parser( "backup.py", "Backup objects from knack application to csv.", "app_name") parsed = parser.parse_args() return parsed
def cli_args(): parser = argutil.get_parser( "metadata_updater.py", "Retrieve Knack app data and update new and changed object and field metadata records.", "app_name", ) args = parser.parse_args() return args
def cli_args(): parser = argutil.get_parser( "location_updater.py", "Update location attributes via point-in-poly against various intersecting geospatial data layers.", "app_name", ) args = parser.parse_args() return args
def cli_args(): parser = argutil.get_parser( "tcp_business_days.py", "Calculate # of business days elapsed and update records accordingly.", "app_name", ) args = parser.parse_args() return args
def cli_args(): parser = argutil.get_parser( "signal_pm_copier.py", "Check traffic signal prevent maintenance (PM) records and insert copies of PM records to signals' secondary signals", "app_name", ) args = parser.parse_args() return args
def cli_args(): parser = argutil.get_parser( "secondary_signals_updater.py", "Update traffic signal records with secondary signal relationships.", "app_name", ) args = parser.parse_args() return args
def cli_args(): parser = argutil.get_parser( "dms_message_pub.py", "Extract DMS message from traffic management system and load into Data Tracker.", "app_name", ) args = parser.parse_args() return args
def cli_args(): parser = argutil.get_parser( "detection_status_signals.py", "Assign detection status to signals based on status of its detectors.", "app_name", ) parsed = parser.parse_args() return parsed
def cli_args(): parser = argutil.get_parser( "task_orders.py", "Check controller's office for new task orders and upload to Data Tracker.", "app_name", ) args = parser.parse_args() return args
def cli_args(): parser = argutil.get_parser( "esb_xml_gen.py", "Generate XML message to update 311 Service Reqeusts via Enterprise Service Bus.", "app_name", ) args = parser.parse_args() return args
def cli_args(): parser = argutil.get_parser( "sr_asset_assign.py", "Link 311 service request to nearby assset record.", "device_type", "app_name", ) args = parser.parse_args() return args
def cli_args(): parser = argutil.get_parser( "signal_requests_ranker.py", "Assign traffic and PHB request based on evaluation score.", "eval_type", "app_name", ) args = parser.parse_args() return args
def cli_args(): parser = argutil.get_parser( "device_status_log.py", "Generate connectivity statistics and upload to Knack application.", "device_type", "app_name", ) args = parser.parse_args() return args
def cli_args(): parser = argutil.get_parser( "street_seg_updater.py", "Update street segment attributes from authoritative GIS layer.", "app_name", "--last_run_date", ) args = parser.parse_args() return args
def cli_args(): parser = argutil.get_parser( "pgrest_data_pub.py", "Publish Knack Data to postgREST.", "dataset", "app_name", "--last_run_date", ) args = parser.parse_args() return args
def cli_args(): parser = argutil.get_parser( "device_status_check.py", "Ping network devices to verify connenectivity.", "device_type", "app_name", "--replace", ) args = parser.parse_args() return args
def cli_args(): parser = argutil.get_parser( "signs_agol.py", "Publish Signs Work Order Data to ArcGIS Online", "app_name", "--replace", "--last_run_date", ) args = parser.parse_args() return args
def cli_args(): parser = argutil.get_parser( "pgrest_data_pub.py", "Publish PostgREST data to Socrata and ArcGIS Online", "dataset", "--destination", "--replace", "--last_run_date", ) args = parser.parse_args() return args
def cli_args(): parser = argutil.get_parser( "mds.py", "Extract data from MDS endpoint and load to staging database.", "provider_name", "--start", "--end", "--replace", ) args = parser.parse_args() return args
def test_template_examples(self): json_data = { 'modules': { 'root': { 'args': [], 'templates': { 'BASIC': { 'examples': [{ 'usage': '--foo', 'description': 'usage from template' }] }, 'COMPLEX': { 'parent': 'BASIC', 'examples': [{ 'usage': '--bar', 'description': 'usage from nested template' }] } }, 'modules': { 'command': { 'template': 'COMPLEX', 'examples': [{ 'usage': '--baz', 'description': 'usage from submodule' }] } } } } } with open(DEFINITIONS_FILE, 'w') as f: f.write(json.dumps(json_data)) argparser = get_parser('root.py') expected = ['examples:'] for u, d in [ ('--foo', 'usage from template'), ('--bar', 'usage from nested template'), ('--baz', 'usage from submodule'), ]: expected.append(' {:<44}{}'.format(u, d)) self.assertEqual( argparser._subparsers._group_actions[0].choices['command'].epilog, '\n'.join(expected))
def cli_args(): """Summary Returns: TYPE: Description """ parser = argutil.get_parser( "radar_count_pub.py", "Publish radar count data from KITS DB to City of Austin Open Data Portal.", "--replace", ) args = parser.parse_args() return args
def cli_args(): parser = argutil.get_parser( "knack_data_pub.py", "Publish Knack data to Socrata and ArcGIS Online", "dataset", "app_name", "--destination", "--replace", "--last_run_date", ) parsed = parser.parse_args() return parsed