class TestGlacierSNSAuto(TestGlacierSNS): def test_sync_auto_basic(self): """ No configuration """ sns_options = {'topic': 'aws-glacier-notifications', 'topics_present': False} self.gw = GlacierWrapper(**self.args) vault_name = "test_vvault0" # Lets create one vault for our testing purposes self.gw.mkvault(vault_name) # Only after a call to one of gw functions was executed # is glacierconn available gc = vars(self.gw)['glacierconn'] # No vault notifications set for fresh vault with self.assertRaises(UnexpectedHTTPResponseError) as cm: gc.get_vault_notifications(vault_name) self.assertEqual(cm.exception.status, 404) self.assertEqual(cm.exception.message, ("Expected 200, got (404, " "code=ResourceNotFoundException, " "message=No notification configuration " "is set for vault: %s)") % (vault_name,)) # Set all vaults response = self.gw.sns_sync(sns_options=sns_options, output="csv") successful_vaults = [r["Vault Name"] for r in response] self.assertIn(vault_name, successful_vaults) # Check out vault has set notifications vaults = [vault[u'VaultARN'].split("vaults/")[-1] for vault in self.gw.lsvault()] for vault in vaults: response = gc.get_vault_notifications(vault) events = response['Events'] self.assertIn(u"ArchiveRetrievalCompleted", events) self.assertIn(u"InventoryRetrievalCompleted", events) # Remove test vault self.gw.rmvault(vault_name)