diff mbox series

[2/2] support/testing: add python-docker test

Message ID 20230616060421.3606283-2-peter@korsgaard.com
State Accepted
Headers show
Series [1/2] package/python-docker: needs python-packaging after bump to 6.0.1 | expand

Commit Message

Peter Korsgaard June 16, 2023, 6:04 a.m. UTC
Python-docker needs a working docker setup to do anything useful, so add it
to the existing docker_compose (which tests docker and docker-compose)
rather than adding a completely new test.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
---
 .../testing/tests/package/sample_python_docker.py    | 12 ++++++++++++
 support/testing/tests/package/test_docker_compose.py | 10 +++++++++-
 2 files changed, 21 insertions(+), 1 deletion(-)
 create mode 100644 support/testing/tests/package/sample_python_docker.py

Comments

Christian Stewart June 16, 2023, 7:40 p.m. UTC | #1
Hi Peter,

Lgtm,

Reviewed-by: Christian Stewart <christian@aperture.us>

On Thu, Jun 15, 2023 at 11:04 PM Peter Korsgaard <peter@korsgaard.com> wrote:
>
> Python-docker needs a working docker setup to do anything useful, so add it
> to the existing docker_compose (which tests docker and docker-compose)
> rather than adding a completely new test.
>
> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
> ---
>  .../testing/tests/package/sample_python_docker.py    | 12 ++++++++++++
>  support/testing/tests/package/test_docker_compose.py | 10 +++++++++-
>  2 files changed, 21 insertions(+), 1 deletion(-)
>  create mode 100644 support/testing/tests/package/sample_python_docker.py
>
> diff --git a/support/testing/tests/package/sample_python_docker.py b/support/testing/tests/package/sample_python_docker.py
> new file mode 100644
> index 0000000000..a69097b412
> --- /dev/null
> +++ b/support/testing/tests/package/sample_python_docker.py
> @@ -0,0 +1,12 @@
> +import docker
> +
> +client = docker.from_env()
> +info = client.info()
> +images = client.images.list()
> +
> +assert len(images) > 0
> +
> +print('Version:', info['ServerVersion'])
> +print('Images:')
> +for i in images:
> +    print(i.tags[0])
> diff --git a/support/testing/tests/package/test_docker_compose.py b/support/testing/tests/package/test_docker_compose.py
> index 38b669fc6d..16027c9c3a 100644
> --- a/support/testing/tests/package/test_docker_compose.py
> +++ b/support/testing/tests/package/test_docker_compose.py
> @@ -4,6 +4,8 @@ import infra.basetest
>
>
>  class TestDockerCompose(infra.basetest.BRTest):
> +    scripts = ["conf/docker-compose.yml",
> +               "tests/package/sample_python_docker.py"]
>      config = \
>          """
>          BR2_x86_64=y
> @@ -18,6 +20,8 @@ class TestDockerCompose(infra.basetest.BRTest):
>          BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.19.262"
>          BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
>          BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="{}"
> +        BR2_PACKAGE_PYTHON3=y
> +        BR2_PACKAGE_PYTHON_DOCKER=y
>          BR2_PACKAGE_CA_CERTIFICATES=y
>          BR2_PACKAGE_DOCKER_CLI=y
>          BR2_PACKAGE_DOCKER_COMPOSE=y
> @@ -27,7 +31,7 @@ class TestDockerCompose(infra.basetest.BRTest):
>          # BR2_TARGET_ROOTFS_TAR is not set
>          """.format(
>              infra.filepath("tests/package/copy-sample-script-to-target.sh"),
> -            infra.filepath("conf/docker-compose.yml"),
> +            " ".join([infra.filepath(i) for i in scripts]),
>              infra.filepath("conf/docker-compose-kernel.config"))
>
>      def wait_for_dockerd(self):
> @@ -46,6 +50,9 @@ class TestDockerCompose(infra.basetest.BRTest):
>          self.assertRunOk('wget -q -O /tmp/busybox http://127.0.0.1/busybox', 120)
>          self.assertRunOk('cmp /bin/busybox /tmp/busybox', 120)
>
> +    def python_docker_test(self):
> +        self.assertRunOk('python3 ./sample_python_docker.py', 120)
> +
>      def test_run(self):
>          kernel = os.path.join(self.builddir, "images", "bzImage")
>          rootfs = os.path.join(self.builddir, "images", "rootfs.ext2")
> @@ -62,3 +69,4 @@ class TestDockerCompose(infra.basetest.BRTest):
>          self.wait_for_dockerd()
>          self.docker_test()
>          self.docker_compose_test()
> +        self.python_docker_test()
> --
> 2.30.2
>
Peter Korsgaard June 17, 2023, 4:53 p.m. UTC | #2
>>>>> "Peter" == Peter Korsgaard <peter@korsgaard.com> writes:

 > Python-docker needs a working docker setup to do anything useful, so add it
 > to the existing docker_compose (which tests docker and docker-compose)
 > rather than adding a completely new test.

 > Signed-off-by: Peter Korsgaard <peter@korsgaard.com>

Committed, thanks.
Peter Korsgaard July 6, 2023, 8:35 a.m. UTC | #3
>>>>> "Peter" == Peter Korsgaard <peter@korsgaard.com> writes:

>>>>> "Peter" == Peter Korsgaard <peter@korsgaard.com> writes:
 >> Python-docker needs a working docker setup to do anything useful, so add it
 >> to the existing docker_compose (which tests docker and docker-compose)
 >> rather than adding a completely new test.

 >> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>

 > Committed, thanks.

Committed to 2023.02.x and 2023.05.x, thanks.
diff mbox series

Patch

diff --git a/support/testing/tests/package/sample_python_docker.py b/support/testing/tests/package/sample_python_docker.py
new file mode 100644
index 0000000000..a69097b412
--- /dev/null
+++ b/support/testing/tests/package/sample_python_docker.py
@@ -0,0 +1,12 @@ 
+import docker
+
+client = docker.from_env()
+info = client.info()
+images = client.images.list()
+
+assert len(images) > 0
+
+print('Version:', info['ServerVersion'])
+print('Images:')
+for i in images:
+    print(i.tags[0])
diff --git a/support/testing/tests/package/test_docker_compose.py b/support/testing/tests/package/test_docker_compose.py
index 38b669fc6d..16027c9c3a 100644
--- a/support/testing/tests/package/test_docker_compose.py
+++ b/support/testing/tests/package/test_docker_compose.py
@@ -4,6 +4,8 @@  import infra.basetest
 
 
 class TestDockerCompose(infra.basetest.BRTest):
+    scripts = ["conf/docker-compose.yml",
+               "tests/package/sample_python_docker.py"]
     config = \
         """
         BR2_x86_64=y
@@ -18,6 +20,8 @@  class TestDockerCompose(infra.basetest.BRTest):
         BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.19.262"
         BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
         BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="{}"
+        BR2_PACKAGE_PYTHON3=y
+        BR2_PACKAGE_PYTHON_DOCKER=y
         BR2_PACKAGE_CA_CERTIFICATES=y
         BR2_PACKAGE_DOCKER_CLI=y
         BR2_PACKAGE_DOCKER_COMPOSE=y
@@ -27,7 +31,7 @@  class TestDockerCompose(infra.basetest.BRTest):
         # BR2_TARGET_ROOTFS_TAR is not set
         """.format(
             infra.filepath("tests/package/copy-sample-script-to-target.sh"),
-            infra.filepath("conf/docker-compose.yml"),
+            " ".join([infra.filepath(i) for i in scripts]),
             infra.filepath("conf/docker-compose-kernel.config"))
 
     def wait_for_dockerd(self):
@@ -46,6 +50,9 @@  class TestDockerCompose(infra.basetest.BRTest):
         self.assertRunOk('wget -q -O /tmp/busybox http://127.0.0.1/busybox', 120)
         self.assertRunOk('cmp /bin/busybox /tmp/busybox', 120)
 
+    def python_docker_test(self):
+        self.assertRunOk('python3 ./sample_python_docker.py', 120)
+
     def test_run(self):
         kernel = os.path.join(self.builddir, "images", "bzImage")
         rootfs = os.path.join(self.builddir, "images", "rootfs.ext2")
@@ -62,3 +69,4 @@  class TestDockerCompose(infra.basetest.BRTest):
         self.wait_for_dockerd()
         self.docker_test()
         self.docker_compose_test()
+        self.python_docker_test()