8936: update keep-block-check and keep-rsync to properly use blob-signature-ttl to...
[arvados.git] / tools / keep-block-check / keep-block-check_test.go
index 6c776126ab3f6627130930c1f4cde4ec1032f256..e49fe68616626275f00ba5bce21877dd969207dd 100644 (file)
@@ -72,6 +72,10 @@ func (s *DoMainTestSuite) TearDownTest(c *C) {
 }
 
 func setupKeepBlockCheck(c *C, enforcePermissions bool, keepServicesJSON string) {
+       setupKeepBlockCheckWithTTL(c, enforcePermissions, keepServicesJSON, blobSignatureTTL)
+}
+
+func setupKeepBlockCheckWithTTL(c *C, enforcePermissions bool, keepServicesJSON string, ttl time.Duration) {
        var config apiConfig
        config.APIHost = os.Getenv("ARVADOS_API_HOST")
        config.APIToken = arvadostest.DataManagerToken
@@ -82,7 +86,8 @@ func setupKeepBlockCheck(c *C, enforcePermissions bool, keepServicesJSON string)
 
        // setup keepclients
        var err error
-       kc, err = setupKeepClient(config, keepServicesJSON, blobSignatureTTL)
+       kc, ttl, err = setupKeepClient(config, keepServicesJSON, ttl)
+       c.Assert(ttl, Equals, blobSignatureTTL)
        c.Check(err, IsNil)
 }
 
@@ -167,6 +172,14 @@ func (s *ServerRequiredSuite) TestBlockCheckWithBlobSigning(c *C) {
        checkNoErrorsLogged(c, "Error verifying block", "Block not found")
 }
 
+func (s *ServerRequiredSuite) TestBlockCheckWithBlobSigningAndTTLFromDiscovery(c *C) {
+       setupKeepBlockCheckWithTTL(c, true, "", 0)
+       allLocators := setupTestData(c)
+       err := performKeepBlockCheck(kc, blobSignatureTTL, arvadostest.BlobSigningKey, allLocators, true)
+       c.Check(err, IsNil)
+       checkNoErrorsLogged(c, "Error verifying block", "Block not found")
+}
+
 func (s *ServerRequiredSuite) TestBlockCheck_NoSuchBlock(c *C) {
        setupKeepBlockCheck(c, false, "")
        allLocators := setupTestData(c)