Improve `fluent_embed_derive` test suite

finchie
Jul 30, 2024, 5:32 AM
6ABVDTXZOHVUDZDKDQS256F74LFIMM5DO3OZWHKRXZBUTPII4WAQC

Dependencies

  • [2] EFVTSBSV Adjust wording of $unreadEmails when there is 1 unread email
  • [3] KZLFC7OW Rename `fluent_embed_runtime` to `fluent_embed`
  • [4] VNSHGQYN Support using glob paths in `localize` macro
  • [5] XEEXWJLG Add simple end-to-end test for selectors
  • [6] 4MRF5E76 Generate simple locale matching code in `localize()`
  • [7] P6FW2GGO Remove unnecessary parameters in generated `localize()` function
  • [8] 3WEPY3OX Add `locale` parameter to derived `localize()` function
  • [*] O77KA6C4 Create `fluent_embed` crate
  • [*] UKFEFT6L Create basic `Output` proc-macro
  • [*] SHNZZSZG Create `cli_macros` shim crate
  • [*] BANMRGRO Switch `wax` to temporary fork
  • [*] F5LG7WEN Emit compilation errors from Fluent source code
  • [*] OWXLFLRM Merge `cli_macros` shim into `fluent_embed`
  • [*] BFL2Y7GN Add relative timestamps using `jiff` and `icu_relativetime`
  • [*] JZXXFWQK Add tests for `locale_select` backends on unix

Change contents

  • edit in fluent_embed_derive/tests/selectors.rs at line 5
    [3.59]
    [4.340]
    use pretty_assertions::assert_eq;
    use rstest::rstest;
  • edit in fluent_embed_derive/tests/selectors.rs at line 12
    [4.433][4.433:459](),[4.571][4.571:614]()
    #[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}"
    );
    }
    [4.615]
    [4.1111]
    #[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
    [12.1228]
    [12.1228]
    [[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
    [13.268]
    [12.1475]
    [[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
    [14.15020]
    [15.5479]
    "pretty_assertions",
  • edit in Cargo.lock at line 200
    [10.1978]
    [16.5348]
    "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
    [14.15211]
    [10.1989]
    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
    [16.9088]
    [4.1961]
    ]
    [[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
    [14.16899]
    [14.16899]
    [[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
    [4.3013]
    [4.3013]
    ]
    [[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
    [16.11274]
    [14.16913]
    [[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
    [14.16926]
    [14.16926]
    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
    [14.17112]
    [14.17112]
    [[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
    [11.4946]
    [11.4946]
    [[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
    [16.11679]
    [12.4338]
    ]
    [[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
    [12.5237]
    [11.5210]
    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
    [16.12607]
    [16.12607]
    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
    [12.5444]
    [12.5444]
    name = "yansi"
    version = "0.5.1"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec"
    [[package]]