Write state diff to CSV #2

Merged
elizabethengelman merged 47 commits from ee-state-diff into statediff-for-archive-node 2019-01-28 21:31:02 +00:00
2 changed files with 46 additions and 38 deletions
Showing only changes of commit 67a86b1f43 - Show all commits

View File

@ -22,6 +22,7 @@ var (
publisher p.Publisher publisher p.Publisher
dir string dir string
err error err error
testFailedFormatString = "Test failed: %s, %+v"
) )
var expectedCreatedAccountRow = []string{ var expectedCreatedAccountRow = []string{
@ -86,43 +87,46 @@ func TestPublisher(t *testing.T) {
for _, test := range tests { for _, test := range tests {
test(t) test(t)
removeFilesFromDir(dir, t) err := removeFilesFromDir(dir)
if err != nil {
t.Error("Error removing files from temp dir: %s", dir)
}
} }
} }
func removeFilesFromDir(dir string, t *testing.T) { func removeFilesFromDir(dir string,) error {
files, err := filepath.Glob(filepath.Join(dir, "*")) files, err := filepath.Glob(filepath.Join(dir, "*"))
if err != nil { if err != nil {
t.Error() return err
} }
for _, file := range files { for _, file := range files {
err = os.RemoveAll(file) err = os.RemoveAll(file)
if err != nil { if err != nil {
t.Error() return err
} }
} }
return nil
} }
func testColumnHeaders(t *testing.T) { func testColumnHeaders(t *testing.T) {
_, err = publisher.PublishStateDiff(&testhelpers.TestStateDiff) _, err = publisher.PublishStateDiff(&testhelpers.TestStateDiff)
if err != nil { if err != nil {
t.Error(err) t.Errorf(testFailedFormatString, t.Name(), err)
} }
file, err := getTestDiffFile(dir) file, err := getTestDiffFile(dir)
if err != nil { if err != nil {
t.Error(err) t.Errorf(testFailedFormatString, t.Name(), err)
} }
lines, err := csv.NewReader(file).ReadAll() lines, err := csv.NewReader(file).ReadAll()
if err != nil { if err != nil {
t.Error(err) t.Errorf(testFailedFormatString, t.Name(), err)
} }
if len(lines) <= 1 { if len(lines) < 1 {
t.Error() t.Errorf(testFailedFormatString, t.Name(), err)
} }
if !equals(lines[0], p.Headers) { if !equals(lines[0], p.Headers) {
t.Error() t.Error()
} }
@ -132,51 +136,52 @@ func testAccountDiffs(t *testing.T) {
// it persists the created, updated and deleted account diffs to a CSV file // it persists the created, updated and deleted account diffs to a CSV file
_, err = publisher.PublishStateDiff(&testhelpers.TestStateDiff) _, err = publisher.PublishStateDiff(&testhelpers.TestStateDiff)
if err != nil { if err != nil {
t.Error(err) t.Errorf(testFailedFormatString, t.Name(), err)
} }
file, err := getTestDiffFile(dir) file, err := getTestDiffFile(dir)
if err != nil { if err != nil {
t.Error(err) t.Errorf(testFailedFormatString, t.Name(), err)
} }
lines, err := csv.NewReader(file).ReadAll() lines, err := csv.NewReader(file).ReadAll()
if err != nil { if err != nil {
t.Error(err) t.Errorf(testFailedFormatString, t.Name(), err)
} }
if len(lines) <= 3 { if len(lines) <= 3 {
t.Error() t.Errorf(testFailedFormatString, t.Name(), err)
} }
if !equals(lines[1], expectedCreatedAccountRow) { if !equals(lines[1], expectedCreatedAccountRow) {
t.Error() t.Errorf(testFailedFormatString, t.Name(), err)
} }
if !equals(lines[2], expectedUpdatedAccountRow) { if !equals(lines[2], expectedUpdatedAccountRow) {
t.Error() t.Errorf(testFailedFormatString, t.Name(), err)
} }
if !equals(lines[3], expectedDeletedAccountRow) { if !equals(lines[3], expectedDeletedAccountRow) {
t.Error() t.Errorf(testFailedFormatString, t.Name(), err)
} }
} }
func testWhenNoDiff(t *testing.T) { func testWhenNoDiff(t *testing.T) {
//it creates an empty CSV when there is no diff", func() { //it creates an empty CSV when there is no diff
emptyDiff := builder.StateDiff{} emptyDiff := builder.StateDiff{}
_, err = publisher.PublishStateDiff(&emptyDiff) _, err = publisher.PublishStateDiff(&emptyDiff)
if err != nil { if err != nil {
t.Error(err) t.Errorf(testFailedFormatString, t.Name(), err)
} }
file, err := getTestDiffFile(dir) file, err := getTestDiffFile(dir)
if err != nil { if err != nil {
t.Error(err) t.Errorf(testFailedFormatString, t.Name(), err)
} }
lines, err := csv.NewReader(file).ReadAll() lines, err := csv.NewReader(file).ReadAll()
if err != nil { if err != nil {
t.Error(err) t.Errorf(testFailedFormatString, t.Name(), err)
} }
if !equals(len(lines), 1) { if !equals(len(lines), 1) {
t.Error() t.Errorf(testFailedFormatString, t.Name(), err)
} }
} }
@ -185,28 +190,28 @@ func testDefaultPublisher(t *testing.T) {
config := statediff.Config{Path: dir} config := statediff.Config{Path: dir}
publisher, err = p.NewPublisher(config) publisher, err = p.NewPublisher(config)
if err != nil { if err != nil {
t.Error(err) t.Errorf(testFailedFormatString, t.Name(), err)
} }
_, err = publisher.PublishStateDiff(&testhelpers.TestStateDiff) _, err = publisher.PublishStateDiff(&testhelpers.TestStateDiff)
if err != nil { if err != nil {
t.Error(err) t.Errorf(testFailedFormatString, t.Name(), err)
} }
file, err := getTestDiffFile(dir) file, err := getTestDiffFile(dir)
if err != nil { if err != nil {
t.Error(err) t.Errorf(testFailedFormatString, t.Name(), err)
} }
lines, err := csv.NewReader(file).ReadAll() lines, err := csv.NewReader(file).ReadAll()
if err != nil { if err != nil {
t.Error(err) t.Errorf(testFailedFormatString, t.Name(), err)
} }
if !equals(len(lines), 4) { if !equals(len(lines), 4) {
t.Error() t.Errorf(testFailedFormatString, t.Name(), err)
} }
if !equals(lines[0], p.Headers) { if !equals(lines[0], p.Headers) {
t.Error() t.Errorf(testFailedFormatString, t.Name(), err)
} }
} }
@ -215,33 +220,33 @@ func testDefaultDirectory(t *testing.T) {
config := statediff.Config{} config := statediff.Config{}
publisher, err = p.NewPublisher(config) publisher, err = p.NewPublisher(config)
if err != nil { if err != nil {
t.Error(err) t.Errorf(testFailedFormatString, t.Name(), err)
} }
err := os.Chdir(dir) err := os.Chdir(dir)
if err != nil { if err != nil {
t.Error(err) t.Errorf(testFailedFormatString, t.Name(), err)
} }
_, err = publisher.PublishStateDiff(&testhelpers.TestStateDiff) _, err = publisher.PublishStateDiff(&testhelpers.TestStateDiff)
if err != nil { if err != nil {
t.Error(err) t.Errorf(testFailedFormatString, t.Name(), err)
} }
file, err := getTestDiffFile(dir) file, err := getTestDiffFile(dir)
if err != nil { if err != nil {
t.Error(err) t.Errorf(testFailedFormatString, t.Name(), err)
} }
lines, err := csv.NewReader(file).ReadAll() lines, err := csv.NewReader(file).ReadAll()
if err != nil { if err != nil {
t.Error(err) t.Errorf(testFailedFormatString, t.Name(), err)
} }
if !equals(len(lines), 4) { if !equals(len(lines), 4) {
t.Error() t.Errorf(testFailedFormatString, t.Name(), err)
} }
if !equals(lines[0], p.Headers) { if !equals(lines[0], p.Headers) {
t.Error() t.Errorf(testFailedFormatString, t.Name(), err)
} }
} }

View File

@ -58,16 +58,19 @@ func testServiceLoop(t *testing.T) {
//parent and current blocks are passed to the extractor //parent and current blocks are passed to the extractor
expectedCurrentBlocks := []types.Block{*block1, *block2} expectedCurrentBlocks := []types.Block{*block1, *block2}
if !reflect.DeepEqual(extractor.CurrentBlocks, expectedCurrentBlocks) { if !reflect.DeepEqual(extractor.CurrentBlocks, expectedCurrentBlocks) {
t.Errorf("Actual does not equal expected.\nactual:%+v\nexpected: %+v", extractor.CurrentBlocks, expectedCurrentBlocks) t.Error("Test failure:", t.Name())
t.Logf("Actual does not equal expected.\nactual:%+v\nexpected: %+v", extractor.CurrentBlocks, expectedCurrentBlocks)
} }
expectedParentBlocks := []types.Block{*parentBlock1, *parentBlock2} expectedParentBlocks := []types.Block{*parentBlock1, *parentBlock2}
if !reflect.DeepEqual(extractor.ParentBlocks, expectedParentBlocks) { if !reflect.DeepEqual(extractor.ParentBlocks, expectedParentBlocks) {
t.Errorf("Actual does not equal expected.\nactual:%+v\nexpected: %+v", extractor.CurrentBlocks, expectedParentBlocks) t.Error("Test failure:", t.Name())
t.Logf("Actual does not equal expected.\nactual:%+v\nexpected: %+v", extractor.CurrentBlocks, expectedParentBlocks)
} }
//look up the parent block from its hash //look up the parent block from its hash
expectedHashes := []common.Hash{block1.ParentHash(), block2.ParentHash()} expectedHashes := []common.Hash{block1.ParentHash(), block2.ParentHash()}
if !reflect.DeepEqual(blockChain.ParentHashesLookedUp, expectedHashes) { if !reflect.DeepEqual(blockChain.ParentHashesLookedUp, expectedHashes) {
t.Errorf("Actual does not equal expected.\nactual:%+v\nexpected: %+v", blockChain.ParentHashesLookedUp, expectedHashes) t.Error("Test failure:", t.Name())
t.Logf("Actual does not equal expected.\nactual:%+v\nexpected: %+v", blockChain.ParentHashesLookedUp, expectedHashes)
} }
} }