format code, removed unused variables and deprecated usage
R=sigmund@google.com
Review URL: https://codereview.chromium.org//849023002
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 916bca9..771bcd0 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,7 +1,11 @@
-## 0.12.3-dev
+## 0.12.2+2
* Updated dependency constraint on `unittest`.
+* Formatted source code.
+
+* Fixed use of deprecated API in example.
+
## 0.12.2+1
* Fix the built-in `help` command for `CommandRunner`.
diff --git a/example/test_runner.dart b/example/test_runner.dart
index fac1690..9480f41 100644
--- a/example/test_runner.dart
+++ b/example/test_runner.dart
@@ -14,92 +14,125 @@
main() {
var parser = new ArgParser();
- parser.addOption('mode', abbr: 'm', defaultsTo: 'debug',
+ parser.addOption('mode',
+ abbr: 'm',
+ defaultsTo: 'debug',
help: 'Mode in which to run the tests',
allowed: ['all', 'debug', 'release']);
- parser.addOption('compiler', abbr: 'c', defaultsTo: 'none',
+ parser.addOption('compiler',
+ abbr: 'c',
+ defaultsTo: 'none',
help: 'Specify any compilation step (if needed).',
allowed: ['none', 'dart2js', 'dartc'],
allowedHelp: {
- 'none': 'Do not compile the Dart code (run native Dart code on the'
- ' VM).\n(only valid with the following runtimes: vm, drt)',
- 'dart2js': 'Compile dart code to JavaScript by running dart2js.\n'
- '(only valid with the following runtimes: d8, drt, chrome\n'
- 'safari, ie, firefox, opera, none (compile only))',
- 'dartc': 'Perform static analysis on Dart code by running dartc.\n'
- '(only valid with the following runtimes: none)',
- });
+ 'none': 'Do not compile the Dart code (run native Dart code on the'
+ ' VM).\n(only valid with the following runtimes: vm, drt)',
+ 'dart2js': 'Compile dart code to JavaScript by running dart2js.\n'
+ '(only valid with the following runtimes: d8, drt, chrome\n'
+ 'safari, ie, firefox, opera, none (compile only))',
+ 'dartc': 'Perform static analysis on Dart code by running dartc.\n'
+ '(only valid with the following runtimes: none)',
+ });
- parser.addOption('runtime', abbr: 'r', defaultsTo: 'vm',
+ parser.addOption('runtime',
+ abbr: 'r',
+ defaultsTo: 'vm',
help: 'Where the tests should be run.',
- allowed: ['vm', 'd8', 'drt', 'dartium', 'ff', 'firefox', 'chrome',
- 'safari', 'ie', 'opera', 'none'],
+ allowed: [
+ 'vm',
+ 'd8',
+ 'drt',
+ 'dartium',
+ 'ff',
+ 'firefox',
+ 'chrome',
+ 'safari',
+ 'ie',
+ 'opera',
+ 'none'
+ ],
allowedHelp: {
- 'vm': 'Run Dart code on the standalone dart vm.',
- 'd8': 'Run JavaScript from the command line using v8.',
- // TODO(antonm): rename flag.
- 'drt': 'Run Dart or JavaScript in the headless version of Chrome,\n'
- 'content shell.',
- 'dartium': 'Run Dart or JavaScript in Dartium.',
- 'ff': 'Run JavaScript in Firefox',
- 'chrome': 'Run JavaScript in Chrome',
- 'safari': 'Run JavaScript in Safari',
- 'ie': 'Run JavaScript in Internet Explorer',
- 'opera': 'Run JavaScript in Opera',
- 'none': 'No runtime, compile only (for example, used for dartc static\n'
- 'analysis tests).',
- });
+ 'vm': 'Run Dart code on the standalone dart vm.',
+ 'd8': 'Run JavaScript from the command line using v8.',
+ // TODO(antonm): rename flag.
+ 'drt': 'Run Dart or JavaScript in the headless version of Chrome,\n'
+ 'content shell.',
+ 'dartium': 'Run Dart or JavaScript in Dartium.',
+ 'ff': 'Run JavaScript in Firefox',
+ 'chrome': 'Run JavaScript in Chrome',
+ 'safari': 'Run JavaScript in Safari',
+ 'ie': 'Run JavaScript in Internet Explorer',
+ 'opera': 'Run JavaScript in Opera',
+ 'none': 'No runtime, compile only (for example, used for dartc static\n'
+ 'analysis tests).',
+ });
- parser.addOption('arch', abbr: 'a', defaultsTo: 'ia32',
+ parser.addOption('arch',
+ abbr: 'a',
+ defaultsTo: 'ia32',
help: 'The architecture to run tests for',
allowed: ['all', 'ia32', 'x64', 'simarm']);
- parser.addOption('system', abbr: 's', defaultsTo: Platform.operatingSystem,
+ parser.addOption('system',
+ abbr: 's',
+ defaultsTo: Platform.operatingSystem,
help: 'The operating system to run tests on',
allowed: ['linux', 'macos', 'windows']);
- parser.addFlag('checked', defaultsTo: false,
- help: 'Run tests in checked mode');
+ parser.addFlag('checked',
+ defaultsTo: false, help: 'Run tests in checked mode');
- parser.addFlag('host-checked', defaultsTo: false,
- help: 'Run compiler in checked mode');
+ parser.addFlag('host-checked',
+ defaultsTo: false, help: 'Run compiler in checked mode');
- parser.addOption('timeout', abbr: 't',
- help: 'Timeout in seconds');
+ parser.addOption('timeout', abbr: 't', help: 'Timeout in seconds');
- parser.addOption('progress', abbr: 'p', defaultsTo: 'compact',
+ parser.addOption('progress',
+ abbr: 'p',
+ defaultsTo: 'compact',
help: 'Progress indication mode',
- allowed: ['compact', 'color', 'line', 'verbose', 'silent', 'status',
- 'buildbot']);
+ allowed: [
+ 'compact',
+ 'color',
+ 'line',
+ 'verbose',
+ 'silent',
+ 'status',
+ 'buildbot'
+ ]);
- parser.addFlag('report', defaultsTo: false,
+ parser.addFlag('report',
+ defaultsTo: false,
help: 'Print a summary report of the number of tests, by expectation');
- parser.addOption('tasks', abbr: 'j',
+ parser.addOption('tasks',
+ abbr: 'j',
defaultsTo: Platform.numberOfProcessors.toString(),
help: 'The number of parallel tasks to run');
- parser.addOption('shards', defaultsTo: '1',
+ parser.addOption('shards',
+ defaultsTo: '1',
help: 'The number of instances that the tests will be sharded over');
- parser.addOption('shard', defaultsTo: '1',
+ parser.addOption('shard',
+ defaultsTo: '1',
help: 'The index of this instance when running in sharded mode');
- parser.addFlag('verbose', abbr: 'v', defaultsTo: false,
- help: 'Verbose output');
+ parser.addFlag('verbose',
+ abbr: 'v', defaultsTo: false, help: 'Verbose output');
- parser.addFlag('list', defaultsTo: false,
- help: 'List tests only, do not run them');
+ parser.addFlag('list',
+ defaultsTo: false, help: 'List tests only, do not run them');
- parser.addFlag('keep-generated-tests', defaultsTo: false,
+ parser.addFlag('keep-generated-tests',
+ defaultsTo: false,
help: 'Keep the generated files in the temporary directory');
- parser.addFlag('valgrind', defaultsTo: false,
- help: 'Run tests through valgrind');
+ parser.addFlag('valgrind',
+ defaultsTo: false, help: 'Run tests through valgrind');
- parser.addOption('special-command',
- help: """
+ parser.addOption('special-command', help: """
Special command support. Wraps the command line in
a special command. The special command should contain
an '@' character which will be replaced by the normal
@@ -111,16 +144,14 @@
'python -u valgrind.py dart file.dart suffix'""");
parser.addFlag('time',
- help: 'Print timing information after running tests',
- defaultsTo: false);
+ help: 'Print timing information after running tests', defaultsTo: false);
- parser.addOption('dart', help: 'Path to dart executable');
- parser.addOption('drt', help: 'Path to content shell executable');
+ parser.addOption('dart', help: 'Path to dart executable');
+ parser.addOption('drt', help: 'Path to content shell executable');
parser.addOption('dartium', help: 'Path to Dartium Chrome executable');
- parser.addFlag('batch', abbr: 'b',
- help: 'Run browser tests in batch mode',
- defaultsTo: true);
+ parser.addFlag('batch',
+ abbr: 'b', help: 'Run browser tests in batch mode', defaultsTo: true);
- print(parser.getUsage());
+ print(parser.usage);
}
diff --git a/lib/command_runner.dart b/lib/command_runner.dart
index bbc19b2..d728cb0 100644
--- a/lib/command_runner.dart
+++ b/lib/command_runner.dart
@@ -61,8 +61,7 @@
}
/// An unmodifiable view of all top-level commands defined for this runner.
- Map<String, Command> get commands =>
- new UnmodifiableMapView(_commands);
+ Map<String, Command> get commands => new UnmodifiableMapView(_commands);
final _commands = new Map<String, Command>();
/// The top-level argument parser.
@@ -73,8 +72,8 @@
final argParser = new ArgParser();
CommandRunner(this.executableName, this.description) {
- argParser.addFlag('help', abbr: 'h', negatable: false,
- help: 'Print this usage information.');
+ argParser.addFlag('help',
+ abbr: 'h', negatable: false, help: 'Print this usage information.');
addCommand(new HelpCommand());
}
@@ -206,9 +205,9 @@
parents.add(runner.executableName);
var invocation = parents.reversed.join(" ");
- return _subcommands.isNotEmpty ?
- "$invocation <subcommand> [arguments]" :
- "$invocation [arguments]";
+ return _subcommands.isNotEmpty
+ ? "$invocation <subcommand> [arguments]"
+ : "$invocation [arguments]";
}
/// The command's parent command, if this is a subcommand.
@@ -263,8 +262,8 @@
/// Returns [usage] with [description] removed from the beginning.
String get _usageWithoutDescription {
var buffer = new StringBuffer()
- ..writeln('Usage: $invocation')
- ..writeln(argParser.usage);
+ ..writeln('Usage: $invocation')
+ ..writeln(argParser.usage);
if (_subcommands.isNotEmpty) {
buffer.writeln();
@@ -283,8 +282,7 @@
}
/// An unmodifiable view of all sublevel commands of this command.
- Map<String, Command> get subcommands =>
- new UnmodifiableMapView(_subcommands);
+ Map<String, Command> get subcommands => new UnmodifiableMapView(_subcommands);
final _subcommands = new Map<String, Command>();
/// Whether or not this command should be hidden from help listings.
@@ -321,8 +319,8 @@
final aliases = const <String>[];
Command() {
- argParser.addFlag('help', abbr: 'h', negatable: false,
- help: 'Print this usage information.');
+ argParser.addFlag('help',
+ abbr: 'h', negatable: false, help: 'Print this usage information.');
}
/// Runs this command.
@@ -361,8 +359,8 @@
String _getCommandUsage(Map<String, Command> commands,
{bool isSubcommand: false}) {
// Don't include aliases.
- var names = commands.keys
- .where((name) => !commands[name].aliases.contains(name));
+ var names =
+ commands.keys.where((name) => !commands[name].aliases.contains(name));
// Filter out hidden ones, unless they are all hidden.
var visible = names.where((name) => !commands[name].hidden);
@@ -372,8 +370,8 @@
names = names.toList()..sort();
var length = names.map((name) => name.length).reduce(math.max);
- var buffer = new StringBuffer(
- 'Available ${isSubcommand ? "sub" : ""}commands:');
+ var buffer =
+ new StringBuffer('Available ${isSubcommand ? "sub" : ""}commands:');
for (var name in names) {
buffer.writeln();
buffer.write(' ${padRight(name, length)} '
diff --git a/lib/src/arg_parser.dart b/lib/src/arg_parser.dart
index 03d8d3f..8337c42 100644
--- a/lib/src/arg_parser.dart
+++ b/lib/src/arg_parser.dart
@@ -33,18 +33,19 @@
/// after it finds an argument that is neither an option nor a command.
/// This allows options to be specified after regular arguments. Defaults to
/// `false`.
- factory ArgParser({bool allowTrailingOptions}) =>
- new ArgParser._(<String, Option>{}, <String, ArgParser>{},
- allowTrailingOptions: allowTrailingOptions);
+ factory ArgParser({bool allowTrailingOptions}) => new ArgParser._(
+ <String, Option>{}, <String, ArgParser>{},
+ allowTrailingOptions: allowTrailingOptions);
ArgParser._(Map<String, Option> options, Map<String, ArgParser> commands,
- {bool allowTrailingOptions}) :
- this._options = options,
- this.options = new UnmodifiableMapView(options),
- this._commands = commands,
- this.commands = new UnmodifiableMapView(commands),
- this.allowTrailingOptions = allowTrailingOptions != null ?
- allowTrailingOptions : false;
+ {bool allowTrailingOptions})
+ : this._options = options,
+ this.options = new UnmodifiableMapView(options),
+ this._commands = commands,
+ this.commands = new UnmodifiableMapView(commands),
+ this.allowTrailingOptions = allowTrailingOptions != null
+ ? allowTrailingOptions
+ : false;
/// Defines a command.
///
@@ -86,8 +87,8 @@
void _addOption(String name, String abbr, String help, String valueHelp,
List<String> allowed, Map<String, String> allowedHelp, defaultsTo,
- void callback(value), OptionType type, {bool negatable: false,
- bool hide: false}) {
+ void callback(value), OptionType type,
+ {bool negatable: false, bool hide: false}) {
// Make sure the name isn't in use.
if (_options.containsKey(name)) {
throw new ArgumentError('Duplicate option "$name".');
@@ -103,8 +104,8 @@
}
_options[name] = newOption(name, abbr, help, valueHelp, allowed,
- allowedHelp, defaultsTo, callback, type, negatable: negatable,
- hide: hide);
+ allowedHelp, defaultsTo, callback, type,
+ negatable: negatable, hide: hide);
}
/// Parses [args], a list of command-line arguments, matches them against the
diff --git a/lib/src/arg_results.dart b/lib/src/arg_results.dart
index 815d8dd..de9cca7 100644
--- a/lib/src/arg_results.dart
+++ b/lib/src/arg_results.dart
@@ -13,8 +13,8 @@
/// Since [ArgResults] doesn't have a public constructor, this lets [Parser]
/// get to it. This function isn't exported to the public API of the package.
ArgResults newArgResults(ArgParser parser, Map<String, dynamic> parsed,
- String name, ArgResults command, List<String> rest,
- List<String> arguments) {
+ String name, ArgResults command, List<String> rest,
+ List<String> arguments) {
return new ArgResults._(parser, parsed, name, command, rest, arguments);
}
diff --git a/lib/src/option.dart b/lib/src/option.dart
index 6edc8ab..b2292db 100644
--- a/lib/src/option.dart
+++ b/lib/src/option.dart
@@ -43,12 +43,13 @@
Option._(this.name, this.abbreviation, this.help, this.valueHelp,
List<String> allowed, Map<String, String> allowedHelp, this.defaultValue,
- this.callback, this.type, {this.negatable, this.hide: false}) :
- this.allowed = allowed == null ?
- null : new UnmodifiableListView(allowed),
- this.allowedHelp = allowedHelp == null ?
- null : new UnmodifiableMapView(allowedHelp) {
-
+ this.callback, this.type, {this.negatable, this.hide: false})
+ : this.allowed = allowed == null
+ ? null
+ : new UnmodifiableListView(allowed),
+ this.allowedHelp = allowedHelp == null
+ ? null
+ : new UnmodifiableMapView(allowedHelp) {
if (name.isEmpty) {
throw new ArgumentError('Name cannot be empty.');
} else if (name.startsWith('-')) {
@@ -63,7 +64,7 @@
if (abbreviation != null) {
if (abbreviation.length != 1) {
throw new ArgumentError('Abbreviation must be null or have length 1.');
- } else if(abbreviation == '-') {
+ } else if (abbreviation == '-') {
throw new ArgumentError('Abbreviation cannot be "-".');
}
@@ -121,4 +122,4 @@
final String name;
const OptionType._(this.name);
-}
\ No newline at end of file
+}
diff --git a/lib/src/parser.dart b/lib/src/parser.dart
index 9cd141c..1e297b0 100644
--- a/lib/src/parser.dart
+++ b/lib/src/parser.dart
@@ -92,8 +92,8 @@
// Add in the leftover arguments we didn't parse to the innermost command.
rest.addAll(args);
args.clear();
- return newArgResults(grammar, results, commandName, commandResults, rest,
- arguments);
+ return newArgResults(
+ grammar, results, commandName, commandResults, rest, arguments);
}
/// Pulls the value for [option] from the second argument in [args].
@@ -101,8 +101,7 @@
/// Validates that there is a valid value there.
void readNextArgAsValue(Option option) {
// Take the option argument from the next command line arg.
- validate(args.length > 0,
- 'Missing argument for "${option.name}".');
+ validate(args.length > 0, 'Missing argument for "${option.name}".');
// Make sure it isn't an option itself.
validate(!_ABBR_OPT.hasMatch(current) && !_LONG_OPT.hasMatch(current),
@@ -124,8 +123,8 @@
var option = grammar.findByAbbreviation(soloOpt[1]);
if (option == null) {
// Walk up to the parent command if possible.
- validate(parent != null,
- 'Could not find an option or flag "-${soloOpt[1]}".');
+ validate(
+ parent != null, 'Could not find an option or flag "-${soloOpt[1]}".');
return parent.parseSoloOption();
}
@@ -153,8 +152,8 @@
var first = grammar.findByAbbreviation(c);
if (first == null) {
// Walk up to the parent command if possible.
- validate(parent != null,
- 'Could not find an option with short name "-$c".');
+ validate(
+ parent != null, 'Could not find an option with short name "-$c".');
return parent.parseAbbreviation(innermostCommand);
} else if (!first.isFlag) {
// The first character is a non-flag option, so the rest must be the
@@ -165,8 +164,8 @@
// If we got some non-flag characters, then it must be a value, but
// if we got here, it's a flag, which is wrong.
validate(abbrOpt[2] == '',
- 'Option "-$c" is a flag and cannot handle value '
- '"${abbrOpt[1].substring(1)}${abbrOpt[2]}".');
+ 'Option "-$c" is a flag and cannot handle value '
+ '"${abbrOpt[1].substring(1)}${abbrOpt[2]}".');
// Not an option, so all characters should be flags.
// We use "innermostCommand" here so that if a parent command parses the
@@ -186,16 +185,16 @@
var option = grammar.findByAbbreviation(c);
if (option == null) {
// Walk up to the parent command if possible.
- validate(parent != null,
- 'Could not find an option with short name "-$c".');
+ validate(
+ parent != null, 'Could not find an option with short name "-$c".');
parent.parseShortFlag(c);
return;
}
// In a list of short options, only the first can be a non-flag. If
// we get here we've checked that already.
- validate(option.isFlag,
- 'Option "-$c" must be a flag to be in a collapsed "-".');
+ validate(
+ option.isFlag, 'Option "-$c" must be a flag to be in a collapsed "-".');
setOption(results, option, true);
}
diff --git a/pubspec.yaml b/pubspec.yaml
index deb8c15..c625ad0 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,5 +1,5 @@
name: args
-version: 0.12.3-dev
+version: 0.12.2+2
author: "Dart Team <misc@dartlang.org>"
homepage: https://github.com/dart-lang/args
description: >
diff --git a/test/args_test.dart b/test/args_test.dart
index 77c23c3..dd1634d 100644
--- a/test/args_test.dart
+++ b/test/args_test.dart
@@ -29,7 +29,7 @@
});
test('throws ArgumentError if the abbreviation is longer '
- 'than one character', () {
+ 'than one character', () {
var parser = new ArgParser();
throwsIllegalArg(() => parser.addFlag('flummox', abbr: 'flu'));
});
@@ -37,7 +37,7 @@
test('throws ArgumentError if a flag name is invalid', () {
var parser = new ArgParser();
- for(var name in _INVALID_OPTIONS) {
+ for (var name in _INVALID_OPTIONS) {
var reason = '${Error.safeToString(name)} is not valid';
throwsIllegalArg(() => parser.addFlag(name), reason: reason);
}
@@ -46,7 +46,7 @@
test('accepts valid flag names', () {
var parser = new ArgParser();
- for(var name in _VALID_OPTIONS) {
+ for (var name in _VALID_OPTIONS) {
var reason = '${Error.safeToString(name)} is valid';
expect(() => parser.addFlag(name), returnsNormally, reason: reason);
}
@@ -73,7 +73,7 @@
});
test('throws ArgumentError if the abbreviation is longer '
- 'than one character', () {
+ 'than one character', () {
var parser = new ArgParser();
throwsIllegalArg(() => parser.addOption('flummox', abbr: 'flu'));
});
@@ -85,7 +85,7 @@
test('throws ArgumentError if the abbreviation is an invalid value', () {
var parser = new ArgParser();
- for(var name in _INVALID_OPTIONS.where((v) => v != null)) {
+ for (var name in _INVALID_OPTIONS.where((v) => v != null)) {
throwsIllegalArg(() => parser.addOption('flummox', abbr: name));
}
});
@@ -103,7 +103,7 @@
test('throws ArgumentError if an option name is invalid', () {
var parser = new ArgParser();
- for(var name in _INVALID_OPTIONS) {
+ for (var name in _INVALID_OPTIONS) {
var reason = '${Error.safeToString(name)} is not valid';
throwsIllegalArg(() => parser.addOption(name), reason: reason);
}
@@ -112,7 +112,7 @@
test('accepts valid option names', () {
var parser = new ArgParser();
- for(var name in _VALID_OPTIONS) {
+ for (var name in _VALID_OPTIONS) {
var reason = '${Error.safeToString(name)} is valid';
expect(() => parser.addOption(name), returnsNormally, reason: reason);
}
@@ -286,24 +286,28 @@
}
const _INVALID_OPTIONS = const [
- ' ', '', '-', '--', '--foo',
- ' with space',
- 'with\ttab',
- 'with\rcarriage\rreturn',
- 'with\nline\nfeed',
- "'singlequotes'",
- '"doublequotes"',
- 'back\\slash',
- 'forward/slash'
+ ' ',
+ '',
+ '-',
+ '--',
+ '--foo',
+ ' with space',
+ 'with\ttab',
+ 'with\rcarriage\rreturn',
+ 'with\nline\nfeed',
+ "'singlequotes'",
+ '"doublequotes"',
+ 'back\\slash',
+ 'forward/slash'
];
const _VALID_OPTIONS = const [
- 'a' // One character.
- 'contains-dash',
- 'contains_underscore',
- 'ends-with-dash-',
- 'contains--doubledash--',
- '1starts-with-number',
- 'contains-a-1number',
- 'ends-with-a-number8'
+ 'a' // One character.
+ 'contains-dash',
+ 'contains_underscore',
+ 'ends-with-dash-',
+ 'contains--doubledash--',
+ '1starts-with-number',
+ 'contains-a-1number',
+ 'ends-with-a-number8'
];
diff --git a/test/command_parse_test.dart b/test/command_parse_test.dart
index ac53056..e336e71 100644
--- a/test/command_parse_test.dart
+++ b/test/command_parse_test.dart
@@ -34,8 +34,7 @@
group('ArgParser.parse()', () {
test('parses a command', () {
- var parser = new ArgParser();
- var command = parser.addCommand('install');
+ var parser = new ArgParser()..addCommand('install');
var args = parser.parse(['install']);
@@ -53,9 +52,9 @@
});
test('parses a parent solo option before the command', () {
- var parser = new ArgParser();
- parser.addOption('mode', abbr: 'm');
- var command = parser.addCommand('install');
+ var parser = new ArgParser()
+ ..addOption('mode', abbr: 'm')
+ ..addCommand('install');
var args = parser.parse(['-m', 'debug', 'install']);
expect(args['mode'], equals('debug'));
@@ -63,9 +62,9 @@
});
test('parses a parent solo option after the command', () {
- var parser = new ArgParser();
- parser.addOption('mode', abbr: 'm');
- var command = parser.addCommand('install');
+ var parser = new ArgParser()
+ ..addOption('mode', abbr: 'm')
+ ..addCommand('install');
var args = parser.parse(['install', '-m', 'debug']);
expect(args['mode'], equals('debug'));
@@ -73,9 +72,9 @@
});
test('parses a parent option before the command', () {
- var parser = new ArgParser();
- parser.addFlag('verbose');
- var command = parser.addCommand('install');
+ var parser = new ArgParser()
+ ..addFlag('verbose')
+ ..addCommand('install');
var args = parser.parse(['--verbose', 'install']);
expect(args['verbose'], isTrue);
@@ -83,9 +82,9 @@
});
test('parses a parent option after the command', () {
- var parser = new ArgParser();
- parser.addFlag('verbose');
- var command = parser.addCommand('install');
+ var parser = new ArgParser()
+ ..addFlag('verbose')
+ ..addCommand('install');
var args = parser.parse(['install', '--verbose']);
expect(args['verbose'], isTrue);
@@ -93,9 +92,9 @@
});
test('parses a parent negated option before the command', () {
- var parser = new ArgParser();
- parser.addFlag('verbose', defaultsTo: true);
- var command = parser.addCommand('install');
+ var parser = new ArgParser()
+ ..addFlag('verbose', defaultsTo: true)
+ ..addCommand('install');
var args = parser.parse(['--no-verbose', 'install']);
expect(args['verbose'], isFalse);
@@ -103,9 +102,9 @@
});
test('parses a parent negated option after the command', () {
- var parser = new ArgParser();
- parser.addFlag('verbose', defaultsTo: true);
- var command = parser.addCommand('install');
+ var parser = new ArgParser()
+ ..addFlag('verbose', defaultsTo: true)
+ ..addCommand('install');
var args = parser.parse(['install', '--no-verbose']);
expect(args['verbose'], isFalse);
@@ -113,10 +112,10 @@
});
test('parses a parent abbreviation before the command', () {
- var parser = new ArgParser();
- parser.addFlag('debug', abbr: 'd');
- parser.addFlag('verbose', abbr: 'v');
- var command = parser.addCommand('install');
+ var parser = new ArgParser()
+ ..addFlag('debug', abbr: 'd')
+ ..addFlag('verbose', abbr: 'v')
+ ..addCommand('install');
var args = parser.parse(['-dv', 'install']);
expect(args['debug'], isTrue);
@@ -125,10 +124,10 @@
});
test('parses a parent abbreviation after the command', () {
- var parser = new ArgParser();
- parser.addFlag('debug', abbr: 'd');
- parser.addFlag('verbose', abbr: 'v');
- var command = parser.addCommand('install');
+ var parser = new ArgParser()
+ ..addFlag('debug', abbr: 'd')
+ ..addFlag('verbose', abbr: 'v')
+ ..addCommand('install');
var args = parser.parse(['install', '-dv']);
expect(args['debug'], isTrue);
@@ -180,9 +179,9 @@
test('option is given to innermost command that can take it', () {
var parser = new ArgParser();
parser.addFlag('verbose');
- var command = parser.addCommand('cmd');
- command.addFlag('verbose');
- var subcommand = command.addCommand('subcmd');
+ parser.addCommand('cmd')
+ ..addFlag('verbose')
+ ..addCommand('subcmd');
var args = parser.parse(['cmd', 'subcmd', '--verbose']);
expect(args['verbose'], isFalse);
@@ -193,8 +192,7 @@
test('remaining arguments are given to the innermost command', () {
var parser = new ArgParser();
- var command = parser.addCommand('cmd');
- var subcommand = command.addCommand('subcmd');
+ parser.addCommand('cmd')..addCommand('subcmd');
var args = parser.parse(['cmd', 'subcmd', 'other', 'stuff']);
expect(args.command.name, equals('cmd'));
diff --git a/test/command_runner_test.dart b/test/command_runner_test.dart
index ba7faeb..904a038 100644
--- a/test/command_runner_test.dart
+++ b/test/command_runner_test.dart
@@ -4,7 +4,6 @@
library command_runner_test;
-import 'package:args/args.dart';
import 'package:args/command_runner.dart';
import 'package:unittest/unittest.dart';
@@ -28,8 +27,7 @@
});
test(".invocation has a sane default", () {
- expect(runner.invocation,
- equals("test <command> [arguments]"));
+ expect(runner.invocation, equals("test <command> [arguments]"));
});
group(".usage", () {
@@ -200,7 +198,7 @@
Run "test help" to see global options.
"""));
- });
+ });
test("prints its own usage", () {
expect(() => runner.run(["help", "help"]), prints("""
@@ -229,31 +227,28 @@
});
test("includes the footer in usage errors", () {
- expect(runner.run(["--bad"]),
- throwsUsageError('Could not find an option named "bad".',
- "$_DEFAULT_USAGE\nAlso, footer!"));
+ expect(runner.run(["--bad"]), throwsUsageError(
+ 'Could not find an option named "bad".',
+ "$_DEFAULT_USAGE\nAlso, footer!"));
});
});
group("throws a useful error when", () {
test("arg parsing fails", () {
- expect(runner.run(["--bad"]),
- throwsUsageError('Could not find an option named "bad".',
- _DEFAULT_USAGE));
+ expect(runner.run(["--bad"]), throwsUsageError(
+ 'Could not find an option named "bad".', _DEFAULT_USAGE));
});
test("a top-level command doesn't exist", () {
- expect(runner.run(["bad"]),
- throwsUsageError('Could not find a command named "bad".',
- _DEFAULT_USAGE));
+ expect(runner.run(["bad"]), throwsUsageError(
+ 'Could not find a command named "bad".', _DEFAULT_USAGE));
});
test("a subcommand doesn't exist", () {
- runner.addCommand(
- new FooCommand()..addSubcommand(new AsyncCommand()));
+ runner.addCommand(new FooCommand()..addSubcommand(new AsyncCommand()));
- expect(runner.run(["foo bad"]),
- throwsUsageError('Could not find a command named "foo bad".', """
+ expect(runner.run(["foo bad"]), throwsUsageError(
+ 'Could not find a command named "foo bad".', """
Usage: test <command> [arguments]
Global options:
@@ -267,11 +262,10 @@
});
test("a subcommand wasn't passed", () {
- runner.addCommand(
- new FooCommand()..addSubcommand(new AsyncCommand()));
+ runner.addCommand(new FooCommand()..addSubcommand(new AsyncCommand()));
- expect(runner.run(["foo"]),
- throwsUsageError('Missing subcommand for "test foo".', """
+ expect(runner.run(["foo"]), throwsUsageError(
+ 'Missing subcommand for "test foo".', """
Usage: test foo <subcommand> [arguments]
-h, --help Print this usage information.
@@ -284,8 +278,8 @@
test("a command that doesn't take arguments was given them", () {
runner.addCommand(new FooCommand());
- expect(runner.run(["foo", "bar"]),
- throwsUsageError('Command "foo" does not take any arguments.', """
+ expect(runner.run(["foo", "bar"]), throwsUsageError(
+ 'Command "foo" does not take any arguments.', """
Usage: test foo [arguments]
-h, --help Print this usage information.
diff --git a/test/command_test.dart b/test/command_test.dart
index ae3594b..fe3446c 100644
--- a/test/command_test.dart
+++ b/test/command_test.dart
@@ -4,7 +4,6 @@
library command_test;
-import 'package:args/args.dart';
import 'package:args/command_runner.dart';
import 'package:unittest/unittest.dart';
import 'utils.dart';
@@ -14,28 +13,25 @@
setUp(() {
foo = new FooCommand();
- // Make sure [Command.runner] is set up.
+ // Make sure [Command.runner] is set up.
new CommandRunner("test", "A test command runner.").addCommand(foo);
});
group(".invocation has a sane default", () {
test("without subcommands", () {
- expect(foo.invocation,
- equals("test foo [arguments]"));
+ expect(foo.invocation, equals("test foo [arguments]"));
});
test("with subcommands", () {
foo.addSubcommand(new AsyncCommand());
- expect(foo.invocation,
- equals("test foo <subcommand> [arguments]"));
+ expect(foo.invocation, equals("test foo <subcommand> [arguments]"));
});
test("for a subcommand", () {
var async = new AsyncCommand();
foo.addSubcommand(async);
- expect(async.invocation,
- equals("test foo async [arguments]"));
+ expect(async.invocation, equals("test foo async [arguments]"));
});
});
diff --git a/test/parse_test.dart b/test/parse_test.dart
index 56320d6..0dd00ba 100644
--- a/test/parse_test.dart
+++ b/test/parse_test.dart
@@ -105,17 +105,16 @@
var parser = new ArgParser();
parser.addFlag('a', callback: (value) => a = value);
- var args = parser.parse(['--a']);
+ parser.parse(['--a']);
expect(a, isTrue);
});
test('for absent flags are invoked with the default value', () {
var a;
var parser = new ArgParser();
- parser.addFlag('a', defaultsTo: false,
- callback: (value) => a = value);
+ parser.addFlag('a', defaultsTo: false, callback: (value) => a = value);
- var args = parser.parse([]);
+ parser.parse([]);
expect(a, isFalse);
});
@@ -124,7 +123,7 @@
var parser = new ArgParser();
parser.addFlag('a', callback: (value) => a = value);
- var args = parser.parse([]);
+ parser.parse([]);
expect(a, isFalse);
});
@@ -133,17 +132,16 @@
var parser = new ArgParser();
parser.addOption('a', callback: (value) => a = value);
- var args = parser.parse(['--a=v']);
+ parser.parse(['--a=v']);
expect(a, equals('v'));
});
test('for absent options are invoked with the default value', () {
var a;
var parser = new ArgParser();
- parser.addOption('a', defaultsTo: 'v',
- callback: (value) => a = value);
+ parser.addOption('a', defaultsTo: 'v', callback: (value) => a = value);
- var args = parser.parse([]);
+ parser.parse([]);
expect(a, equals('v'));
});
@@ -152,51 +150,53 @@
var parser = new ArgParser();
parser.addOption('a', callback: (value) => a = value);
- var args = parser.parse([]);
+ parser.parse([]);
expect(a, isNull);
});
test('for multiple present, allowMultiple, options are invoked with '
- 'value as a list', () {
+ 'value as a list', () {
var a;
var parser = new ArgParser();
- parser.addOption('a', allowMultiple: true,
- callback: (value) => a = value);
+ parser.addOption('a',
+ allowMultiple: true, callback: (value) => a = value);
- var args = parser.parse(['--a=v', '--a=x']);
+ parser.parse(['--a=v', '--a=x']);
expect(a, equals(['v', 'x']));
});
test('for single present, allowMultiple, options are invoked with '
- ' value as a single element list', () {
+ ' value as a single element list', () {
var a;
var parser = new ArgParser();
- parser.addOption('a', allowMultiple: true,
- callback: (value) => a = value);
+ parser.addOption('a',
+ allowMultiple: true, callback: (value) => a = value);
- var args = parser.parse(['--a=v']);
+ parser.parse(['--a=v']);
expect(a, equals(['v']));
});
test('for absent, allowMultiple, options are invoked with default '
- 'value as a list.', () {
+ 'value as a list.', () {
var a;
var parser = new ArgParser();
- parser.addOption('a', allowMultiple: true, defaultsTo: 'v',
+ parser.addOption('a',
+ allowMultiple: true,
+ defaultsTo: 'v',
callback: (value) => a = value);
- var args = parser.parse([]);
+ parser.parse([]);
expect(a, equals(['v']));
});
test('for absent, allowMultiple, options are invoked with value '
- 'as an empty list.', () {
+ 'as an empty list.', () {
var a;
var parser = new ArgParser();
- parser.addOption('a', allowMultiple: true,
- callback: (value) => a = value);
+ parser.addOption('a',
+ allowMultiple: true, callback: (value) => a = value);
- var args = parser.parse([]);
+ parser.parse([]);
expect(a, isEmpty);
});
});
@@ -392,11 +392,11 @@
var args = parser.parse(['--define=1']);
expect(args['define'], equals(['1']));
args = parser.parse(['--define=1', '--define=2']);
- expect(args['define'], equals(['1','2']));
+ expect(args['define'], equals(['1', '2']));
});
test('returns the default value for multi-valued arguments '
- 'if not explicitly set', () {
+ 'if not explicitly set', () {
var parser = new ArgParser();
parser.addOption('define', defaultsTo: '0', allowMultiple: true);
var args = parser.parse(['']);
diff --git a/test/trailing_options_test.dart b/test/trailing_options_test.dart
index 2ee860c..24f6ce7 100644
--- a/test/trailing_options_test.dart
+++ b/test/trailing_options_test.dart
@@ -19,9 +19,9 @@
parser = new ArgParser(allowTrailingOptions: true);
});
- void expectThrows(List<String> args) =>
- expect(() => parser.parse(args), throwsFormatException,
- reason: "with allowTrailingOptions: true");
+ void expectThrows(List<String> args) => expect(
+ () => parser.parse(args), throwsFormatException,
+ reason: "with allowTrailingOptions: true");
test('collects non-options in rest', () {
parser.addFlag('flag');
@@ -84,8 +84,8 @@
test("uses the innermost command's trailing options behavior", () {
var parser = new ArgParser(allowTrailingOptions: true);
parser.addFlag('flag', abbr: 'f');
- var command = parser.addCommand('cmd',
- new ArgParser(allowTrailingOptions: false));
+ var command =
+ parser.addCommand('cmd', new ArgParser(allowTrailingOptions: false));
command.addFlag('verbose', abbr: 'v');
var results = parser.parse(['a', '-f', 'b']);
diff --git a/test/usage_test.dart b/test/usage_test.dart
index 2c44ec3..e7f3e47 100644
--- a/test/usage_test.dart
+++ b/test/usage_test.dart
@@ -13,8 +13,7 @@
var parser = new ArgParser();
parser.addFlag('mode', help: 'The mode');
- validateUsage(parser,
- '''
+ validateUsage(parser, '''
--[no-]mode The mode
''');
});
@@ -23,8 +22,7 @@
var parser = new ArgParser();
parser.addFlag('mode', negatable: false, help: 'The mode');
- validateUsage(parser,
- '''
+ validateUsage(parser, '''
--mode The mode
''');
});
@@ -33,8 +31,7 @@
var parser = new ArgParser();
parser.addFlag('mode', help: 'The mode');
- validateUsage(parser,
- '''
+ validateUsage(parser, '''
--[no-]mode The mode
''');
});
@@ -44,8 +41,7 @@
parser.addFlag('mode', abbr: 'm', help: 'The mode');
parser.addOption('long', help: 'Lacks an abbreviation');
- validateUsage(parser,
- '''
+ validateUsage(parser, '''
-m, --[no-]mode The mode
--long Lacks an abbreviation
''');
@@ -56,8 +52,7 @@
parser.addFlag('mode', abbr: 'm', help: 'Lined up with below');
parser.addOption('a-really-long-name', help: 'Its help text');
- validateUsage(parser,
- '''
+ validateUsage(parser, '''
-m, --[no-]mode Lined up with below
--a-really-long-name Its help text
''');
@@ -67,8 +62,7 @@
var parser = new ArgParser();
parser.addFlag('mode', help: '\n\n\n\nAfter newlines');
- validateUsage(parser,
- '''
+ validateUsage(parser, '''
--[no-]mode After newlines
''');
});
@@ -77,8 +71,7 @@
var parser = new ArgParser();
parser.addFlag('mode', help: 'Before newlines\n\n\n\n');
- validateUsage(parser,
- '''
+ validateUsage(parser, '''
--[no-]mode Before newlines
''');
});
@@ -89,8 +82,7 @@
parser.addFlag('monkey', help: 'Second');
parser.addFlag('wombat', help: 'Third');
- validateUsage(parser,
- '''
+ validateUsage(parser, '''
--[no-]zebra First
--[no-]monkey Second
--[no-]wombat Third
@@ -102,8 +94,7 @@
parser.addFlag('affirm', help: 'Should be on', defaultsTo: true);
parser.addFlag('negate', help: 'Should be off', defaultsTo: false);
- validateUsage(parser,
- '''
+ validateUsage(parser, '''
--[no-]affirm Should be on
(defaults to on)
@@ -115,8 +106,7 @@
var parser = new ArgParser();
parser.addOption('any', help: 'Can be anything', defaultsTo: 'whatevs');
- validateUsage(parser,
- '''
+ validateUsage(parser, '''
--any Can be anything
(defaults to "whatevs")
''');
@@ -124,22 +114,21 @@
test('the value help is shown', () {
var parser = new ArgParser();
- parser.addOption('out', abbr: 'o', help: 'Where to write file',
- valueHelp: 'path');
+ parser.addOption('out',
+ abbr: 'o', help: 'Where to write file', valueHelp: 'path');
- validateUsage(parser,
- '''
+ validateUsage(parser, '''
-o, --out=<path> Where to write file
''');
});
test('the allowed list is shown', () {
var parser = new ArgParser();
- parser.addOption('suit', help: 'Like in cards',
+ parser.addOption('suit',
+ help: 'Like in cards',
allowed: ['spades', 'clubs', 'hearts', 'diamonds']);
- validateUsage(parser,
- '''
+ validateUsage(parser, '''
--suit Like in cards
[spades, clubs, hearts, diamonds]
''');
@@ -147,11 +136,12 @@
test('the default is highlighted in the allowed list', () {
var parser = new ArgParser();
- parser.addOption('suit', help: 'Like in cards', defaultsTo: 'clubs',
+ parser.addOption('suit',
+ help: 'Like in cards',
+ defaultsTo: 'clubs',
allowed: ['spades', 'clubs', 'hearts', 'diamonds']);
- validateUsage(parser,
- '''
+ validateUsage(parser, '''
--suit Like in cards
[spades, clubs (default), hearts, diamonds]
''');
@@ -159,17 +149,18 @@
test('the allowed help is shown', () {
var parser = new ArgParser();
- parser.addOption('suit', help: 'Like in cards', defaultsTo: 'clubs',
+ parser.addOption('suit',
+ help: 'Like in cards',
+ defaultsTo: 'clubs',
allowed: ['spades', 'clubs', 'diamonds', 'hearts'],
allowedHelp: {
- 'spades': 'Swords of a soldier',
- 'clubs': 'Weapons of war',
- 'diamonds': 'Money for this art',
- 'hearts': 'The shape of my heart'
- });
+ 'spades': 'Swords of a soldier',
+ 'clubs': 'Weapons of war',
+ 'diamonds': 'Money for this art',
+ 'hearts': 'The shape of my heart'
+ });
- validateUsage(parser,
- '''
+ validateUsage(parser, '''
--suit Like in cards
[clubs] Weapons of war
@@ -185,9 +176,7 @@
parser.addOption('second', hide: true);
parser.addOption('third', help: 'The third option');
-
- validateUsage(parser,
- '''
+ validateUsage(parser, '''
--first The first option
--third The third option
''');
@@ -199,9 +188,7 @@
parser.addFlag('second', hide: true);
parser.addFlag('third', help: 'The third flag');
-
- validateUsage(parser,
- '''
+ validateUsage(parser, '''
--[no-]first The first flag
--[no-]third The third flag
''');
@@ -213,9 +200,7 @@
parser.addFlag('second-very-long-option', hide: true);
parser.addFlag('third', help: 'The third flag');
-
- validateUsage(parser,
- '''
+ validateUsage(parser, '''
--[no-]first The first flag
--[no-]third The third flag
''');