github.phpd.cn/thought-machine/please@v12.2.0+incompatible/tools/please_diff_graphs/diff/plz_diff_graphs_test.go (about)

     1  package diff
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/assert"
     7  
     8  	"core"
     9  )
    10  
    11  func TestDiffGraphsSimple(t *testing.T) {
    12  	changes := readAndDiffGraphs("tools/please_diff_graphs/diff/test_data/before.json", "tools/please_diff_graphs/diff/test_data/after.json", nil, nil, nil)
    13  	expected := []core.BuildLabel{
    14  		core.ParseBuildLabel("//src/misc:plz_diff_graphs", ""),
    15  		core.ParseBuildLabel("//src/misc:plz_diff_graphs_test", ""),
    16  	}
    17  	assert.Equal(t, expected, changes)
    18  }
    19  
    20  func TestDiffGraphsRemovedPackage(t *testing.T) {
    21  	changes := readAndDiffGraphs("tools/please_diff_graphs/diff/test_data/before.json", "tools/please_diff_graphs/diff/test_data/removed_package.json", nil, nil, nil)
    22  	expected := []core.BuildLabel{} // Nothing because targets no longer exist
    23  	assert.Equal(t, expected, changes)
    24  }
    25  
    26  func TestDiffGraphsRemovedPackage2(t *testing.T) {
    27  	changes := readAndDiffGraphs("tools/please_diff_graphs/diff/test_data/removed_package.json", "tools/please_diff_graphs/diff/test_data/before.json", nil, nil, nil)
    28  	expected := []core.BuildLabel{
    29  		core.ParseBuildLabel("//:all_tools", ""),
    30  		core.ParseBuildLabel("//src/cache/tools:cache_cleaner", ""),
    31  		core.ParseBuildLabel("//src/cache/tools:cache_cleaner_platform", ""),
    32  	}
    33  	assert.Equal(t, expected, changes)
    34  }
    35  
    36  func TestDiffGraphsChangedHash(t *testing.T) {
    37  	changes := readAndDiffGraphs("tools/please_diff_graphs/diff/test_data/before.json", "tools/please_diff_graphs/diff/test_data/changed_hash.json", nil, nil, nil)
    38  	expected := []core.BuildLabel{
    39  		core.ParseBuildLabel("//:all_tools", ""),
    40  		core.ParseBuildLabel("//src/cache/server:http_cache_server_bin", ""),
    41  	}
    42  	assert.Equal(t, expected, changes)
    43  }
    44  
    45  func TestDiffGraphsChangedFile(t *testing.T) {
    46  	changedFile := []string{"src/build/java/net/thoughtmachine/please/test/TestCoverage.java"}
    47  	changes := readAndDiffGraphs("tools/please_diff_graphs/diff/test_data/before.json", "tools/please_diff_graphs/diff/test_data/before.json", changedFile, nil, nil)
    48  	expected := []core.BuildLabel{
    49  		core.ParseBuildLabel("//:all_tools", ""),
    50  		core.ParseBuildLabel("//src/build/java:_junit_runner#jar", ""),
    51  		core.ParseBuildLabel("//src/build/java:junit_runner", ""),
    52  		core.ParseBuildLabel("//src/build/java/net/thoughtmachine/please/test:_junit_runner_parameterized_test#jar", ""),
    53  		core.ParseBuildLabel("//src/build/java/net/thoughtmachine/please/test:_junit_runner_parameterized_test#lib", ""),
    54  		core.ParseBuildLabel("//src/build/java/net/thoughtmachine/please/test:_junit_runner_test#jar", ""),
    55  		core.ParseBuildLabel("//src/build/java/net/thoughtmachine/please/test:_junit_runner_test#lib", ""),
    56  		core.ParseBuildLabel("//src/build/java/net/thoughtmachine/please/test:_please_coverage_class_loader_test#jar", ""),
    57  		core.ParseBuildLabel("//src/build/java/net/thoughtmachine/please/test:_please_coverage_class_loader_test#lib", ""),
    58  		core.ParseBuildLabel("//src/build/java/net/thoughtmachine/please/test:_resources_root_test#jar", ""),
    59  		core.ParseBuildLabel("//src/build/java/net/thoughtmachine/please/test:_resources_root_test#lib", ""),
    60  		core.ParseBuildLabel("//src/build/java/net/thoughtmachine/please/test:_test_coverage_test#jar", ""),
    61  		core.ParseBuildLabel("//src/build/java/net/thoughtmachine/please/test:_test_coverage_test#lib", ""),
    62  		core.ParseBuildLabel("//src/build/java/net/thoughtmachine/please/test:junit_runner", ""),
    63  		core.ParseBuildLabel("//src/build/java/net/thoughtmachine/please/test:junit_runner_parameterized_test", ""),
    64  		core.ParseBuildLabel("//src/build/java/net/thoughtmachine/please/test:junit_runner_test", ""),
    65  		core.ParseBuildLabel("//src/build/java/net/thoughtmachine/please/test:please_coverage_class_loader_test", ""),
    66  		core.ParseBuildLabel("//src/build/java/net/thoughtmachine/please/test:resources_root_test", ""),
    67  		core.ParseBuildLabel("//src/build/java/net/thoughtmachine/please/test:test_coverage_test", ""),
    68  	}
    69  	assert.Equal(t, expected, changes)
    70  }
    71  
    72  func TestDiffGraphsExcludeLabels(t *testing.T) {
    73  	changes := readAndDiffGraphs("tools/please_diff_graphs/diff/test_data/before.json", "tools/please_diff_graphs/diff/test_data/labels.json", nil, nil, []string{"manual"})
    74  	expected := []core.BuildLabel{}
    75  	assert.Equal(t, expected, changes)
    76  }
    77  
    78  func TestDiffGraphsIncludeLabels(t *testing.T) {
    79  	changes := readAndDiffGraphs("tools/please_diff_graphs/diff/test_data/before.json", "tools/please_diff_graphs/diff/test_data/labels2.json", nil, []string{"py"}, nil)
    80  	expected := []core.BuildLabel{
    81  		core.ParseBuildLabel("//src/build/python:pex_import_test", ""),
    82  	}
    83  	assert.Equal(t, expected, changes)
    84  }
    85  
    86  func readAndDiffGraphs(before, after string, changedFiles, include, exclude []string) []core.BuildLabel {
    87  	beforeGraph := ParseGraphOrDie(before)
    88  	afterGraph := ParseGraphOrDie(after)
    89  	return Graphs(beforeGraph, afterGraph, changedFiles, include, exclude, true)
    90  }