diff --git a/src/command.rs b/src/command.rs index 578677e..b433b0f 100644 --- a/src/command.rs +++ b/src/command.rs @@ -1,4 +1,4 @@ -use std::collections::{HashSet, VecDeque}; +use std::collections::{BTreeSet, HashSet, VecDeque}; use std::error::Error; /// A block, consisting of multiple commands. @@ -14,7 +14,7 @@ pub(crate) struct Block { } /// A command. -#[derive(Clone, Debug, PartialEq)] +#[derive(Clone, PartialEq)] #[non_exhaustive] pub struct Command { /// The name of the command. Never empty. @@ -35,6 +35,21 @@ pub struct Command { pub line_number: u32, } +impl std::fmt::Debug for Command { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + f.debug_struct("Command") + .field("name", &self.name) + .field("args", &self.args) + .field("prefix", &self.prefix) + // Use a sorted BTreeSet for test determinism. + .field("tags", &BTreeSet::from_iter(&self.tags)) + .field("silent", &self.silent) + .field("fail", &self.fail) + .field("line_number", &self.line_number) + .finish() + } +} + impl Command { /// Returns an argument consumer, for more convenient argument processing. /// Does not affect [`Command::args`]. diff --git a/tests/generate/empty_output.out b/tests/generate/empty_output.out index fd884d7..09688a6 100644 --- a/tests/generate/empty_output.out +++ b/tests/generate/empty_output.out @@ -2,12 +2,12 @@ # an empty block at the end of the file. command --- -Command { name: "command", args: [], prefix: None, tags: [], silent: false, fail: false, line_number: 3 } +Command { name: "command", args: [], prefix: None, tags: {}, silent: false, fail: false, line_number: 3 } command --- -Command { name: "command", args: [], prefix: None, tags: [], silent: false, fail: false, line_number: 6 } +Command { name: "command", args: [], prefix: None, tags: {}, silent: false, fail: false, line_number: 6 } command --- -Command { name: "command", args: [], prefix: None, tags: [], silent: false, fail: false, line_number: 9 } +Command { name: "command", args: [], prefix: None, tags: {}, silent: false, fail: false, line_number: 9 } diff --git a/tests/scripts/commands b/tests/scripts/commands index 62953fc..f8a8953 100644 --- a/tests/scripts/commands +++ b/tests/scripts/commands @@ -1,51 +1,51 @@ # A bare command. command --- -Command { name: "command", args: [], prefix: None, tags: [], silent: false, fail: false, line_number: 2 } +Command { name: "command", args: [], prefix: None, tags: {}, silent: false, fail: false, line_number: 2 } # Commands with arguments. foo arg bar key=value baz arg key=value --- -Command { name: "foo", args: [Argument { key: None, value: "arg" }], prefix: None, tags: [], silent: false, fail: false, line_number: 7 } -Command { name: "bar", args: [Argument { key: Some("key"), value: "value" }], prefix: None, tags: [], silent: false, fail: false, line_number: 8 } -Command { name: "baz", args: [Argument { key: None, value: "arg" }, Argument { key: Some("key"), value: "value" }], prefix: None, tags: [], silent: false, fail: false, line_number: 9 } +Command { name: "foo", args: [Argument { key: None, value: "arg" }], prefix: None, tags: {}, silent: false, fail: false, line_number: 7 } +Command { name: "bar", args: [Argument { key: Some("key"), value: "value" }], prefix: None, tags: {}, silent: false, fail: false, line_number: 8 } +Command { name: "baz", args: [Argument { key: None, value: "arg" }, Argument { key: Some("key"), value: "value" }], prefix: None, tags: {}, silent: false, fail: false, line_number: 9 } # Commands with tags. foo [tag] foo arg key=value [a,b c] --- -Command { name: "foo", args: [], prefix: None, tags: ["tag"], silent: false, fail: false, line_number: 16 } -Command { name: "foo", args: [Argument { key: None, value: "arg" }, Argument { key: Some("key"), value: "value" }], prefix: None, tags: ["a", "b", "c"], silent: false, fail: false, line_number: 17 } +Command { name: "foo", args: [], prefix: None, tags: {"tag"}, silent: false, fail: false, line_number: 16 } +Command { name: "foo", args: [Argument { key: None, value: "arg" }, Argument { key: Some("key"), value: "value" }], prefix: None, tags: {"a", "b", "c"}, silent: false, fail: false, line_number: 17 } # Commands with prefixes. a: foo arg b: bar key=value --- -a: Command { name: "foo", args: [Argument { key: None, value: "arg" }], prefix: Some("a"), tags: [], silent: false, fail: false, line_number: 23 } -b: Command { name: "bar", args: [Argument { key: Some("key"), value: "value" }], prefix: Some("b"), tags: [], silent: false, fail: false, line_number: 24 } +a: Command { name: "foo", args: [Argument { key: None, value: "arg" }], prefix: Some("a"), tags: {}, silent: false, fail: false, line_number: 23 } +b: Command { name: "bar", args: [Argument { key: Some("key"), value: "value" }], prefix: Some("b"), tags: {}, silent: false, fail: false, line_number: 24 } # Failing commands. ! foo bar --- -Error: Command { name: "foo", args: [Argument { key: None, value: "bar" }], prefix: None, tags: [], silent: false, fail: true, line_number: 30 } +Error: Command { name: "foo", args: [Argument { key: None, value: "bar" }], prefix: None, tags: {}, silent: false, fail: true, line_number: 30 } # Prefixes, commands, and keys can be empty. "": "" ""="" --- -: Command { name: "", args: [Argument { key: Some(""), value: "" }], prefix: Some(""), tags: [], silent: false, fail: false, line_number: 35 } +: Command { name: "", args: [Argument { key: Some(""), value: "" }], prefix: Some(""), tags: {}, silent: false, fail: false, line_number: 35 } # Prefixes, commands, and keys can be whitespace. " ": " " " "=" " --- - : Command { name: " ", args: [Argument { key: Some(" "), value: " " }], prefix: Some(" "), tags: [], silent: false, fail: false, line_number: 40 } + : Command { name: " ", args: [Argument { key: Some(" "), value: " " }], prefix: Some(" "), tags: {}, silent: false, fail: false, line_number: 40 } # Empty argument keys and values are fine. command "" command arg="" command arg= --- -Command { name: "command", args: [Argument { key: None, value: "" }], prefix: None, tags: [], silent: false, fail: false, line_number: 45 } -Command { name: "command", args: [Argument { key: Some("arg"), value: "" }], prefix: None, tags: [], silent: false, fail: false, line_number: 46 } -Command { name: "command", args: [Argument { key: Some("arg"), value: "" }], prefix: None, tags: [], silent: false, fail: false, line_number: 47 } +Command { name: "command", args: [Argument { key: None, value: "" }], prefix: None, tags: {}, silent: false, fail: false, line_number: 45 } +Command { name: "command", args: [Argument { key: Some("arg"), value: "" }], prefix: None, tags: {}, silent: false, fail: false, line_number: 46 } +Command { name: "command", args: [Argument { key: Some("arg"), value: "" }], prefix: None, tags: {}, silent: false, fail: false, line_number: 47 } diff --git a/tests/scripts/comments b/tests/scripts/comments index af664a9..3d7eeb3 100644 --- a/tests/scripts/comments +++ b/tests/scripts/comments @@ -5,25 +5,25 @@ # Comment before command. command id=1 --- -Command { name: "command", args: [Argument { key: Some("id"), value: "1" }], prefix: None, tags: [], silent: false, fail: false, line_number: 6 } +Command { name: "command", args: [Argument { key: Some("id"), value: "1" }], prefix: None, tags: {}, silent: false, fail: false, line_number: 6 } command id=2 # Comment beside command. --- -Command { name: "command", args: [Argument { key: Some("id"), value: "2" }], prefix: None, tags: [], silent: false, fail: false, line_number: 10 } +Command { name: "command", args: [Argument { key: Some("id"), value: "2" }], prefix: None, tags: {}, silent: false, fail: false, line_number: 10 } command id=3 # Comment after command. --- -Command { name: "command", args: [Argument { key: Some("id"), value: "3" }], prefix: None, tags: [], silent: false, fail: false, line_number: 14 } +Command { name: "command", args: [Argument { key: Some("id"), value: "3" }], prefix: None, tags: {}, silent: false, fail: false, line_number: 14 } # Comment between blocks. command id=4 --- -Command { name: "command", args: [Argument { key: Some("id"), value: "4" }], prefix: None, tags: [], silent: false, fail: false, line_number: 21 } +Command { name: "command", args: [Argument { key: Some("id"), value: "4" }], prefix: None, tags: {}, silent: false, fail: false, line_number: 21 } command id=5 // Comment using //. --- -Command { name: "command", args: [Argument { key: Some("id"), value: "5" }], prefix: None, tags: [], silent: false, fail: false, line_number: 25 } +Command { name: "command", args: [Argument { key: Some("id"), value: "5" }], prefix: None, tags: {}, silent: false, fail: false, line_number: 25 } # Comment at end. \ No newline at end of file diff --git a/tests/scripts/dos_line_endings b/tests/scripts/dos_line_endings index b61cebc..19ff71b 100644 --- a/tests/scripts/dos_line_endings +++ b/tests/scripts/dos_line_endings @@ -2,7 +2,7 @@ command --- -Command { name: "command", args: [], prefix: None, tags: [], silent: false, fail: false, line_number: 3 } +Command { name: "command", args: [], prefix: None, tags: {}, silent: false, fail: false, line_number: 3 } // Comment. @@ -10,9 +10,9 @@ foo arg bar key=value baz arg key=value --- -Command { name: "foo", args: [Argument { key: None, value: "arg" }], prefix: None, tags: [], silent: false, fail: false, line_number: 9 } -Command { name: "bar", args: [Argument { key: Some("key"), value: "value" }], prefix: None, tags: [], silent: false, fail: false, line_number: 10 } -Command { name: "baz", args: [Argument { key: None, value: "arg" }, Argument { key: Some("key"), value: "value" }], prefix: None, tags: [], silent: false, fail: false, line_number: 11 } +Command { name: "foo", args: [Argument { key: None, value: "arg" }], prefix: None, tags: {}, silent: false, fail: false, line_number: 9 } +Command { name: "bar", args: [Argument { key: Some("key"), value: "value" }], prefix: None, tags: {}, silent: false, fail: false, line_number: 10 } +Command { name: "baz", args: [Argument { key: None, value: "arg" }, Argument { key: Some("key"), value: "value" }], prefix: None, tags: {}, silent: false, fail: false, line_number: 11 } # Comment. a: foo arg @@ -20,7 +20,7 @@ a: foo arg b: bar key=value # Comment. --- -a: Command { name: "foo", args: [Argument { key: None, value: "arg" }], prefix: Some("a"), tags: [], silent: false, fail: false, line_number: 18 } -b: Command { name: "bar", args: [Argument { key: Some("key"), value: "value" }], prefix: Some("b"), tags: [], silent: false, fail: false, line_number: 20 } +a: Command { name: "foo", args: [Argument { key: None, value: "arg" }], prefix: Some("a"), tags: {}, silent: false, fail: false, line_number: 18 } +b: Command { name: "bar", args: [Argument { key: Some("key"), value: "value" }], prefix: Some("b"), tags: {}, silent: false, fail: false, line_number: 20 } # Comment. \ No newline at end of file diff --git a/tests/scripts/fail b/tests/scripts/fail index e834dfb..dedc28a 100644 --- a/tests/scripts/fail +++ b/tests/scripts/fail @@ -2,7 +2,7 @@ # the runner expects an error. ! command arg --- -Error: Command { name: "command", args: [Argument { key: None, value: "arg" }], prefix: None, tags: [], silent: false, fail: true, line_number: 3 } +Error: Command { name: "command", args: [Argument { key: None, value: "arg" }], prefix: None, tags: {}, silent: false, fail: true, line_number: 3 } # Errors and panics are handled when ! is given. ! _error foo diff --git a/tests/scripts/hooks b/tests/scripts/hooks index 2ae4815..e1335fd 100644 --- a/tests/scripts/hooks +++ b/tests/scripts/hooks @@ -2,13 +2,13 @@ _set start_block="start" end_block="end" command --- -Command { name: "command", args: [], prefix: None, tags: [], silent: false, fail: false, line_number: 3 } +Command { name: "command", args: [], prefix: None, tags: {}, silent: false, fail: false, line_number: 3 } end command --- start -Command { name: "command", args: [], prefix: None, tags: [], silent: false, fail: false, line_number: 8 } +Command { name: "command", args: [], prefix: None, tags: {}, silent: false, fail: false, line_number: 8 } end # Newlines in block hooks should be handled appropriately. @@ -16,13 +16,13 @@ _set start_block="start\n" end_block="end\n" command --- start -Command { name: "command", args: [], prefix: None, tags: [], silent: false, fail: false, line_number: 16 } +Command { name: "command", args: [], prefix: None, tags: {}, silent: false, fail: false, line_number: 16 } end command --- start -Command { name: "command", args: [], prefix: None, tags: [], silent: false, fail: false, line_number: 22 } +Command { name: "command", args: [], prefix: None, tags: {}, silent: false, fail: false, line_number: 22 } end # As should empty lines. @@ -30,7 +30,7 @@ _set start_block="start\n\n" end_block="end\n\n" command --- > start -> Command { name: "command", args: [], prefix: None, tags: [], silent: false, fail: false, line_number: 30 } +> Command { name: "command", args: [], prefix: None, tags: {}, silent: false, fail: false, line_number: 30 } > end > @@ -39,7 +39,7 @@ command --- > start > -> Command { name: "command", args: [], prefix: None, tags: [], silent: false, fail: false, line_number: 38 } +> Command { name: "command", args: [], prefix: None, tags: {}, silent: false, fail: false, line_number: 38 } > end _set start_block="" end_block="" @@ -55,10 +55,10 @@ prefix: command (command) --- start -Command { name: "command", args: [], prefix: None, tags: [], silent: false, fail: false, line_number: 53 } +Command { name: "command", args: [], prefix: None, tags: {}, silent: false, fail: false, line_number: 53 } end prefix: start -prefix: Command { name: "command", args: [], prefix: Some("prefix"), tags: [], silent: false, fail: false, line_number: 54 } +prefix: Command { name: "command", args: [], prefix: Some("prefix"), tags: {}, silent: false, fail: false, line_number: 54 } prefix: end # They should also be called after commands that were expected to fail. @@ -73,7 +73,7 @@ end command --- start -Command { name: "command", args: [], prefix: None, tags: [], silent: false, fail: false, line_number: 73 } +Command { name: "command", args: [], prefix: None, tags: {}, silent: false, fail: false, line_number: 73 } end (_set start_command="start\n\n" end_command="end\n\n") @@ -81,6 +81,6 @@ command --- > start > -> Command { name: "command", args: [], prefix: None, tags: [], silent: false, fail: false, line_number: 80 } +> Command { name: "command", args: [], prefix: None, tags: {}, silent: false, fail: false, line_number: 80 } > end > diff --git a/tests/scripts/output b/tests/scripts/output index f97b597..b3981d4 100644 --- a/tests/scripts/output +++ b/tests/scripts/output @@ -2,8 +2,8 @@ command command arg --- -Command { name: "command", args: [], prefix: None, tags: [], silent: false, fail: false, line_number: 2 } -Command { name: "command", args: [Argument { key: None, value: "arg" }], prefix: None, tags: [], silent: false, fail: false, line_number: 3 } +Command { name: "command", args: [], prefix: None, tags: {}, silent: false, fail: false, line_number: 2 } +Command { name: "command", args: [Argument { key: None, value: "arg" }], prefix: None, tags: {}, silent: false, fail: false, line_number: 3 } # Output that contains empty lines should automatically be prefixed with >. # This should be the case for empty lines at the start and end of the output, @@ -13,17 +13,17 @@ command id=1 command id=2 --- > -> Command { name: "command", args: [Argument { key: Some("id"), value: "1" }], prefix: None, tags: [], silent: false, fail: false, line_number: 12 } +> Command { name: "command", args: [Argument { key: Some("id"), value: "1" }], prefix: None, tags: {}, silent: false, fail: false, line_number: 12 } > -> Command { name: "command", args: [Argument { key: Some("id"), value: "2" }], prefix: None, tags: [], silent: false, fail: false, line_number: 13 } +> Command { name: "command", args: [Argument { key: Some("id"), value: "2" }], prefix: None, tags: {}, silent: false, fail: false, line_number: 13 } _set prefix="" suffix="\n\n" command id=1 command id=2 --- -> Command { name: "command", args: [Argument { key: Some("id"), value: "1" }], prefix: None, tags: [], silent: false, fail: false, line_number: 21 } +> Command { name: "command", args: [Argument { key: Some("id"), value: "1" }], prefix: None, tags: {}, silent: false, fail: false, line_number: 21 } > -> Command { name: "command", args: [Argument { key: Some("id"), value: "2" }], prefix: None, tags: [], silent: false, fail: false, line_number: 22 } +> Command { name: "command", args: [Argument { key: Some("id"), value: "2" }], prefix: None, tags: {}, silent: false, fail: false, line_number: 22 } > _set prefix="\n" suffix="\n\n" @@ -31,10 +31,10 @@ command id=1 command id=2 --- > -> Command { name: "command", args: [Argument { key: Some("id"), value: "1" }], prefix: None, tags: [], silent: false, fail: false, line_number: 30 } +> Command { name: "command", args: [Argument { key: Some("id"), value: "1" }], prefix: None, tags: {}, silent: false, fail: false, line_number: 30 } > > -> Command { name: "command", args: [Argument { key: Some("id"), value: "2" }], prefix: None, tags: [], silent: false, fail: false, line_number: 31 } +> Command { name: "command", args: [Argument { key: Some("id"), value: "2" }], prefix: None, tags: {}, silent: false, fail: false, line_number: 31 } > # Empty output blocks should default to "ok", but only once, and only if none of @@ -54,7 +54,7 @@ ok command (command) --- -Command { name: "command", args: [], prefix: None, tags: [], silent: false, fail: false, line_number: 54 } +Command { name: "command", args: [], prefix: None, tags: {}, silent: false, fail: false, line_number: 54 } _set start_block="" end_block="end" --- diff --git a/tests/scripts/silent b/tests/scripts/silent index 06cad9b..259ef0b 100644 --- a/tests/scripts/silent +++ b/tests/scripts/silent @@ -8,8 +8,8 @@ command id=1 (command id=2) command id=3 --- -Command { name: "command", args: [Argument { key: Some("id"), value: "1" }], prefix: None, tags: [], silent: false, fail: false, line_number: 7 } -Command { name: "command", args: [Argument { key: Some("id"), value: "3" }], prefix: None, tags: [], silent: false, fail: false, line_number: 9 } +Command { name: "command", args: [Argument { key: Some("id"), value: "1" }], prefix: None, tags: {}, silent: false, fail: false, line_number: 7 } +Command { name: "command", args: [Argument { key: Some("id"), value: "3" }], prefix: None, tags: {}, silent: false, fail: false, line_number: 9 } # Whitespace is allowed around the parentheses, except for the first. ( command ) # eol diff --git a/tests/scripts/strings b/tests/scripts/strings index 0a7d3fd..4833ba5 100644 --- a/tests/scripts/strings +++ b/tests/scripts/strings @@ -2,18 +2,18 @@ 0: 1 2 3=4 01: 23 45 67=89 --- -0: Command { name: "1", args: [Argument { key: None, value: "2" }, Argument { key: Some("3"), value: "4" }], prefix: Some("0"), tags: [], silent: false, fail: false, line_number: 2 } -01: Command { name: "23", args: [Argument { key: None, value: "45" }, Argument { key: Some("67"), value: "89" }], prefix: Some("01"), tags: [], silent: false, fail: false, line_number: 3 } +0: Command { name: "1", args: [Argument { key: None, value: "2" }, Argument { key: Some("3"), value: "4" }], prefix: Some("0"), tags: {}, silent: false, fail: false, line_number: 2 } +01: Command { name: "23", args: [Argument { key: None, value: "45" }, Argument { key: Some("67"), value: "89" }], prefix: Some("01"), tags: {}, silent: false, fail: false, line_number: 3 } # Unquoted strings can start with _. _prefix: _command _arg _key=_value --- -_prefix: Command { name: "_command", args: [Argument { key: None, value: "_arg" }, Argument { key: Some("_key"), value: "_value" }], prefix: Some("_prefix"), tags: [], silent: false, fail: false, line_number: 9 } +_prefix: Command { name: "_command", args: [Argument { key: None, value: "_arg" }, Argument { key: Some("_key"), value: "_value" }], prefix: Some("_prefix"), tags: {}, silent: false, fail: false, line_number: 9 } # Unquoted strings can contain -_./@ prefix-_.: command-_./@ arg-_./@ key-_./@=value-_./@ --- -prefix-_.: Command { name: "command-_./@", args: [Argument { key: None, value: "arg-_./@" }, Argument { key: Some("key-_./@"), value: "value-_./@" }], prefix: Some("prefix-_."), tags: [], silent: false, fail: false, line_number: 14 } +prefix-_.: Command { name: "command-_./@", args: [Argument { key: None, value: "arg-_./@" }, Argument { key: Some("key-_./@"), value: "value-_./@" }], prefix: Some("prefix-_."), tags: {}, silent: false, fail: false, line_number: 14 } # Single-quoted strings can contain any character, including newlines. '➑️': 'πŸ˜€' '"πŸ‘‹"' '\t'='\0' ' @@ -22,7 +22,7 @@ prefix-_.: Command { name: "command-_./@", args: [Argument { key: None, value: " ' --- -➑️: Command { name: "πŸ˜€", args: [Argument { key: None, value: "\"πŸ‘‹\"" }, Argument { key: Some("\t"), value: "\0" }, Argument { key: None, value: "\n\n πŸš€\n\n" }], prefix: Some("➑\u{fe0f}"), tags: [], silent: false, fail: false, line_number: 19 } +➑️: Command { name: "πŸ˜€", args: [Argument { key: None, value: "\"πŸ‘‹\"" }, Argument { key: Some("\t"), value: "\0" }, Argument { key: None, value: "\n\n πŸš€\n\n" }], prefix: Some("➑\u{fe0f}"), tags: {}, silent: false, fail: false, line_number: 19 } # Double-quoted strings can too. "➑️": "πŸ˜€" "'πŸ‘‹'" "\t"="\0" " @@ -31,37 +31,37 @@ prefix-_.: Command { name: "command-_./@", args: [Argument { key: None, value: " " --- -➑️: Command { name: "πŸ˜€", args: [Argument { key: None, value: "'πŸ‘‹'" }, Argument { key: Some("\t"), value: "\0" }, Argument { key: None, value: "\n\n πŸš€\n\n" }], prefix: Some("➑\u{fe0f}"), tags: [], silent: false, fail: false, line_number: 28 } +➑️: Command { name: "πŸ˜€", args: [Argument { key: None, value: "'πŸ‘‹'" }, Argument { key: Some("\t"), value: "\0" }, Argument { key: None, value: "\n\n πŸš€\n\n" }], prefix: Some("➑\u{fe0f}"), tags: {}, silent: false, fail: false, line_number: 28 } # Single- and double-quoted strings can also be empty, but is not allowed in # identifiers (prefixes, commands, and argument names). It is allowed as # argument values. command foo="" bar='' --- -Command { name: "command", args: [Argument { key: Some("foo"), value: "" }, Argument { key: Some("bar"), value: "" }], prefix: None, tags: [], silent: false, fail: false, line_number: 39 } +Command { name: "command", args: [Argument { key: Some("foo"), value: "" }, Argument { key: Some("bar"), value: "" }], prefix: None, tags: {}, silent: false, fail: false, line_number: 39 } # Escape sequences are respected both in single and double quotes, including # both quote types. '\\ \' \" \0 \n \r \t \\ \x00 \x7A \xff \u{1F44b}' "\\ \' \" \0 \n \r \t \\ \x00 \x7A \xff \u{1F44b}" --- -Command { name: "\\ ' \" \0 \n \r \t \\ \0 z ΓΏ πŸ‘‹", args: [], prefix: None, tags: [], silent: false, fail: false, line_number: 45 } -Command { name: "\\ ' \" \0 \n \r \t \\ \0 z ΓΏ πŸ‘‹", args: [], prefix: None, tags: [], silent: false, fail: false, line_number: 46 } +Command { name: "\\ ' \" \0 \n \r \t \\ \0 z ΓΏ πŸ‘‹", args: [], prefix: None, tags: {}, silent: false, fail: false, line_number: 45 } +Command { name: "\\ ' \" \0 \n \r \t \\ \0 z ΓΏ πŸ‘‹", args: [], prefix: None, tags: {}, silent: false, fail: false, line_number: 46 } # Quoted strings can contain the other, unescaped quote kind. '"' "'" --- -Command { name: "\"", args: [], prefix: None, tags: [], silent: false, fail: false, line_number: 52 } -Command { name: "'", args: [], prefix: None, tags: [], silent: false, fail: false, line_number: 53 } +Command { name: "\"", args: [], prefix: None, tags: {}, silent: false, fail: false, line_number: 52 } +Command { name: "'", args: [], prefix: None, tags: {}, silent: false, fail: false, line_number: 53 } # Quoted strings can also contain special characters like silencing ( and prefix # : without them being interpreted as such. '(command:' arg --- -Command { name: "(command:", args: [Argument { key: None, value: "arg" }], prefix: None, tags: [], silent: false, fail: false, line_number: 60 } +Command { name: "(command:", args: [Argument { key: None, value: "arg" }], prefix: None, tags: {}, silent: false, fail: false, line_number: 60 } # They can also contain comments. 'command # with comment' --- -Command { name: "command # with comment", args: [], prefix: None, tags: [], silent: false, fail: false, line_number: 65 } +Command { name: "command # with comment", args: [], prefix: None, tags: {}, silent: false, fail: false, line_number: 65 } diff --git a/tests/scripts/whitespace b/tests/scripts/whitespace index 05d67e9..68048b3 100644 --- a/tests/scripts/whitespace +++ b/tests/scripts/whitespace @@ -8,7 +8,7 @@ command --- -Command { name: "command", args: [], prefix: None, tags: [], silent: false, fail: false, line_number: 9 } +Command { name: "command", args: [], prefix: None, tags: {}, silent: false, fail: false, line_number: 9 } # Comment. @@ -18,7 +18,7 @@ Command { name: "command", args: [], prefix: None, tags: [], silent: false, fail command arg --- -Command { name: "command", args: [Argument { key: None, value: "arg" }], prefix: None, tags: [], silent: false, fail: false, line_number: 19 } +Command { name: "command", args: [Argument { key: None, value: "arg" }], prefix: None, tags: {}, silent: false, fail: false, line_number: 19 }