contrib/merge-lists/tests/test-merge-lists.rs
author Matt Harbison <matt_harbison@yahoo.com>
Tue, 06 Sep 2022 15:08:52 -0400
branchstable
changeset 49490 37debd850c16
parent 49011 b999edb15f8c
permissions -rw-r--r--
packaging: update dulwich to drop the certifi dependency on Windows The presence of `certifi` causes the system certificate store to be ignored, which was reported as a bug against TortoiseHg[1]. It was only pulled in on Windows because of `dulwich`, which was copied from the old TortoiseHg install scripts, in order to support `hg-git`. This version of `dulwich` raises the minimum `urllib3` to a version (1.25) that does certificate verification by default, without the help of `certifi`[2]. We already bundle a newer version of `urllib3`. Note that `certifi` can still be imported from the user site directory, if installed there. But the installer no longer disables the system certificates by default. [1] https://foss.heptapod.net/mercurial/tortoisehg/thg/-/issues/5825 [2] https://github.com/jelmer/dulwich/issues/1025
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
49010
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
     1
use similar::DiffableStr;
49011
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
     2
use std::ffi::OsStr;
49010
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
     3
use tempdir::TempDir;
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
     4
49011
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
     5
fn run_test(arg: &str, input: &str) -> String {
49010
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
     6
    let mut cmd = assert_cmd::Command::cargo_bin("merge-lists").unwrap();
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
     7
    let temp_dir = TempDir::new("test").unwrap();
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
     8
    let base_path = temp_dir.path().join("base");
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
     9
    let local_path = temp_dir.path().join("local");
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    10
    let other_path = temp_dir.path().join("other");
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    11
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    12
    let rest = input.strip_prefix("\nbase:\n").unwrap();
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    13
    let mut split = rest.split("\nlocal:\n");
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    14
    std::fs::write(&base_path, split.next().unwrap()).unwrap();
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    15
    let rest = split.next().unwrap();
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    16
    let mut split = rest.split("\nother:\n");
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    17
    std::fs::write(&local_path, split.next().unwrap()).unwrap();
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    18
    std::fs::write(&other_path, split.next().unwrap()).unwrap();
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    19
    cmd.args(&[
49011
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
    20
        OsStr::new(arg),
49010
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    21
        local_path.as_os_str(),
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    22
        base_path.as_os_str(),
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    23
        other_path.as_os_str(),
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    24
    ])
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    25
    .assert()
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    26
    .success();
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    27
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    28
    let new_base_bytes = std::fs::read(&base_path).unwrap();
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    29
    let new_local_bytes = std::fs::read(&local_path).unwrap();
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    30
    let new_other_bytes = std::fs::read(&other_path).unwrap();
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    31
    // No newline before "base:" because of https://github.com/mitsuhiko/insta/issues/117
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    32
    format!(
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    33
        "base:\n{}\nlocal:\n{}\nother:\n{}",
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    34
        new_base_bytes.as_str().unwrap(),
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    35
        new_local_bytes.as_str().unwrap(),
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    36
        new_other_bytes.as_str().unwrap()
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    37
    )
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    38
}
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    39
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    40
#[test]
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    41
fn test_merge_lists_basic() {
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    42
    let output = run_test(
49011
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
    43
        "--python-imports",
49010
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    44
        r"
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    45
base:
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    46
import lib1
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    47
import lib2
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    48
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    49
local:
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    50
import lib2
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    51
import lib3
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    52
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    53
other:
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    54
import lib3
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    55
import lib4
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    56
",
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    57
    );
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    58
    insta::assert_snapshot!(output, @r###"
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    59
    base:
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    60
    import lib3
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    61
    import lib4
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    62
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    63
    local:
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    64
    import lib3
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    65
    import lib4
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    66
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    67
    other:
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    68
    import lib3
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    69
    import lib4
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    70
    "###);
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    71
}
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    72
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    73
#[test]
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    74
fn test_merge_lists_from() {
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    75
    // Test some "from x import y" statements and some non-import conflicts
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    76
    // (unresolvable)
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    77
    let output = run_test(
49011
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
    78
        "--python-imports",
49010
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    79
        r"
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    80
base:
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    81
from . import x
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    82
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    83
1+1
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    84
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    85
local:
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    86
from . import x
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    87
from a import b
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    88
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    89
2+2
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    90
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    91
other:
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    92
from a import c
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    93
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    94
3+3
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    95
",
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    96
    );
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    97
    insta::assert_snapshot!(output, @r###"
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    98
    base:
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    99
    from a import b
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   100
    from a import c
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   101
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   102
    1+1
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   103
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   104
    local:
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   105
    from a import b
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   106
    from a import c
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   107
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   108
    2+2
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   109
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   110
    other:
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   111
    from a import b
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   112
    from a import c
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   113
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   114
    3+3
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   115
    "###);
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   116
}
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   117
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   118
#[test]
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   119
fn test_merge_lists_not_sorted() {
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   120
    // Test that nothing is done if the elements in the conflicting hunks are
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   121
    // not sorted
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   122
    let output = run_test(
49011
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
   123
        "--python-imports",
49010
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   124
        r"
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   125
base:
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   126
import x
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   127
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   128
1+1
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   129
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   130
local:
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   131
import a
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   132
import x
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   133
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   134
2+2
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   135
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   136
other:
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   137
import z
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   138
import y
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   139
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   140
3+3
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   141
",
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   142
    );
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   143
    insta::assert_snapshot!(output, @r###"
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   144
    base:
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   145
    import x
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   146
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   147
    1+1
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   148
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   149
    local:
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   150
    import a
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   151
    import x
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   152
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   153
    2+2
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   154
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   155
    other:
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   156
    import z
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   157
    import y
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   158
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   159
    3+3
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   160
    "###);
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   161
}
49011
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
   162
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
   163
#[test]
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
   164
fn test_custom_regex() {
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
   165
    // Test merging of all lines (by matching anything)
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
   166
    let output = run_test(
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
   167
        "--pattern=.*",
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
   168
        r"
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
   169
base:
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
   170
aardvark
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
   171
baboon
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
   172
camel
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
   173
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
   174
local:
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
   175
aardvark
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
   176
camel
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
   177
eagle
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
   178
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
   179
other:
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
   180
aardvark
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
   181
camel
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
   182
deer
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
   183
",
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
   184
    );
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
   185
    insta::assert_snapshot!(output, @r###"
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
   186
    base:
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
   187
    aardvark
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
   188
    camel
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
   189
    deer
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
   190
    eagle
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
   191
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
   192
    local:
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
   193
    aardvark
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
   194
    camel
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
   195
    deer
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
   196
    eagle
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
   197
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
   198
    other:
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
   199
    aardvark
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
   200
    camel
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
   201
    deer
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
   202
    eagle
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
   203
    "###);
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
   204
}