1
0
Fork 0
mirror of https://github.com/anyproto/anytype-heart.git synced 2025-06-10 18:10:49 +09:00

GO-1340: Clean up and fix tests

This commit is contained in:
Sergey 2023-04-25 18:17:59 +02:00 committed by Mikhail Iudin
parent fa20b0a993
commit 676cf39ff7
No known key found for this signature in database
GPG key ID: FAAAA8BAABDFF1C0
2 changed files with 12 additions and 61 deletions

View file

@ -29,6 +29,7 @@ import (
"github.com/anytypeio/go-anytype-middleware/pb"
"github.com/anytypeio/go-anytype-middleware/pkg/lib/datastore"
"github.com/anytypeio/go-anytype-middleware/pkg/lib/localstore/filestore"
"github.com/anytypeio/go-anytype-middleware/pkg/lib/pb/storage"
)
var ctx = context.Background()
@ -44,6 +45,9 @@ func TestFileSync_AddFile(t *testing.T) {
fileId := n.Cid().String()
spaceId := "spaceId"
fx.fileStoreMock.EXPECT().ListByTarget(fileId).Return([]*storage.FileInfo{
{}, // We can use just empty struct here, because we don't use any fields
}, nil).AnyTimes()
// TODO Test when limit is reached
fx.rpcStore.EXPECT().CheckAvailability(gomock.Any(), spaceId, gomock.Any()).DoAndReturn(func(_ context.Context, _ string, cids []cid.Cid) ([]*fileproto.BlockAvailability, error) {
res := lo.Map(cids, func(c cid.Cid, _ int) *fileproto.BlockAvailability {

View file

@ -91,14 +91,9 @@ type FileStore interface {
GetBySource(mill string, source string, opts string) (*storage.FileInfo, error)
GetByChecksum(mill string, checksum string) (*storage.FileInfo, error)
AddTarget(hash string, target string) error
RemoveTarget(hash string, target string) error
ListTargets() ([]string, error)
ListByTarget(target string) ([]*storage.FileInfo, error)
Count() (int, error)
DeleteFile(hash string) error
DeleteByTarget(targetHash string) error
DeleteFileKeys(hash string) error
ListFileKeys() ([]string, error)
List() ([]*storage.FileInfo, error)
RemoveEmpty() error
@ -270,7 +265,7 @@ func (m *dsFileStore) RemoveEmpty() error {
}
if len(v) == 0 {
removed++
err = m.DeleteFileKeys(hash)
err = m.deleteFileKeys(hash)
if err != nil {
log.Errorf("RemoveEmpty failed to delete empty file keys: %s", err)
}
@ -282,22 +277,19 @@ func (m *dsFileStore) RemoveEmpty() error {
return nil
}
func (m *dsFileStore) ListFileKeys() ([]string, error) {
txn, err := m.ds.NewTransaction(true)
func (m *dsFileStore) deleteFileKeys(hash string) error {
txn, err := m.ds.NewTransaction(false)
if err != nil {
return nil, fmt.Errorf("error when creating txn in datastore: %w", err)
return fmt.Errorf("error when creating txn in datastore: %w", err)
}
defer txn.Discard()
res, err := localstore.GetKeys(txn, filesKeysBase.String(), 0)
fileKeysKey := filesKeysBase.ChildString(hash)
err = txn.Delete(fileKeysKey)
if err != nil {
return nil, err
return err
}
return localstore.ExtractKeysFromResults(res)
}
func (m *dsFileStore) DeleteFileKeys(hash string) error {
return nil
return txn.Commit()
}
func (m *dsFileStore) addSingleFileKeys(txn ds.Txn, hash string, keys map[string]string) error {
@ -380,38 +372,6 @@ func (m *dsFileStore) AddTarget(hash string, target string) error {
return m.ds.Put(fileInfoKey, b)
}
func (m *dsFileStore) RemoveTarget(hash string, target string) error {
// lock to protect from race conds
m.l.Lock()
defer m.l.Unlock()
file, err := m.GetByHash(hash)
if err != nil {
return err
}
var filtered []string
for _, et := range file.Targets {
if et != target {
filtered = append(filtered, et)
}
}
if len(filtered) == len(file.Targets) {
return nil
}
file.Targets = filtered
b, err := proto.Marshal(file)
if err != nil {
return err
}
fileInfoKey := filesInfoBase.ChildString(file.Hash)
return m.ds.Put(fileInfoKey, b)
}
func (m *dsFileStore) GetByHash(hash string) (*storage.FileInfo, error) {
fileInfoKey := filesInfoBase.ChildString(hash)
b, err := m.ds.Get(fileInfoKey)
@ -557,15 +517,6 @@ func (m *dsFileStore) listByTarget(target string, txn ds.Txn) ([]*storage.FileIn
return files, nil
}
func (m *dsFileStore) Count() (int, error) {
count, err := m.ds.GetSize(filesInfoBase)
if err != nil {
return 0, err
}
return count, nil
}
func (m *dsFileStore) List() ([]*storage.FileInfo, error) {
var infos []*storage.FileInfo
txn, err := m.ds.NewTransaction(true)
@ -647,10 +598,6 @@ func (m *dsFileStore) DeleteFile(hash string) error {
return txn.Commit()
}
func (m *dsFileStore) DeleteByTarget(targetHash string) error {
return nil
}
func (m *dsFileStore) deleteFile(txn ds.Txn, file *storage.FileInfo) error {
err := localstore.RemoveIndexes(m, m.ds, file, file.Hash)
if err != nil {