diff options
author | 2022-11-15 18:45:15 +0000 | |
---|---|---|
committer | 2022-11-15 18:45:15 +0000 | |
commit | 8598dea98b872647393117704659878d9b38d4fc (patch) | |
tree | 1940168912dc7f54af723439dbc9f6e0a42f30ae /internal/cache/account_test.go | |
parent | [docs] Both HTTP proxies and NAT can cause rate limiting issues (#1053) (diff) | |
download | gotosocial-8598dea98b872647393117704659878d9b38d4fc.tar.xz |
[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
Diffstat (limited to 'internal/cache/account_test.go')
-rw-r--r-- | internal/cache/account_test.go | 96 |
1 files changed, 0 insertions, 96 deletions
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 <http://www.gnu.org/licenses/>. -*/ - -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 -} |