[performance] cache account db lookups by public key URI (#795)

Signed-off-by: kim <grufwub@gmail.com>

Signed-off-by: kim <grufwub@gmail.com>
This commit is contained in:
kim
2022-09-02 10:58:42 +01:00
committed by GitHub
parent 614ab12733
commit 077e66381f
6 changed files with 66 additions and 19 deletions

View File

@ -19,6 +19,7 @@
package cache_test
import (
"fmt"
"testing"
"github.com/stretchr/testify/suite"
@ -59,15 +60,15 @@ func (suite *StatusCacheTestSuite) TestStatusCache() {
// Check we can retrieve
check, ok = suite.cache.GetByID(status.ID)
if !ok && !statusIs(status, check) {
suite.Fail("Failed to fetch expected account with ID: %s", status.ID)
suite.Fail(fmt.Sprintf("Failed to fetch expected account with ID: %s", status.ID))
}
check, ok = suite.cache.GetByURI(status.URI)
if status.URI != "" && !ok && !statusIs(status, check) {
suite.Fail("Failed to fetch expected account with URI: %s", status.URI)
suite.Fail(fmt.Sprintf("Failed to fetch expected account with URI: %s", status.URI))
}
check, ok = suite.cache.GetByURL(status.URL)
if status.URL != "" && !ok && !statusIs(status, check) {
suite.Fail("Failed to fetch expected account with URL: %s", status.URL)
suite.Fail(fmt.Sprintf("Failed to fetch expected account with URL: %s", status.URL))
}
}
}
@ -103,5 +104,10 @@ func TestStatusCache(t *testing.T) {
}
func statusIs(status1, status2 *gtsmodel.Status) bool {
return status1.ID == status2.ID && status1.URI == status2.URI && status1.URL == status2.URL
if status1 == nil || status2 == nil {
return status1 == status2
}
return status1.ID == status2.ID &&
status1.URI == status2.URI &&
status1.URL == status2.URL
}