Improve `fluent_embed_derive` test suite
Dependencies
- [2]
EFVTSBSVAdjust wording of $unreadEmails when there is 1 unread email - [3]
KZLFC7OWRename `fluent_embed_runtime` to `fluent_embed` - [4]
VNSHGQYNSupport using glob paths in `localize` macro - [5]
XEEXWJLGAdd simple end-to-end test for selectors - [6]
4MRF5E76Generate simple locale matching code in `localize()` - [7]
P6FW2GGORemove unnecessary parameters in generated `localize()` function - [8]
3WEPY3OXAdd `locale` parameter to derived `localize()` function - [*]
O77KA6C4Create `fluent_embed` crate - [*]
UKFEFT6LCreate basic `Output` proc-macro - [*]
SHNZZSZGCreate `cli_macros` shim crate - [*]
BANMRGROSwitch `wax` to temporary fork - [*]
F5LG7WENEmit compilation errors from Fluent source code - [*]
OWXLFLRMMerge `cli_macros` shim into `fluent_embed` - [*]
BFL2Y7GNAdd relative timestamps using `jiff` and `icu_relativetime` - [*]
JZXXFWQKAdd tests for `locale_select` backends on unix
Change contents
- edit in fluent_embed_derive/tests/selectors.rs at line 5
use pretty_assertions::assert_eq;use rstest::rstest; - edit in fluent_embed_derive/tests/selectors.rs at line 12
#[test]fn selectors() {let test_values = [0, 1, 2, u64::MAX]; - replacement in fluent_embed_derive/tests/selectors.rs at line 13[4.615]→[4.615:701](∅→∅),[4.701]→[2.0:53](∅→∅),[2.53]→[4.756:936](∅→∅),[4.756]→[4.756:936](∅→∅),[4.936]→[3.60:61](∅→∅),[3.61]→[4.936:956](∅→∅),[4.936]→[4.936:956](∅→∅),[4.956]→[4.1511:1543](∅→∅),[4.1219]→[4.1001:1111](∅→∅),[4.1472]→[4.1001:1111](∅→∅),[4.1543]→[4.1001:1111](∅→∅),[4.1001]→[4.1001:1111](∅→∅)
for test_value in test_values {let correct_output = if test_value == 1 {String::from("You have 1 unread email.")} else {format!("You have {test_value} unread emails.")};let message = Messages::Emails {unread_emails: test_value,};assert_eq!(message.localize(),correct_output,"Unexpected output for unread_emails = {test_value}");}#[rstest]#[case(0, "You have 0 unread emails.")]#[case(1, "You have 1 unread email.")]#[case(2, "You have 2 unread emails.")]#[case(u64::MAX, "You have 18446744073709551615 unread emails.")]fn english(#[case] unread_emails: u64, #[case] expected: &str) {let data = Messages::Emails { unread_emails };assert_eq!(&data.localize(), expected); - edit in fluent_embed_derive/Cargo.toml at line 26[3.820]
pretty_assertions = "1.4.0"rstest = "0.21.0" - edit in Cargo.lock at line 102
[[package]]name = "diff"version = "0.1.13"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" - edit in Cargo.lock at line 125
[[package]]name = "equivalent"version = "1.0.1"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" - edit in Cargo.lock at line 196
"pretty_assertions", - edit in Cargo.lock at line 200
"rstest", - edit in Cargo.lock at line 204[4.1960][17.378]
][[package]]name = "futures"version = "0.3.30"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0"dependencies = ["futures-channel","futures-core","futures-executor","futures-io","futures-sink","futures-task","futures-util",][[package]]name = "futures-channel"version = "0.3.30"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"dependencies = ["futures-core","futures-sink",][[package]]name = "futures-core"version = "0.3.30"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"[[package]]name = "futures-executor"version = "0.3.30"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"dependencies = ["futures-core","futures-task","futures-util", - edit in Cargo.lock at line 247[17.380][17.380]
[[package]]name = "futures-io"version = "0.3.30"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" - edit in Cargo.lock at line 255[17.393][17.393]
name = "futures-macro"version = "0.3.30"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"dependencies = ["proc-macro2","quote","syn 2.0.71",][[package]]name = "futures-sink"version = "0.3.30"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"[[package]]name = "futures-task"version = "0.3.30"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"[[package]]name = "futures-timer"version = "3.0.3"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24"[[package]]name = "futures-util"version = "0.3.30"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"dependencies = ["futures-channel","futures-core","futures-io","futures-macro","futures-sink","futures-task","memchr","pin-project-lite","pin-utils","slab",][[package]] - edit in Cargo.lock at line 328
name = "glob"version = "0.3.1"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"[[package]]name = "hashbrown"version = "0.14.5"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"[[package]] - edit in Cargo.lock at line 553
][[package]]name = "indexmap"version = "2.2.6"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"dependencies = ["equivalent","hashbrown", - edit in Cargo.lock at line 786
[[package]]name = "pin-project-lite"version = "0.2.14"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02"[[package]]name = "pin-utils"version = "0.1.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - edit in Cargo.lock at line 806
][[package]]name = "pretty_assertions"version = "1.4.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66"dependencies = ["diff","yansi",][[package]]name = "proc-macro-crate"version = "3.1.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284"dependencies = ["toml_edit", - edit in Cargo.lock at line 897
[[package]]name = "relative-path"version = "1.9.3"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "ba39f3699c378cd8970968dcbff9c43159ea4cfbd88d43c00b22f2ef10a435d2"[[package]]name = "rstest"version = "0.21.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "9afd55a67069d6e434a95161415f5beeada95a01c7b815508a82dcb0e1593682"dependencies = ["futures","futures-timer","rstest_macros","rustc_version",] - edit in Cargo.lock at line 917
name = "rstest_macros"version = "0.21.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "4165dfae59a39dd41d8dec720d3cbfbc71f69744efb480a3920f5d4e0cc6798d"dependencies = ["cfg-if","glob","proc-macro-crate","proc-macro2","quote","regex","relative-path","rustc_version","syn 2.0.71","unicode-ident",][[package]] - edit in Cargo.lock at line 939
[[package]]name = "rustc_version"version = "0.4.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"dependencies = ["semver",] - edit in Cargo.lock at line 976
[[package]]name = "semver"version = "1.0.23"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" - edit in Cargo.lock at line 1001
][[package]]name = "slab"version = "0.4.9"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"dependencies = ["autocfg", - edit in Cargo.lock at line 1141
name = "toml_datetime"version = "0.6.7"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "f8fb9f64314842840f1d940ac544da178732128f1c78c21772e876579e0da1db"[[package]]name = "toml_edit"version = "0.21.1"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1"dependencies = ["indexmap","toml_datetime","winnow",][[package]] - edit in Cargo.lock at line 1400
name = "winnow"version = "0.5.40"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"dependencies = ["memchr",][[package]] - edit in Cargo.lock at line 1424
name = "yansi"version = "0.5.1"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec"[[package]]