From 6fa358ca4ebf8ca57ae2b121533e3b09ff646f29 Mon Sep 17 00:00:00 2001 From: Lev Date: Sun, 3 Apr 2022 13:27:22 +0300 Subject: [PATCH] Build for v12 (#750) * Build for v12 Typo!! * Fix Python 3.7 compatibility * Skip assets endpoint test on v12 --- .github/workflows/build_stable.yml | 2 +- images/worker/configure.py | 5 +++-- images/worker/patched_bench_helper.py | 2 ++ images/worker/push_backup.py | 9 +++++---- tests/_check_connections.py | 6 ++++-- tests/test_frappe_docker.py | 19 +++++++++++++------ 6 files changed, 28 insertions(+), 15 deletions(-) diff --git a/.github/workflows/build_stable.yml b/.github/workflows/build_stable.yml index 2795ec60..62341c5b 100644 --- a/.github/workflows/build_stable.yml +++ b/.github/workflows/build_stable.yml @@ -38,7 +38,7 @@ jobs: uses: frappe/frappe_docker/.github/workflows/docker-build-push.yml@main with: repo: erpnext - version: "13" + version: "12" push: ${{ github.repository == 'frappe/frappe_docker' && github.event_name != 'pull_request' }} secrets: DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} diff --git a/images/worker/configure.py b/images/worker/configure.py index 76ba6d61..5b599e7e 100755 --- a/images/worker/configure.py +++ b/images/worker/configure.py @@ -1,8 +1,9 @@ #!/usr/local/bin/python +from __future__ import annotations import json import os -from typing import Any, Type, TypeVar +from typing import Any, TypeVar def update_config(**values: Any): @@ -22,7 +23,7 @@ def update_config(**values: Any): _T = TypeVar("_T") -def env(name: str, type_: Type[_T] = str) -> _T: +def env(name: str, type_: type[_T] = str) -> _T: value = os.getenv(name) if not value: raise RuntimeError(f'Required environment variable "{name}" not set') diff --git a/images/worker/patched_bench_helper.py b/images/worker/patched_bench_helper.py index e4631118..f3f75195 100644 --- a/images/worker/patched_bench_helper.py +++ b/images/worker/patched_bench_helper.py @@ -1,3 +1,5 @@ +from __future__ import annotations + import click import click.exceptions import frappe.app diff --git a/images/worker/push_backup.py b/images/worker/push_backup.py index 9ceace52..8daca686 100755 --- a/images/worker/push_backup.py +++ b/images/worker/push_backup.py @@ -1,4 +1,5 @@ #!/home/frappe/frappe-bench/env/bin/python +from __future__ import annotations import argparse import os @@ -48,7 +49,7 @@ def get_files_from_previous_backup(site_name: str) -> list[Path]: return files -def get_bucket(args: Arguments) -> "_Bucket": +def get_bucket(args: Arguments) -> _Bucket: return boto3.resource( service_name="s3", endpoint_url=args.endpoint_url, @@ -58,7 +59,7 @@ def get_bucket(args: Arguments) -> "_Bucket": ).Bucket(args.bucket) -def upload_file(path: Path, site_name: str, bucket: "_Bucket") -> None: +def upload_file(path: Path, site_name: str, bucket: _Bucket) -> None: filename = str(path.absolute()) key = str(Path(site_name) / path.name) print(f"Uploading {key}") @@ -78,7 +79,7 @@ def push_backup(args: Arguments) -> None: print("Done!") -def parse_args(args: List[str]) -> Arguments: +def parse_args(args: list[str]) -> Arguments: parser = argparse.ArgumentParser() parser.add_argument("--site", required=True) parser.add_argument("--bucket", required=True) @@ -96,7 +97,7 @@ def parse_args(args: List[str]) -> Arguments: return parser.parse_args(args, namespace=Arguments()) -def main(args: List[str]) -> int: +def main(args: list[str]) -> int: push_backup(parse_args(args)) return 0 diff --git a/tests/_check_connections.py b/tests/_check_connections.py index 3f78dc84..e54d3b95 100644 --- a/tests/_check_connections.py +++ b/tests/_check_connections.py @@ -1,9 +1,11 @@ +from __future__ import annotations + import asyncio import json import socket -from typing import Any, Iterable +from typing import Any, Iterable, Tuple -Address = tuple[str, int] +Address = Tuple[str, int] async def wait_for_port(address: Address) -> None: diff --git a/tests/test_frappe_docker.py b/tests/test_frappe_docker.py index 2f146e79..176fd194 100644 --- a/tests/test_frappe_docker.py +++ b/tests/test_frappe_docker.py @@ -1,3 +1,4 @@ +import os from pathlib import Path from typing import Any @@ -38,12 +39,7 @@ def assets_cb(text: str): @pytest.mark.parametrize( - ("url", "callback"), - ( - ("/", index_cb), - ("/api/method/version", api_cb), - ("/assets/frappe/images/frappe-framework-logo.svg", assets_cb), - ), + ("url", "callback"), (("/", index_cb), ("/api/method/version", api_cb)) ) def test_endpoints(url: str, callback: Any, frappe_site: str): check_url_content( @@ -51,6 +47,17 @@ def test_endpoints(url: str, callback: Any, frappe_site: str): ) +@pytest.mark.skipif( + os.environ["FRAPPE_VERSION"][0:3] == "v12", reason="v12 doesn't have the asset" +) +def test_assets_endpoint(frappe_site: str): + check_url_content( + url=f"http://127.0.0.1/assets/frappe/images/frappe-framework-logo.svg", + callback=assets_cb, + site_name=frappe_site, + ) + + def test_files_reachable(frappe_site: str, tmp_path: Path, compose: Compose): content = "lalala\n" file_path = tmp_path / "testfile.txt"