def test_build_status_ne_by_status(build_status_failed: BuildStatus) -> None: """ must be not equal by status """ other = BuildStatus.from_json(build_status_failed.view()) other.status = BuildStatusEnum.Success assert build_status_failed != other
def test_build_status_ne_by_timestamp( build_status_failed: BuildStatus) -> None: """ must be not equal by timestamp """ other = BuildStatus.from_json(build_status_failed.view()) other.timestamp = datetime.datetime.utcnow().timestamp() assert build_status_failed != other
async def test_get(client: TestClient) -> None: """ must return valid service status """ response = await client.get("/api/v1/ahriman") status = BuildStatus.from_json(await response.json()) assert response.status == 200 assert status.status == BuildStatusEnum.Unknown
async def test_post(client: TestClient) -> None: """ must update service status correctly """ payload = {"status": BuildStatusEnum.Success.value} post_response = await client.post("/api/v1/ahriman", json=payload) assert post_response.status == 204 response = await client.get("/api/v1/ahriman") status = BuildStatus.from_json(await response.json()) assert response.status == 200 assert status.status == BuildStatusEnum.Success
def get_self(self) -> BuildStatus: """ get ahriman status itself :return: current ahriman status """ try: response = requests.get(self._ahriman_url()) response.raise_for_status() status_json = response.json() return BuildStatus.from_json(status_json) except requests.exceptions.HTTPError as e: self.logger.exception( f"could not get service status: {exception_response_text(e)}") except Exception: self.logger.exception("could not get service status") return BuildStatus()
def get(self, base: Optional[str]) -> List[Tuple[Package, BuildStatus]]: """ get package status :param base: package base to get :return: list of current package description and status if it has been found """ try: response = requests.get(self._package_url(base or "")) response.raise_for_status() status_json = response.json() return [(Package.from_json(package["package"]), BuildStatus.from_json(package["status"])) for package in status_json] except requests.exceptions.HTTPError as e: self.logger.exception( f"could not get {base}: {exception_response_text(e)}") except Exception: self.logger.exception(f"could not get {base}") return []
def test_build_status_eq(build_status_failed: BuildStatus) -> None: """ must be equal """ other = BuildStatus.from_json(build_status_failed.view()) assert other == build_status_failed
def test_build_status_from_json_view(build_status_failed: BuildStatus) -> None: """ must construct same object from json """ assert BuildStatus.from_json( build_status_failed.view()) == build_status_failed
def parse_single(properties: Dict[str, Any]) -> None: package = Package.from_json(properties["package"]) status = BuildStatus.from_json(properties["status"]) if package.base in self.known: self.known[package.base] = (package, status)