From 8598dea98b872647393117704659878d9b38d4fc Mon Sep 17 00:00:00 2001 From: kim <89579420+NyaaaWhatsUpDoc@users.noreply.github.com> Date: Tue, 15 Nov 2022 18:45:15 +0000 Subject: [chore] update database caching library (#1040) * convert most of the caches to use result.Cache{} * add caching of emojis * fix issues causing failing tests * update go-cache/v2 instances with v3 * fix getnotification * add a note about the left-in StatusCreate comment * update EmojiCategory db access to use new result.Cache{} * fix possible panic in getstatusparents * further proof that kim is not stinky --- internal/cache/account_test.go | 96 ------------------------------------------ 1 file changed, 96 deletions(-) delete mode 100644 internal/cache/account_test.go (limited to 'internal/cache/account_test.go') diff --git a/internal/cache/account_test.go b/internal/cache/account_test.go deleted file mode 100644 index d373e5f1d..000000000 --- a/internal/cache/account_test.go +++ /dev/null @@ -1,96 +0,0 @@ -/* - GoToSocial - Copyright (C) 2021-2022 GoToSocial Authors admin@gotosocial.org - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Affero General Public License for more details. - - You should have received a copy of the GNU Affero General Public License - along with this program. If not, see . -*/ - -package cache_test - -import ( - "fmt" - "testing" - - "github.com/stretchr/testify/suite" - "github.com/superseriousbusiness/gotosocial/internal/cache" - "github.com/superseriousbusiness/gotosocial/internal/gtsmodel" - "github.com/superseriousbusiness/gotosocial/testrig" -) - -type AccountCacheTestSuite struct { - suite.Suite - data map[string]*gtsmodel.Account - cache *cache.AccountCache -} - -func (suite *AccountCacheTestSuite) SetupSuite() { - suite.data = testrig.NewTestAccounts() -} - -func (suite *AccountCacheTestSuite) SetupTest() { - suite.cache = cache.NewAccountCache() -} - -func (suite *AccountCacheTestSuite) TearDownTest() { - suite.data = nil - suite.cache = nil -} - -func (suite *AccountCacheTestSuite) TestAccountCache() { - for _, account := range suite.data { - // Place in the cache - suite.cache.Put(account) - } - - for _, account := range suite.data { - var ok bool - var check *gtsmodel.Account - - // Check we can retrieve - check, ok = suite.cache.GetByID(account.ID) - if !ok && !accountIs(account, check) { - suite.Fail(fmt.Sprintf("Failed to fetch expected account with ID: %s", account.ID)) - } - check, ok = suite.cache.GetByURI(account.URI) - if account.URI != "" && !ok && !accountIs(account, check) { - suite.Fail(fmt.Sprintf("Failed to fetch expected account with URI: %s", account.URI)) - } - check, ok = suite.cache.GetByURL(account.URL) - if account.URL != "" && !ok && !accountIs(account, check) { - suite.Fail(fmt.Sprintf("Failed to fetch expected account with URL: %s", account.URL)) - } - check, ok = suite.cache.GetByPubkeyID(account.PublicKeyURI) - if account.PublicKeyURI != "" && !ok && !accountIs(account, check) { - suite.Fail(fmt.Sprintf("Failed to fetch expected account with public key URI: %s", account.PublicKeyURI)) - } - check, ok = suite.cache.GetByUsernameDomain(account.Username, account.Domain) - if !ok && !accountIs(account, check) { - suite.Fail(fmt.Sprintf("Failed to fetch expected account with username/domain: %s/%s", account.Username, account.Domain)) - } - } -} - -func TestAccountCache(t *testing.T) { - suite.Run(t, &AccountCacheTestSuite{}) -} - -func accountIs(account1, account2 *gtsmodel.Account) bool { - if account1 == nil || account2 == nil { - return account1 == account2 - } - return account1.ID == account2.ID && - account1.URI == account2.URI && - account1.URL == account2.URL && - account1.PublicKeyURI == account2.PublicKeyURI -} -- cgit v1.2.3