Remove spec GetDataset/GetDatabase/GetPath, update all clients (#2815)

These are now ForDataset/ForDatabase/ForPath.
This commit is contained in:
Ben Kalman
2016-11-09 17:34:39 -08:00
committed by GitHub
parent 45a36a46e9
commit cdfbee1b3d
21 changed files with 314 additions and 775 deletions
+57 -51
View File
@@ -23,26 +23,26 @@ func TestNomsCommit(t *testing.T) {
suite.Run(t, &nomsCommitTestSuite{})
}
func (s *nomsCommitTestSuite) setupDataset(name string, doCommit bool) (db datas.Database, ds datas.Dataset, dsStr string, ref types.Ref) {
func (s *nomsCommitTestSuite) setupDataset(name string, doCommit bool) (sp spec.Spec, ref types.Ref) {
var err error
dsStr = spec.CreateValueSpecString("ldb", s.LdbDir, name)
db, ds, err = spec.GetDataset(dsStr)
sp, err = spec.ForDataset(spec.CreateValueSpecString("ldb", s.LdbDir, name))
s.NoError(err)
v := types.String("testcommit")
ref = db.WriteValue(v)
ref = sp.GetDatabase().WriteValue(v)
if doCommit {
ds, err = db.CommitValue(ds, v)
_, err = sp.GetDatabase().CommitValue(sp.GetDataset(), v)
s.NoError(err)
}
return
}
func (s *nomsCommitTestSuite) TestNomsCommitReadPathFromStdin() {
db, ds, dsStr, ref := s.setupDataset("commitTestStdin", false)
defer db.Close()
sp, ref := s.setupDataset("commitTestStdin", false)
defer sp.Close()
_, ok := ds.MaybeHead()
_, ok := sp.GetDataset().MaybeHead()
s.False(ok, "should not have a commit")
oldStdin := os.Stdin
@@ -58,13 +58,14 @@ func (s *nomsCommitTestSuite) TestNomsCommitReadPathFromStdin() {
stdinWriter.Write([]byte("#" + ref.TargetHash().String() + "\n"))
stdinWriter.Close()
}()
stdoutString, stderrString := s.MustRun(main, []string{"commit", dsStr})
stdoutString, stderrString := s.MustRun(main, []string{"commit", sp.Spec})
s.Empty(stderrString)
s.Contains(stdoutString, "New head #")
db, ds, err = spec.GetDataset(dsStr)
s.NoError(err)
commit, ok := ds.MaybeHead()
sp, _ = spec.ForDataset(sp.Spec)
defer sp.Close()
commit, ok := sp.GetDataset().MaybeHead()
s.True(ok, "should have a commit now")
value := commit.Get(datas.ValueField)
s.True(value.Hash() == ref.TargetHash(), "commit.value hash == writevalue hash")
@@ -74,19 +75,20 @@ func (s *nomsCommitTestSuite) TestNomsCommitReadPathFromStdin() {
}
func (s *nomsCommitTestSuite) TestNomsCommitToDatasetWithoutHead() {
db, ds, dsStr, ref := s.setupDataset("commitTest", false)
defer db.Close()
sp, ref := s.setupDataset("commitTest", false)
defer sp.Close()
_, ok := ds.MaybeHead()
_, ok := sp.GetDataset().MaybeHead()
s.False(ok, "should not have a commit")
stdoutString, stderrString := s.MustRun(main, []string{"commit", "#" + ref.TargetHash().String(), dsStr})
stdoutString, stderrString := s.MustRun(main, []string{"commit", "#" + ref.TargetHash().String(), sp.Spec})
s.Empty(stderrString)
s.Contains(stdoutString, "New head #")
db, ds, err := spec.GetDataset(dsStr)
s.NoError(err)
commit, ok := ds.MaybeHead()
sp, _ = spec.ForDataset(sp.Spec)
defer sp.Close()
commit, ok := sp.GetDataset().MaybeHead()
s.True(ok, "should have a commit now")
value := commit.Get(datas.ValueField)
s.True(value.Hash() == ref.TargetHash(), "commit.value hash == writevalue hash")
@@ -102,17 +104,17 @@ func structFieldEqual(old, now types.Struct, field string) bool {
}
func (s *nomsCommitTestSuite) runDuplicateTest(allowDuplicate bool) {
db, ds, dsStr, ref := s.setupDataset("commitTestDuplicate", true)
defer db.Close()
sp, ref := s.setupDataset("commitTestDuplicate", true)
defer sp.Close()
_, ok := ds.MaybeHeadValue()
_, ok := sp.GetDataset().MaybeHeadValue()
s.True(ok, "should have a commit")
cliOptions := []string{"commit"}
if allowDuplicate {
cliOptions = append(cliOptions, "--allow-dupe=1")
}
cliOptions = append(cliOptions, "#"+ref.TargetHash().String(), dsStr)
cliOptions = append(cliOptions, "#"+ref.TargetHash().String(), sp.Spec)
stdoutString, stderrString := s.MustRun(main, cliOptions)
s.Empty(stderrString)
@@ -123,9 +125,10 @@ func (s *nomsCommitTestSuite) runDuplicateTest(allowDuplicate bool) {
s.Contains(stdoutString, "Commit aborted")
}
db, ds, err := spec.GetDataset(dsStr)
s.NoError(err)
value, ok := ds.MaybeHeadValue()
sp, _ = spec.ForDataset(sp.Spec)
defer sp.Close()
value, ok := sp.GetDataset().MaybeHeadValue()
s.True(ok, "should still have a commit")
s.True(value.Hash() == ref.TargetHash(), "commit.value hash == previous commit hash")
}
@@ -136,17 +139,19 @@ func (s *nomsCommitTestSuite) TestNomsCommitDuplicate() {
}
func (s *nomsCommitTestSuite) TestNomsCommitMetadata() {
db, ds, dsStr, ref := s.setupDataset("commitTestMetadata", true)
metaOld := ds.Head().Get(datas.MetaField).(types.Struct)
sp, ref := s.setupDataset("commitTestMetadata", true)
defer sp.Close()
stdoutString, stderrString := s.MustRun(main, []string{"commit", "--allow-dupe=1", "--message=foo", "#" + ref.TargetHash().String(), dsStr})
metaOld := sp.GetDataset().Head().Get(datas.MetaField).(types.Struct)
stdoutString, stderrString := s.MustRun(main, []string{"commit", "--allow-dupe=1", "--message=foo", "#" + ref.TargetHash().String(), sp.Spec})
s.Empty(stderrString)
s.Contains(stdoutString, "New head #")
db.Close()
db, ds, err := spec.GetDataset(dsStr)
s.NoError(err)
metaNew := ds.Head().Get(datas.MetaField).(types.Struct)
sp, _ = spec.ForDataset(sp.Spec)
defer sp.Close()
metaNew := sp.GetDataset().Head().Get(datas.MetaField).(types.Struct)
s.False(metaOld.Equals(metaNew), "meta didn't change")
s.False(structFieldEqual(metaOld, metaNew, "date"), "date didn't change")
@@ -154,53 +159,54 @@ func (s *nomsCommitTestSuite) TestNomsCommitMetadata() {
s.True(metaNew.Get("message").Equals(types.String("foo")), "message wasn't set")
metaOld = metaNew
stdoutString, stderrString = s.MustRun(main, []string{"commit", "--allow-dupe=1", "--meta=message=bar", "--date=" + spec.CommitMetaDateFormat, "#" + ref.TargetHash().String(), dsStr})
stdoutString, stderrString = s.MustRun(main, []string{"commit", "--allow-dupe=1", "--meta=message=bar", "--date=" + spec.CommitMetaDateFormat, "#" + ref.TargetHash().String(), sp.Spec})
s.Empty(stderrString)
s.Contains(stdoutString, "New head #")
db.Close()
db, ds, err = spec.GetDataset(dsStr)
s.NoError(err)
metaNew = ds.Head().Get(datas.MetaField).(types.Struct)
sp, _ = spec.ForDataset(sp.Spec)
defer sp.Close()
metaNew = sp.GetDataset().Head().Get(datas.MetaField).(types.Struct)
s.False(metaOld.Equals(metaNew), "meta didn't change")
s.False(structFieldEqual(metaOld, metaNew, "date"), "date didn't change")
s.False(structFieldEqual(metaOld, metaNew, "message"), "message didn't change")
s.True(metaNew.Get("message").Equals(types.String("bar")), "message wasn't set")
db.Close()
}
func (s *nomsCommitTestSuite) TestNomsCommitHashNotFound() {
db, _, dsStr, _ := s.setupDataset("commitTestBadHash", true)
defer db.Close()
sp, _ := s.setupDataset("commitTestBadHash", true)
defer sp.Close()
s.Panics(func() {
s.MustRun(main, []string{"commit", "#9ei6fbrs0ujo51vifd3f2eebufo4lgdu", dsStr})
s.MustRun(main, []string{"commit", "#9ei6fbrs0ujo51vifd3f2eebufo4lgdu", sp.Spec})
})
}
func (s *nomsCommitTestSuite) TestNomsCommitMetadataBadDateFormat() {
db, _, dsStr, ref := s.setupDataset("commitTestMetadata", true)
defer db.Close()
sp, ref := s.setupDataset("commitTestMetadata", true)
defer sp.Close()
s.Panics(func() {
s.MustRun(main, []string{"commit", "--allow-dupe=1", "--date=a", "#" + ref.TargetHash().String(), dsStr})
s.MustRun(main, []string{"commit", "--allow-dupe=1", "--date=a", "#" + ref.TargetHash().String(), sp.Spec})
})
}
func (s *nomsCommitTestSuite) TestNomsCommitInvalidMetadataPaths() {
db, _, dsStr, ref := s.setupDataset("commitTestMetadataPaths", true)
defer db.Close()
sp, ref := s.setupDataset("commitTestMetadataPaths", true)
defer sp.Close()
s.Panics(func() {
s.MustRun(main, []string{"commit", "--allow-dupe=1", "--meta-p=#beef", "#" + ref.TargetHash().String(), dsStr})
s.MustRun(main, []string{"commit", "--allow-dupe=1", "--meta-p=#beef", "#" + ref.TargetHash().String(), sp.Spec})
})
}
func (s *nomsCommitTestSuite) TestNomsCommitInvalidMetadataFieldName() {
db, _, dsStr, ref := s.setupDataset("commitTestMetadataFields", true)
defer db.Close()
sp, ref := s.setupDataset("commitTestMetadataFields", true)
defer sp.Close()
s.Panics(func() {
s.MustRun(main, []string{"commit", "--allow-dupe=1", "--meta=_foo=bar", "#" + ref.TargetHash().String(), dsStr})
s.MustRun(main, []string{"commit", "--allow-dupe=1", "--meta=_foo=bar", "#" + ref.TargetHash().String(), sp.Spec})
})
}
+10 -12
View File
@@ -24,12 +24,11 @@ func TestNomsDiff(t *testing.T) {
}
func (s *nomsDiffTestSuite) TestNomsDiffOutputNotTruncated() {
datasetName := "diffTest"
str := spec.CreateValueSpecString("ldb", s.LdbDir, datasetName)
db, ds, err := spec.GetDataset(str)
sp, err := spec.ForDataset(spec.CreateValueSpecString("ldb", s.LdbDir, "diffTest"))
s.NoError(err)
defer sp.Close()
ds, err = addCommit(ds, "first commit")
ds, err := addCommit(sp.GetDataset(), "first commit")
s.NoError(err)
r1 := spec.CreateValueSpecString("ldb", s.LdbDir, "#"+ds.HeadRef().TargetHash().String())
@@ -37,19 +36,18 @@ func (s *nomsDiffTestSuite) TestNomsDiffOutputNotTruncated() {
s.NoError(err)
r2 := spec.CreateValueSpecString("ldb", s.LdbDir, "#"+ds.HeadRef().TargetHash().String())
db.Close()
out, _ := s.MustRun(main, []string{"diff", r1, r2})
s.True(strings.HasSuffix(out, "\"second commit\"\n }\n"), out)
}
func (s *nomsDiffTestSuite) TestNomsDiffSummarize() {
datasetName := "diffSummarizeTest"
str := spec.CreateValueSpecString("ldb", s.LdbDir, datasetName)
store, ds, err := spec.GetDataset(str)
sp, err := spec.ForDataset(spec.CreateValueSpecString("ldb", s.LdbDir, "diffSummarizeTest"))
s.NoError(err)
defer store.Close()
defer sp.Close()
ds, err = addCommit(ds, "first commit")
db := sp.GetDatabase()
ds, err := addCommit(sp.GetDataset(), "first commit")
s.NoError(err)
r1 := spec.CreateHashSpecString("ldb", s.LdbDir, ds.HeadRef().TargetHash())
@@ -64,11 +62,11 @@ func (s *nomsDiffTestSuite) TestNomsDiffSummarize() {
out, _ = s.MustRun(main, []string{"diff", "--summarize", r1 + ".value", r2 + ".value"})
s.NotContains(out, "Comparing commit values")
ds, err = store.CommitValue(ds, types.NewList(types.Number(1), types.Number(2), types.Number(3), types.Number(4)))
ds, err = db.CommitValue(ds, types.NewList(types.Number(1), types.Number(2), types.Number(3), types.Number(4)))
s.NoError(err)
r3 := spec.CreateHashSpecString("ldb", s.LdbDir, ds.HeadRef().TargetHash()) + ".value"
ds, err = store.CommitValue(ds, types.NewList(types.Number(1), types.Number(222), types.Number(4)))
ds, err = db.CommitValue(ds, types.NewList(types.Number(1), types.Number(222), types.Number(4)))
s.NoError(err)
r4 := spec.CreateHashSpecString("ldb", s.LdbDir, ds.HeadRef().TargetHash()) + ".value"
+37 -36
View File
@@ -25,27 +25,28 @@ type nomsLogTestSuite struct {
}
func testCommitInResults(s *nomsLogTestSuite, str string, i int) {
db, ds, err := spec.GetDataset(str)
sp, err := spec.ForDataset(str)
s.NoError(err)
ds, err = db.CommitValue(ds, types.Number(i))
defer sp.Close()
sp.GetDatabase().CommitValue(sp.GetDataset(), types.Number(i))
s.NoError(err)
commit := ds.Head()
db.Close()
commit := sp.GetDataset().Head()
res, _ := s.MustRun(main, []string{"log", str})
s.Contains(res, commit.Hash().String())
}
func (s *nomsLogTestSuite) TestNomsLog() {
datasetName := "dsTest"
str := spec.CreateValueSpecString("ldb", s.LdbDir, datasetName)
db, _, err := spec.GetDataset(str)
sp, err := spec.ForDataset(spec.CreateValueSpecString("ldb", s.LdbDir, "dsTest"))
s.NoError(err)
defer sp.Close()
db.Close()
s.Panics(func() { s.MustRun(main, []string{"log", str}) })
sp.GetDatabase() // create the database
s.Panics(func() { s.MustRun(main, []string{"log", sp.Spec}) })
testCommitInResults(s, str, 1)
testCommitInResults(s, str, 2)
testCommitInResults(s, sp.Spec, 1)
testCommitInResults(s, sp.Spec, 2)
}
func addCommit(ds datas.Dataset, v string) (datas.Dataset, error) {
@@ -67,12 +68,13 @@ func mergeDatasets(ds1, ds2 datas.Dataset, v string) (datas.Dataset, error) {
}
func (s *nomsLogTestSuite) TestNArg() {
str := spec.CreateDatabaseSpecString("ldb", s.LdbDir)
dsName := "nArgTest"
db, err := spec.GetDatabase(str)
s.NoError(err)
ds := db.GetDataset(dsName)
sp, err := spec.ForDatabase(spec.CreateDatabaseSpecString("ldb", s.LdbDir))
s.NoError(err)
defer sp.Close()
ds := sp.GetDatabase().GetDataset(dsName)
ds, err = addCommit(ds, "1")
h1 := ds.Head().Hash()
@@ -83,7 +85,6 @@ func (s *nomsLogTestSuite) TestNArg() {
ds, err = addCommit(ds, "3")
s.NoError(err)
h3 := ds.Head().Hash()
db.Close()
dsSpec := spec.CreateValueSpecString("ldb", s.LdbDir, dsName)
res, _ := s.MustRun(main, []string{"log", "-n1", dsSpec})
@@ -103,10 +104,11 @@ func (s *nomsLogTestSuite) TestNArg() {
}
func (s *nomsLogTestSuite) TestEmptyCommit() {
str := spec.CreateDatabaseSpecString("ldb", s.LdbDir)
db, err := spec.GetDatabase(str)
sp, err := spec.ForDatabase(spec.CreateDatabaseSpecString("ldb", s.LdbDir))
s.NoError(err)
defer sp.Close()
db := sp.GetDatabase()
ds := db.GetDataset("ds1")
meta := types.NewStruct("Meta", map[string]types.Value{
@@ -116,8 +118,8 @@ func (s *nomsLogTestSuite) TestEmptyCommit() {
ds, err = db.Commit(ds, types.String("1"), datas.CommitOptions{Meta: meta})
s.NoError(err)
db.Commit(ds, types.String("2"), datas.CommitOptions{})
db.Close()
ds, err = db.Commit(ds, types.String("2"), datas.CommitOptions{})
s.NoError(err)
dsSpec := spec.CreateValueSpecString("ldb", s.LdbDir, "ds1")
res, _ := s.MustRun(main, []string{"log", "--show-value=false", dsSpec})
@@ -128,12 +130,13 @@ func (s *nomsLogTestSuite) TestEmptyCommit() {
}
func (s *nomsLogTestSuite) TestNomsGraph1() {
str := spec.CreateDatabaseSpecString("ldb", s.LdbDir)
db, err := spec.GetDatabase(str)
sp, err := spec.ForDatabase(spec.CreateDatabaseSpecString("ldb", s.LdbDir))
s.NoError(err)
defer sp.Close()
db := sp.GetDatabase()
b1 := db.GetDataset("b1")
b1, err = addCommit(b1, "1")
s.NoError(err)
b1, err = addCommit(b1, "2")
@@ -173,7 +176,6 @@ func (s *nomsLogTestSuite) TestNomsGraph1() {
b1, err = addCommit(b1, "7")
s.NoError(err)
b1.Database().Close()
res, _ := s.MustRun(main, []string{"log", "--graph", "--show-value=true", spec.CreateValueSpecString("ldb", s.LdbDir, "b1")})
s.Equal(graphRes1, res)
res, _ = s.MustRun(main, []string{"log", "--graph", "--show-value=false", spec.CreateValueSpecString("ldb", s.LdbDir, "b1")})
@@ -181,12 +183,13 @@ func (s *nomsLogTestSuite) TestNomsGraph1() {
}
func (s *nomsLogTestSuite) TestNomsGraph2() {
str := spec.CreateDatabaseSpecString("ldb", s.LdbDir)
db, err := spec.GetDatabase(str)
sp, err := spec.ForDatabase(spec.CreateDatabaseSpecString("ldb", s.LdbDir))
s.NoError(err)
defer sp.Close()
db := sp.GetDatabase()
ba := db.GetDataset("ba")
ba, err = addCommit(ba, "1")
s.NoError(err)
@@ -204,8 +207,6 @@ func (s *nomsLogTestSuite) TestNomsGraph2() {
_, err = mergeDatasets(ba, bc, "101")
s.NoError(err)
db.Close()
res, _ := s.MustRun(main, []string{"log", "--graph", "--show-value=true", spec.CreateValueSpecString("ldb", s.LdbDir, "ba")})
s.Equal(graphRes2, res)
res, _ = s.MustRun(main, []string{"log", "--graph", "--show-value=false", spec.CreateValueSpecString("ldb", s.LdbDir, "ba")})
@@ -213,9 +214,11 @@ func (s *nomsLogTestSuite) TestNomsGraph2() {
}
func (s *nomsLogTestSuite) TestNomsGraph3() {
str := spec.CreateDatabaseSpecString("ldb", s.LdbDir)
db, err := spec.GetDatabase(str)
sp, err := spec.ForDatabase(spec.CreateDatabaseSpecString("ldb", s.LdbDir))
s.NoError(err)
defer sp.Close()
db := sp.GetDatabase()
w := db.GetDataset("w")
@@ -246,7 +249,6 @@ func (s *nomsLogTestSuite) TestNomsGraph3() {
_, err = mergeDatasets(w, z, "2222-wz")
s.NoError(err)
db.Close()
res, _ := s.MustRun(main, []string{"log", "--graph", "--show-value=true", spec.CreateValueSpecString("ldb", s.LdbDir, "w")})
test.EqualsIgnoreHashes(s.T(), graphRes3, res)
res, _ = s.MustRun(main, []string{"log", "--graph", "--show-value=false", spec.CreateValueSpecString("ldb", s.LdbDir, "w")})
@@ -262,11 +264,11 @@ func (s *nomsLogTestSuite) TestTruncation() {
return types.NewList(nv...)
}
str := spec.CreateDatabaseSpecString("ldb", s.LdbDir)
db, err := spec.GetDatabase(str)
sp, err := spec.ForDatabase(spec.CreateDatabaseSpecString("ldb", s.LdbDir))
s.NoError(err)
defer sp.Close()
t := db.GetDataset("truncate")
t := sp.GetDatabase().GetDataset("truncate")
t, err = addCommit(t, "the first line")
s.NoError(err)
@@ -274,7 +276,6 @@ func (s *nomsLogTestSuite) TestTruncation() {
l := []string{"one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven"}
_, err = addCommitWithValue(t, toNomsList(l))
s.NoError(err)
db.Close()
dsSpec := spec.CreateValueSpecString("ldb", s.LdbDir, "truncate")
res, _ := s.MustRun(main, []string{"log", "--graph", "--show-value=true", dsSpec})
+20 -14
View File
@@ -84,22 +84,25 @@ func (s *nomsMergeTestSuite) TestNomsMerge_Success() {
}
func (s *nomsMergeTestSuite) setupMergeDataset(name string, data types.StructData, p types.Set) types.Ref {
db, ds, _ := spec.GetDataset(spec.CreateValueSpecString("ldb", s.LdbDir, name))
defer db.Close()
ds, err := db.Commit(ds, types.NewStruct("", data), datas.CommitOptions{Parents: p})
sp, err := spec.ForDataset(spec.CreateValueSpecString("ldb", s.LdbDir, name))
s.NoError(err)
defer sp.Close()
ds := sp.GetDataset()
ds, err = sp.GetDatabase().Commit(ds, types.NewStruct("", data), datas.CommitOptions{Parents: p})
s.NoError(err)
return ds.HeadRef()
}
func (s *nomsMergeTestSuite) validateDataset(name string, expected types.Struct, parents ...types.Value) {
db, ds, err := spec.GetDataset(spec.CreateValueSpecString("ldb", s.LdbDir, name))
sp, err := spec.ForDataset(spec.CreateValueSpecString("ldb", s.LdbDir, name))
if s.NoError(err) {
commit := ds.Head()
defer sp.Close()
commit := sp.GetDataset().Head()
s.True(commit.Get(datas.ParentsField).Equals(types.NewSet(parents...)))
merged := ds.HeadValue()
merged := sp.GetDataset().HeadValue()
s.True(expected.Equals(merged), "%s != %s", types.EncodedValue(expected), types.EncodedValue(merged))
}
defer db.Close()
}
func (s *nomsMergeTestSuite) TestNomsMerge_Left() {
@@ -148,7 +151,10 @@ func (s *nomsMergeTestSuite) TestNomsMerge_Conflict() {
}
func (s *nomsMergeTestSuite) TestBadInput() {
sp := spec.CreateDatabaseSpecString("ldb", s.LdbDir)
sp, err := spec.ForDatabase(spec.CreateDatabaseSpecString("ldb", s.LdbDir))
s.NoError(err)
defer sp.Close()
l, r, o := "left", "right", "output"
type c struct {
args []string
@@ -159,20 +165,20 @@ func (s *nomsMergeTestSuite) TestBadInput() {
{[]string{"foo", "bar"}, "error: Incorrect number of arguments\n"},
{[]string{"foo", "bar", "baz"}, "error: Incorrect number of arguments\n"},
{[]string{"foo", "bar", "baz", "quux", "five"}, "error: Incorrect number of arguments\n"},
{[]string{sp, l + "!!", r, o}, "error: Invalid dataset " + l + "!!, must match [a-zA-Z0-9\\-_/]+\n"},
{[]string{sp, l + "2", r, o}, "error: Dataset " + l + "2 has no data\n"},
{[]string{sp, l, r + "2", o}, "error: Dataset " + r + "2 has no data\n"},
{[]string{sp, l, r, "!invalid"}, "error: Invalid dataset !invalid, must match [a-zA-Z0-9\\-_/]+\n"},
{[]string{sp.Spec, l + "!!", r, o}, "error: Invalid dataset " + l + "!!, must match [a-zA-Z0-9\\-_/]+\n"},
{[]string{sp.Spec, l + "2", r, o}, "error: Dataset " + l + "2 has no data\n"},
{[]string{sp.Spec, l, r + "2", o}, "error: Dataset " + r + "2 has no data\n"},
{[]string{sp.Spec, l, r, "!invalid"}, "error: Invalid dataset !invalid, must match [a-zA-Z0-9\\-_/]+\n"},
}
db, _ := spec.GetDatabase(sp)
db := sp.GetDatabase()
prep := func(dsName string) {
ds := db.GetDataset(dsName)
db.CommitValue(ds, types.NewMap(types.String("foo"), types.String("bar")))
}
prep(l)
prep(r)
db.Close()
for _, c := range cases {
stdout, stderr, err := s.Run(main, append([]string{"merge"}, c.args...))
+8 -4
View File
@@ -38,9 +38,11 @@ func runMigrate(args []string) int {
// TODO: parallelize
// TODO: incrementalize
sourceDb, sourceValue, err := v7spec.GetPath(args[0])
v7Path, err := v7spec.ForPath(args[0])
d.CheckError(err)
defer sourceDb.Close()
defer v7Path.Close()
sourceDb, sourceValue := v7Path.GetDatabase(), v7Path.GetValue()
if sourceValue == nil {
d.CheckErrorNoUsage(fmt.Errorf("Value not found: %s", args[0]))
@@ -48,9 +50,11 @@ func runMigrate(args []string) int {
isCommit := v7datas.IsCommitType(sourceValue.Type())
sinkDb, sinkDataset, err := spec.GetDataset(args[1])
vNewDataset, err := spec.ForDataset(args[1])
d.CheckError(err)
defer sinkDb.Close()
defer vNewDataset.Close()
sinkDb, sinkDataset := vNewDataset.GetDatabase(), vNewDataset.GetDataset()
if isCommit {
// Need to migrate both value and meta fields.
+9 -10
View File
@@ -25,18 +25,16 @@ type nomsMigrateTestSuite struct {
}
func (s *nomsMigrateTestSuite) writeTestData(str string, value v7types.Value, meta v7types.Value) {
db, ds, err := v7spec.GetDataset(str)
sp, err := v7spec.ForDataset(str)
s.NoError(err)
defer sp.Close()
_, err = db.Commit(ds, value, v7datas.CommitOptions{
_, err = sp.GetDatabase().Commit(sp.GetDataset(), value, v7datas.CommitOptions{
Meta: v7types.NewStruct("", v7types.StructData{
"value": meta,
}),
})
s.NoError(err)
err = db.Close()
s.NoError(err)
}
func (s *nomsMigrateTestSuite) TestNomsMigrate() {
@@ -56,10 +54,11 @@ func (s *nomsMigrateTestSuite) TestNomsMigrate() {
s.Equal("", outStr)
s.Equal("", errStr)
destDb, destDs, err := spec.GetDataset(destStr)
sp, err := spec.ForDataset(destStr)
s.NoError(err)
defer destDb.Close()
defer sp.Close()
destDs := sp.GetDataset()
s.True(destDs.HeadValue().Equals(types.String(str)))
s.True(destDs.Head().Get("meta").(types.Struct).Get("value").Equals(types.Number(42)))
}
@@ -83,11 +82,11 @@ func (s *nomsMigrateTestSuite) TestNomsMigrateNonCommit() {
s.Equal("", outStr)
s.Equal("", errStr)
destDb, destDs, err := spec.GetDataset(destStr)
sp, err := spec.ForDataset(destStr)
s.NoError(err)
defer destDb.Close()
defer sp.Close()
s.True(destDs.HeadValue().Equals(types.String(str)))
s.True(sp.GetDataset().HeadValue().Equals(types.String(str)))
}
+6 -7
View File
@@ -7,7 +7,6 @@ package main
import (
"testing"
"github.com/attic-labs/noms/go/d"
"github.com/attic-labs/noms/go/spec"
"github.com/attic-labs/noms/go/types"
"github.com/attic-labs/noms/go/util/clienttest"
@@ -32,15 +31,15 @@ const (
)
func (s *nomsShowTestSuite) writeTestData(str string, value types.Value) types.Ref {
db, ds, err := spec.GetDataset(str)
d.Chk.NoError(err)
sp, err := spec.ForDataset(str)
s.NoError(err)
defer sp.Close()
db := sp.GetDatabase()
r1 := db.WriteValue(value)
ds, err = db.CommitValue(ds, r1)
d.Chk.NoError(err)
_, err = db.CommitValue(sp.GetDataset(), r1)
s.NoError(err)
err = db.Close()
d.Chk.NoError(err)
return r1
}