def test_entries(self): with unittest.mock.patch( 'avocado.core.dependencies.requirements.cache.backends.sqlite.CACHE_DATABASE_PATH', os.path.join(self.tmpdir.name, 'requirements.sqlite')): for entry in ENTRIES: cache.set_requirement(*entry) self.assertTrue(cache.get_requirement(*entry))
async def update_requirement_cache(runtime_task, result): kind = runtime_task.task.runnable.kind name = runtime_task.task.runnable.kwargs.get("name") cache.set_requirement(ENVIRONMENT_TYPE, ENVIRONMENT, kind, name) if result in STATUSES_NOT_OK: cache.delete_requirement(ENVIRONMENT_TYPE, ENVIRONMENT, kind, name) return cache.update_requirement_status(ENVIRONMENT_TYPE, ENVIRONMENT, kind, name, True)
async def save_requirement_in_cache(self, runtime_task): # pylint: disable=W0221 container_id = str(uuid.uuid4()) _, requirements = self._get_image_from_cache(runtime_task) if requirements: for requirement_type, requirement in requirements: cache.set_requirement(self.environment, container_id, requirement_type, requirement) cache.set_requirement( self.environment, container_id, runtime_task.task.runnable.kind, runtime_task.task.runnable.kwargs.get("name"), False, )
def test_is_environment_prepared(self): with unittest.mock.patch( "avocado.core.dependencies.requirements.cache.backends.sqlite.CACHE_DATABASE_PATH", os.path.join(self.tmpdir.name, "requirements.sqlite"), ): for entry in ENTRIES: cache.set_requirement(*entry) self.assertFalse( cache.is_environment_prepared( "pd34d13b2980d0a9d438f754b2e94f85443076d0ebe1b0db09a0439f35feca5e" )) self.assertTrue( cache.is_environment_prepared( "cd34d13b2980d0a9d438f754b2e94f85443076d0ebe1b0db09a0439f35feca5e" ))
def test_entries(self): with unittest.mock.patch( "avocado.core.dependencies.requirements.cache.backends.sqlite.CACHE_DATABASE_PATH", os.path.join(self.tmpdir.name, "requirements.sqlite"), ): for entry in ENTRIES[:-1]: cache.set_requirement(*entry) self.assertTrue(cache.is_requirement_in_cache(*entry)) entry = ENTRIES[-1] cache.set_requirement(*entry) self.assertIsNone( cache.is_requirement_in_cache(entry[0], entry[1], entry[2], entry[3])) self.assertFalse( cache.is_requirement_in_cache("local", "localhost.localdomain", "package", "foo"))
def test_get_all_environments_with_requirement(self): with unittest.mock.patch( "avocado.core.dependencies.requirements.cache.backends.sqlite.CACHE_DATABASE_PATH", os.path.join(self.tmpdir.name, "requirements.sqlite"), ): for entry in ENTRIES: cache.set_requirement(*entry) all_requirements = cache.get_all_environments_with_requirement( "podman", "package", "hello") expected_data = { "ad34d13b2980d0a9d438f754b2e94f85443076d0ebe1b0db09a0439f35feca5e": [("package", "hello")], "cd34d13b2980d0a9d438f754b2e94f85443076d0ebe1b0db09a0439f35feca5e": [ ("core", "avocado"), ("package", "bash"), ("package", "hello"), ], } self.assertEqual(all_requirements, expected_data)
async def save_requirement_in_cache(runtime_task): kind = runtime_task.task.runnable.kind name = runtime_task.task.runnable.kwargs.get("name") cache.set_requirement(ENVIRONMENT_TYPE, ENVIRONMENT, kind, name, False)