Source code for univention.testing.browser.suggestion
#!/usr/bin/python3
# SPDX-FileCopyrightText: 2023-2025 Univention GmbH
# SPDX-License-Identifier: AGPL-3.0-only
import shutil
from typing import TextIO
from univention.appcenter.app_cache import AppCenterCache, default_server
[docs]
class AppCenterCacheTest:
def __init__(self) -> None:
cache = AppCenterCache.build(server=default_server())
self.json_file: str = cache.get_cache_file('.suggestions.json')
self.json_file_bak: str = cache.get_cache_file('.suggestions.bak.json')
self.json_fd: TextIO | None = None
shutil.move(self.json_file, self.json_file_bak)
[docs]
def write(self, txt: str, truncate: bool = False) -> None:
if self.json_fd is None:
self.json_fd = open(self.json_file, 'w')
if truncate:
self.json_fd.truncate(0)
self.json_fd.write(txt)
self.json_fd.flush()
[docs]
def restore(self) -> None:
if self.json_fd is not None:
self.json_fd.close()
shutil.move(self.json_file_bak, self.json_file)